Object Store Management
List Object Store Files
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 Organization ID we'd like to list the Object Store files from. |
| path | string 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 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 Object Store key. |
| name | string File or folder name. |
| modified | string($date-time) Last time it was modified. |
| mime | string MIME type. |
| folder | boolean True if it is a folder, false otherwise. |
| size | float 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(),
data={"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)