book
Checkout our new book! Hands on AI Trading with Python, QuantConnect, and AWS Learn More arrow

Object Store Management

List Object Store Files

Introduction

List the Object Store files of a specific organization and path.

Request

List the Object Store files of a specific organization and path. The /object/list API accepts requests in the following format:

ListObjectStoreRequest Model - Request to list Object Store files of a specific organization and path.
organizationId string
required
example: 5cad178b20a1d52567b534553413b691

Organization ID we'd like to list the Object Store files from.
path string
example: /folder1

Optional. Path to the Object Store files.
Example
{
  "organizationId": "5cad178b20a1d52567b534553413b691",
  "path": "/folder1"
}

Responses

The /object/list API provides a response in the following format:

200 Success

ListObjectStoreResponse Model - Response received containing a list of stored objects metadata, as well as the total size of all of them.
path string
example: Mia

Path to the files in the Object Store.
objects ObjectStoreSummary Array
List of objects stored.
objectStorageUsed integer
Size of all objects stored in bytes.
objectStorageUsedHuman string
Size of all the objects stored in human-readable format.
success boolean
Indicate if the API request was successful.
errors string Array
List of errors with the API call.
Example
{
  "path": "Mia",
  "objects": [
    {
      "key": "Mia/Test",
      "name": "string",
      "modified": "2021-11-26T15:18:27.693Z",
      "mime": "application/json",
      "folder": true,
      "size": 13
    }
  ],
  "objectStorageUsed": 0,
  "objectStorageUsedHuman": "string",
  "success": true,
  "errors": [
    "string"
  ]
}
ObjectStoreSummary Model - Summary information of the Object Store.
key string
example: Mia/Test

Object Store key.
name string
File or folder name.
modified string($date-time)
Last time it was modified.
mime string
example: application/json

MIME type.
folder boolean
True if it is a folder, false otherwise.
size float
example: 13

Object Store file size.
Example
{
  "key": "Mia/Test",
  "name": "string",
  "modified": "2021-11-26T15:18:27.693Z",
  "mime": "application/json",
  "folder": true,
  "size": 13
}

401 Authentication Error

UnauthorizedError Model - Unauthorized response from the API. Key is missing, invalid, or timestamp is too old for hash.
www_authenticate string
Header

Examples

The following example demonstates uploading, getting, deleting, and listing Object Store objects through the cloud API.

from base64 import b64encode
from hashlib import sha256
from time import time
from requests import get, post
BASE_URL = 'https://www.quantconnect.com/api/v2/'

# You need to replace these with your actual credentials.
# You can request your credentials at https://www.quantconnect.com/settings/
# You can find our organization ID at https://www.quantconnect.com/organization/ 
USER_ID = 0
API_TOKEN = '____'
ORGANIZATION_ID = '____'

def get_headers():
    # Get timestamp
    timestamp = f'{int(time())}'
    time_stamped_token = f'{API_TOKEN}:{timestamp}'.encode('utf-8')

    # Get hased API token
    hashed_token = sha256(time_stamped_token).hexdigest()
    authentication = f'{USER_ID}:{hashed_token}'.encode('utf-8')
    authentication = b64encode(authentication).decode('ascii')

    # Create headers dictionary.
    return {
        'Authorization': f'Basic {authentication}',
        'Timestamp': timestamp
    }

# Authenticate to verify credentials
response = post(f'{BASE_URL}/authenticate', headers = get_headers())
print(response.json())

# --------------------


# The key of the object wishes to manipulate
key = "..."

### Upload Object Store File
# Send a POST request to the /object/set endpoint to upload a file
response = post(f'{BASE_URL}/object/set', headers=get_headers(), 
                json={"organizationId": ORGANIZATION_ID, "key": key},  # Organization ID and key for the object
                files={"objectData": b"Hello, world!"})  # File content as bytes
# Parse the JSON response into python managable dict
result = response.json()
# Check if the request was successful and print the result
if result['success']:
    print("Object Store File Uploaded Successfully:")
    print(result)

### Get Object Store Metadata
# Prepare data payload to get object metadata
payload = {
    "organizationId": ORGANIZATION_ID,  # ID of the organization
    "key": key  # Key of the object to get metadata for
}
# Send a POST request to the /object/properties endpoint to get metadata
response = post(f'{BASE_URL}/object/properties', headers=get_headers(), json=payload)
# Parse the JSON response into python managable dict
result = response.json()
# Check if the request was successful and print the metadata
if result['success']:
    print("Object Store Metadata:")
    print(result)

### Get Object Store File
# Prepare data payload to retrieve the object
payload = {
    "organizationId": ORGANIZATION_ID,  # ID of the organization
    "keys": [key]  # List of keys to retrieve (single key in this case)
}
# Send a POST request to the /object/get endpoint to get the object
response = post(f'{BASE_URL}/object/get', headers=get_headers(), json=payload)
# Parse the JSON response into python managable dict
result = response.json()
# Check if the request was successful and print the file content
if result['success']:
    print("Object Store File Content:")
    print(result)

### Delete Object Store File
# Prepare data payload to delete the object
payload = {
    "organizationId": ORGANIZATION_ID,  # ID of the organization
    "key": key  # Key of the object to delete
}
# Send a POST request to the /object/delete endpoint to delete the object
response = post(f'{BASE_URL}/object/delete', headers=get_headers(), json=payload)
# Parse the JSON response into python managable dict
result = response.json()
# Check if the request was successful and print the result
if result['success']:
    print("Object Store File Deleted Successfully:")
    print(result)

### List Object Store Files
# Define an empty path to list all objects (replace with specific path if needed)
path = ""
# Prepare data payload to list objects
payload = {
    "organizationId": ORGANIZATION_ID,  # ID of the organization
    "path": path  # Path to list objects from
}
# Send a POST request to the /object/list endpoint to list objects
response = post(f'{BASE_URL}/object/list', headers=get_headers(), json=payload)
# Parse the JSON response into python managable dict
result = response.json()
# Check if the request was successful and print the list
if result['success']:
    print("List of Object Store Files:")
    print(result)

You can also see our Videos. You can also get in touch with us via Discord.

Did you find this page helpful?

Contribute to the documentation: