Object storage backends let you connect Hoody to remote cloud and on-premise storage providers. Once connected, a backend can be mounted to a path inside your container so its objects appear as files. Use the endpoints on this page to register a new backend with the credentials and settings required to reach each provider. Each backend has its own dedicated endpoint; successful connections return 201 Created and credential or configuration failures return 400 Bad Request.
All endpoints on this page share the same base URL pattern: https://{projectId}-{containerId}-files-1.{server}.containers.hoody.icu.
Amazon S3 and compatible providers
Section titled “Amazon S3 and compatible providers”POST /api/v1/backends/s3
Section titled “POST /api/v1/backends/s3”Amazon S3 compliant storage providers including AWS, Alibaba, ArvanCloud, Ceph, ChinaMobile, Cloudflare, DigitalOcean, Dreamhost, GCS, HuaweiOBS, IBMCOS, IDrive, IONOS, LyveCloud, Leviia, Liara, Linode, Magalu, Minio, Netease, Outscale, Petabox, RackCorp, Hoody-VFS, Scaleway, SeaweedFS, Selectel, StackPath, Storj, Synology, TencentCOS, Wasabi, Qiniu and others.
This endpoint takes no parameters.
Request Body
Section titled “Request Body”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
access_key_id | string | No | "" | AWS Access Key ID. Leave blank for anonymous access or runtime credentials. |
acl | string | No | "" | Canned ACL used when creating buckets and storing or copying objects. |
bucket_acl | string | No | "" | Canned ACL used when creating buckets. |
chunk_size | string | No | "5242880" | Chunk size to use for uploading. |
copy_cutoff | string | No | "4999610368" | Cutoff for switching to multipart copy. |
decompress | boolean | No | false | If set this will decompress gzip encoded objects. |
description | string | No | "" | Description of the remote. |
directory_bucket | boolean | No | false | Set to use AWS Directory Buckets. |
directory_markers | boolean | No | false | Upload an empty object with a trailing slash when a new directory is created. |
disable_checksum | boolean | No | false | Don’t store MD5 checksum with object metadata. |
disable_http2 | boolean | No | false | Disable usage of http2 for S3 backends. |
download_url | string | No | "" | Custom endpoint for downloads. |
encoding | string | No | "50331650" | The encoding for the backend. |
endpoint | string | Yes | "" | Endpoint for S3 API. Required when using an S3 clone. |
env_auth | boolean | No | false | Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars). |
force_path_style | boolean | No | true | If true use path style access if false use virtual hosted style. |
leave_parts_on_error | boolean | No | false | If true avoid calling abort upload on a failure. |
list_chunk | integer | No | 1000 | Size of listing chunk (response list for each ListObject S3 request). |
list_url_encode | string | No | {"Valid":false,"Value":false} | Whether to url encode listings. |
list_version | integer | No | 0 | Version of ListObjects to use: 1, 2 or 0 for auto. |
location_constraint | string | No | "" | Location constraint — must be set to match the Region. |
max_upload_parts | integer | No | 10000 | Maximum number of parts in a multipart upload. |
memory_pool_flush_time | integer | No | 60 | How often internal memory buffer pools will be flushed. (no longer used) (in seconds) |
memory_pool_use_mmap | boolean | No | false | Whether to use mmap buffers in internal memory pool. (no longer used) |
might_gzip | string | No | {"Valid":false,"Value":false} | Set this if the backend might gzip objects. |
no_check_bucket | boolean | No | false | If set, don’t attempt to check the bucket exists or create it. |
no_head | boolean | No | false | If set, don’t HEAD uploaded objects to check integrity. |
no_head_object | boolean | No | false | If set, do not do HEAD before GET when getting objects. |
no_system_metadata | boolean | No | false | Suppress setting and reading of system metadata. |
profile | string | No | "" | Profile to use in the shared credentials file. |
provider | string | No | "" | Choose your S3 provider. |
region | string | No | "" | Region to connect to. |
requester_pays | boolean | No | false | Enables requester pays option when interacting with S3 bucket. |
sdk_log_mode | string | No | "0" | Set to debug the SDK. |
secret_access_key | string | No | "" | AWS Secret Access Key (password). Leave blank for anonymous access or runtime credentials. |
server_side_encryption | string | No | "" | The server-side encryption algorithm used when storing this object in S3. |
session_token | string | No | "" | An AWS session token. |
shared_credentials_file | string | No | "" | Path to the shared credentials file. |
sse_customer_algorithm | string | No | "" | If using SSE-C, the server-side encryption algorithm used when storing this object in S3. |
sse_customer_key | string | No | "" | To use SSE-C you may provide the secret encryption key used to encrypt/decrypt your data. |
sse_customer_key_base64 | string | No | "" | If using SSE-C you must provide the secret encryption key encoded in base64 format. |
sse_customer_key_md5 | string | No | "" | If using SSE-C you may provide the secret encryption key MD5 checksum (optional). |
sse_kms_key_id | string | No | "" | If using KMS ID you must provide the ARN of Key. |
storage_class | string | No | "" | The storage class to use when storing new objects in Qiniu. |
sts_endpoint | string | No | "" | Endpoint for STS (deprecated). |
upload_concurrency | integer | No | 4 | Concurrency for multipart uploads and copies. |
upload_cutoff | string | No | "209715200" | Cutoff for switching to chunked upload. |
use_accelerate_endpoint | boolean | No | false | If true use the AWS S3 accelerated endpoint. |
use_accept_encoding_gzip | string | No | {"Valid":false,"Value":false} | Whether to send Accept-Encoding: gzip header. |
use_already_exists | string | No | {"Valid":false,"Value":false} | Set if Hoody should report BucketAlreadyExists errors on bucket creation. |
use_dual_stack | boolean | No | false | If true use AWS S3 dual-stack endpoint (IPv6 support). |
use_multipart_etag | string | No | {"Valid":false,"Value":false} | Whether to use ETag in multipart uploads for verification. |
use_multipart_uploads | string | No | {"Valid":false,"Value":false} | Set if Hoody should use multipart uploads. |
use_presigned_request | boolean | No | false | Whether to use a presigned request or PutObject for single part uploads. |
use_unsigned_payload | string | No | {"Valid":false,"Value":false} | Whether to use an unsigned payload in PutObject. |
v2_auth | boolean | No | false | If true use v2 authentication. |
version_at | string | No | "0001-01-01T00:00:00Z" | Show file versions as they were at the specified time. |
version_deleted | boolean | No | false | Show deleted file markers when using versions. |
versions | boolean | No | false | Include old versions in directory listings. |
Response
Section titled “Response”{ "success": true, "message": "Backend connected successfully", "data": { "id": "backend_01HXYZABCDEFG", "backend_type": "s3", "type": "object-storage", "mount_paths": [] }}{ "success": false, "error": "Failed to connect to backend: invalid credentials"}SDK Example
Section titled “SDK Example”await client.files.backends.connectS3({ endpoint: "s3.eu-west-1.amazonaws.com", provider: "AWS", access_key_id: "AKIAIOSFODNN7EXAMPLE", secret_access_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", region: "eu-west-1"});Microsoft Azure
Section titled “Microsoft Azure”POST /api/v1/backends/azureblob
Section titled “POST /api/v1/backends/azureblob”Microsoft Azure Blob Storage.
This endpoint takes no parameters.
Request Body
Section titled “Request Body”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
access_tier | string | No | "" | Access tier of blob: hot, cool, cold or archive. |
account | string | No | "" | Azure Storage Account Name. |
archive_tier_delete | boolean | No | false | Delete archive tier blobs before overwriting. |
chunk_size | string | No | "4194304" | Upload chunk size. |
client_certificate_password | string | No | "" | Password for the certificate file (optional). |
client_certificate_path | string | No | "" | Path to a PEM or PKCS12 certificate file including the private key. |
client_id | string | No | "" | The ID of the client in use. |
client_secret | string | No | "" | One of the service principal’s client secrets. |
client_send_certificate_chain | boolean | No | false | Send the certificate chain when using certificate auth. |
delete_snapshots | string | No | "" | Set to specify how to deal with snapshots on blob deletion. Allowed values: "", include, only. |
description | string | No | "" | Description of the remote. |
directory_markers | boolean | No | false | Upload an empty object with a trailing slash when a new directory is created. |
disable_checksum | boolean | No | false | Don’t store MD5 checksum with object metadata. |
disable_instance_discovery | boolean | No | false | Skip requesting Microsoft Entra instance metadata. |
encoding | string | No | "21078018" | The encoding for the backend. |
endpoint | string | No | "" | Endpoint for the service. Leave blank normally. |
env_auth | boolean | No | false | Read credentials from runtime (environment variables, CLI or MSI). |
key | string | No | "" | Storage Account Shared Key. |
list_chunk | integer | No | 5000 | Size of blob list. |
memory_pool_flush_time | integer | No | 60 | How often internal memory buffer pools will be flushed. (no longer used) (in seconds) |
memory_pool_use_mmap | boolean | No | false | Whether to use mmap buffers in internal memory pool. (no longer used) |
msi_client_id | string | No | "" | Object ID of the user-assigned MSI to use, if any. |
msi_mi_res_id | string | No | "" | Azure resource ID of the user-assigned MSI to use, if any. |
msi_object_id | string | No | "" | Object ID of the user-assigned MSI to use, if any. |
no_check_container | boolean | No | false | If set, don’t attempt to check the container exists or create it. |
no_head_object | boolean | No | false | If set, do not do HEAD before GET when getting objects. |
password | string | No | "" | The user’s password. |
public_access | string | No | "" | Public access level of a container: blob or container. Allowed values: "", blob, container. |
sas_url | string | No | "" | SAS URL for container level access only. |
service_principal_file | string | No | "" | Path to file containing credentials for use with a service principal. |
tenant | string | No | "" | ID of the service principal’s tenant. Also called its directory ID. |
upload_concurrency | integer | No | 16 | Concurrency for multipart uploads. |
upload_cutoff | string | No | "" | Cutoff for switching to chunked upload (at most 256 MiB) (deprecated). |
use_az | boolean | No | false | Use Azure CLI tool az for authentication. |
use_emulator | boolean | No | false | Uses local storage emulator if provided as ‘true’. |
use_msi | boolean | No | false | Use a managed service identity to authenticate (only works in Azure). |
username | string | No | "" | User name (usually an email address). |
Response
Section titled “Response”{ "success": true, "message": "Backend connected successfully", "data": { "id": "backend_01HXYZBLOB123", "backend_type": "azureblob", "type": "object-storage", "mount_paths": [] }}{ "success": false, "error": "Failed to connect to backend: invalid account name or key"}SDK Example
Section titled “SDK Example”await client.files.backends.connectAzureblob({ account: "myazurestorageaccount", key: "base64EncodedStorageKey=="});POST /api/v1/backends/azurefiles
Section titled “POST /api/v1/backends/azurefiles”Microsoft Azure Files.
This endpoint takes no parameters.
Request Body
Section titled “Request Body”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
account | string | No | "" | Azure Storage Account Name. |
chunk_size | string | No | "4194304" | Upload chunk size. |
client_certificate_password | string | No | "" | Password for the certificate file (optional). |
client_certificate_path | string | No | "" | Path to a PEM or PKCS12 certificate file including the private key. |
client_id | string | No | "" | The ID of the client in use. |
client_secret | string | No | "" | One of the service principal’s client secrets. |
client_send_certificate_chain | boolean | No | false | Send the certificate chain when using certificate auth. |
connection_string | string | No | "" | Azure Files Connection String. |
description | string | No | "" | Description of the remote. |
encoding | string | No | "54634382" | The encoding for the backend. |
endpoint | string | No | "" | Endpoint for the service. Leave blank normally. |
env_auth | boolean | No | false | Read credentials from runtime (environment variables, CLI or MSI). |
key | string | No | "" | Storage Account Shared Key. |
max_stream_size | string | No | "10737418240" | Max size for streamed files. |
msi_client_id | string | No | "" | Object ID of the user-assigned MSI to use, if any. |
msi_mi_res_id | string | No | "" | Azure resource ID of the user-assigned MSI to use, if any. |
msi_object_id | string | No | "" | Object ID of the user-assigned MSI to use, if any. |
password | string | No | "" | The user’s password. |
sas_url | string | No | "" | SAS URL. |
service_principal_file | string | No | "" | Path to file containing credentials for use with a service principal. |
share_name | string | No | "" | Azure Files Share Name. This is required and is the name of the share to access. |
tenant | string | No | "" | ID of the service principal’s tenant. Also called its directory ID. |
upload_concurrency | integer | No | 16 | Concurrency for multipart uploads. |
use_msi | boolean | No | false | Use a managed service identity to authenticate (only works in Azure). |
username | string | No | "" | User name (usually an email address). |
Response
Section titled “Response”{ "success": true, "message": "Backend connected successfully", "data": { "id": "backend_01HXYZFILES123", "backend_type": "azurefiles", "type": "object-storage", "mount_paths": [] }}{ "success": false, "error": "Failed to connect to backend: share not found"}SDK Example
Section titled “SDK Example”await client.files.backends.connectAzurefiles({ account: "myazurestorageaccount", share_name: "myshare", key: "base64EncodedStorageKey=="});Google Cloud
Section titled “Google Cloud”POST /api/v1/backends/google-cloud-storage
Section titled “POST /api/v1/backends/google-cloud-storage”Google Cloud Storage (this is not Google Drive).
This endpoint takes no parameters.
Request Body
Section titled “Request Body”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
access_token | string | No | "" | Short-lived access token. |
anonymous | boolean | No | false | Access public buckets and objects without credentials. |
auth_url | string | No | "" | Auth server URL. |
bucket_acl | string | No | "" | Access Control List for new buckets. Allowed values: authenticatedRead, private, projectPrivate, publicRead, publicReadWrite. |
bucket_policy_only | boolean | No | false | Access checks should use bucket-level IAM policies. |
client_credentials | boolean | No | false | Use client credentials OAuth flow. |
client_id | string | No | "" | OAuth Client Id. |
client_secret | string | No | "" | OAuth Client Secret. |
decompress | boolean | No | false | If set this will decompress gzip encoded objects. |
description | string | No | "" | Description of the remote. |
directory_markers | boolean | No | false | Upload an empty object with a trailing slash when a new directory is created. |
encoding | string | No | "50348034" | The encoding for the backend. |
endpoint | string | No | "" | Endpoint for the service. Leave blank normally. |
env_auth | boolean | No | false | Get GCP IAM credentials from runtime. |
location | string | No | "" | Location for the newly created buckets. |
no_check_bucket | boolean | No | false | If set, don’t attempt to check the bucket exists or create it. |
object_acl | string | No | "" | Access Control List for new objects. |
project_number | string | No | "" | Project number. |
service_account_credentials | string | No | "" | Service Account Credentials JSON blob. |
service_account_file | string | No | "" | Service Account Credentials JSON file path. |
storage_class | string | No | "" | The storage class to use when storing objects in Google Cloud Storage. Allowed values: "", MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE, DURABLE_REDUCED_AVAILABILITY. |
token | string | No | "" | OAuth Access Token as a JSON blob. |
token_url | string | No | "" | Token server url. |
user_project | string | No | "" | User project. |
Response
Section titled “Response”{ "success": true, "message": "Backend connected successfully", "data": { "id": "backend_01HXYZGCS12345", "backend_type": "google cloud storage", "type": "object-storage", "mount_paths": [] }}{ "success": false, "error": "Failed to connect to backend: invalid service account credentials"}SDK Example
Section titled “SDK Example”await client.files.backends.connectGoogleCloudStorage({ service_account_file: "/etc/secrets/gcp-sa.json", project_number: "123456789012", location: "us-central1"});Oracle Cloud
Section titled “Oracle Cloud”POST /api/v1/backends/oracleobjectstorage
Section titled “POST /api/v1/backends/oracleobjectstorage”Oracle Cloud Infrastructure Object Storage.
This endpoint takes no parameters.
Request Body
Section titled “Request Body”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
attempt_resume_upload | boolean | No | false | If true attempt to resume previously started multipart upload for the object. |
chunk_size | string | No | "5242880" | Chunk size to use for uploading. |
compartment | string | No | "" | Specify compartment OCID, if you need to list buckets. |
config_file | string | No | "~/.oci/config" | Path to OCI config file. |
config_profile | string | No | "Default" | Profile name inside the oci config file. |
copy_cutoff | string | No | "4999610368" | Cutoff for switching to multipart copy. |
copy_timeout | integer | No | 60 | Timeout for copy. (in seconds) |
description | string | No | "" | Description of the remote. |
disable_checksum | boolean | No | false | Don’t store MD5 checksum with object metadata. |
encoding | string | No | "50331650" | The encoding for the backend. |
endpoint | string | No | "" | Endpoint for Object storage API. |
leave_parts_on_error | boolean | No | false | If true avoid calling abort upload on a failure. |
max_upload_parts | integer | No | 10000 | Maximum number of parts in a multipart upload. |
namespace | string | Yes | "" | Object storage namespace. |
no_check_bucket | boolean | No | false | If set, don’t attempt to check the bucket exists or create it. |
provider | string | Yes | "env_auth" | Choose your Auth Provider. Allowed values: env_auth, user_principal_auth, instance_principal_auth, workload_identity_auth, resource_principal_auth, no_auth. |
region | string | Yes | "" | Object storage Region. |
sse_customer_algorithm | string | No | "" | If using SSE-C, the optional header that specifies "AES256" as the encryption algorithm. |
sse_customer_key | string | No | "" | To use SSE-C, the optional header that specifies the base64-encoded 256-bit encryption key. |
sse_customer_key_file | string | No | "" | To use SSE-C, a file containing the base64-encoded string of the AES-256 encryption key. |
sse_customer_key_sha256 | string | No | "" | If using SSE-C, the optional header that specifies the base64-encoded SHA256 hash of the encryption key. |
sse_kms_key_id | string | No | "" | If using your own master key in vault, this header specifies the OCID. |
storage_tier | string | No | "Standard" | The storage class to use when storing new objects. Allowed values: Standard, InfrequentAccess, Archive. |
upload_concurrency | integer | No | 10 | Concurrency for multipart uploads. |
upload_cutoff | string | No | "209715200" | Cutoff for switching to chunked upload. |
Response
Section titled “Response”{ "success": true, "message": "Backend connected successfully", "data": { "id": "backend_01HXYZOC123456", "backend_type": "oracleobjectstorage", "type": "object-storage", "mount_paths": [] }}{ "success": false, "error": "Failed to connect to backend: missing namespace or region"}SDK Example
Section titled “SDK Example”await client.files.backends.connectOracleobjectstorage({ provider: "user_principal_auth", namespace: "axxxxxxxxx", region: "us-ashburn-1", compartment: "ocid1.compartment.oc1..xxxxx"});Specialty cloud storage
Section titled “Specialty cloud storage”POST /api/v1/backends/b2
Section titled “POST /api/v1/backends/b2”Backblaze B2.
This endpoint takes no parameters.
Request Body
Section titled “Request Body”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
account | string | Yes | "" | Account ID or Application Key ID. |
chunk_size | string | No | "100663296" | Upload chunk size. |
copy_cutoff | string | No | "4294967296" | Cutoff for switching to multipart copy. |
description | string | No | "" | Description of the remote. |
disable_checksum | boolean | No | false | Disable checksums for large (greater than upload cutoff) files. |
download_auth_duration | integer | No | 604800 | Time before the public link authorization token will expire (in seconds). |
download_url | string | No | "" | Custom endpoint for downloads. |
encoding | string | No | "50438146" | The encoding for the backend. |
endpoint | string | No | "" | Endpoint for the service. Leave blank normally. |
hard_delete | boolean | No | false | Permanently delete files on remote removal, otherwise hide files. |
key | string | Yes | "" | Application Key. |
lifecycle | integer | No | 0 | Number of days deleted files should be kept when creating a bucket. |
memory_pool_flush_time | integer | No | 60 | How often internal memory buffer pools will be flushed. (no longer used) (in seconds) |
memory_pool_use_mmap | boolean | No | false | Whether to use mmap buffers in internal memory pool. (no longer used) |
test_mode | string | No | "" | A flag string for X-Bz-Test-Mode header for debugging. |
upload_concurrency | integer | No | 4 | Concurrency for multipart uploads. |
upload_cutoff | string | No | "209715200" | Cutoff for switching to chunked upload. |
version_at | string | No | "0001-01-01T00:00:00Z" | Show file versions as they were at the specified time. |
versions | boolean | No | false | Include old versions in directory listings. |
Response
Section titled “Response”{ "success": true, "message": "Backend connected successfully", "data": { "id": "backend_01HXYZB2123456", "backend_type": "b2", "type": "object-storage", "mount_paths": [] }}{ "success": false, "error": "Failed to connect to backend: invalid Backblaze credentials"}SDK Example
Section titled “SDK Example”await client.files.backends.connectB2({ account: "005xxxxxxxxxxxxx", key: "K005xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"});POST /api/v1/backends/cloudinary
Section titled “POST /api/v1/backends/cloudinary”Cloudinary.
This endpoint takes no parameters.
Request Body
Section titled “Request Body”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
api_key | string | Yes | "" | Cloudinary API Key. |
api_secret | string | Yes | "" | Cloudinary API Secret. |
cloud_name | string | Yes | "" | Cloudinary Environment Name. |
description | string | No | "" | Description of the remote. |
encoding | string | No | "52543246" | The encoding for the backend. |
eventually_consistent_delay | integer | No | 0 | Wait N seconds for eventual consistency of the databases that support the backend operation. |
upload_prefix | string | No | "" | Specify the API endpoint for environments out of the US. |
upload_preset | string | No | "" | Upload Preset to select asset manipulation on upload. |
Response
Section titled “Response”{ "success": true, "message": "Backend connected successfully", "data": { "id": "backend_01HXYZCLOUD123", "backend_type": "cloudinary", "type": "object-storage", "mount_paths": [] }}{ "success": false, "error": "Failed to connect to backend: invalid cloud name"}SDK Example
Section titled “SDK Example”await client.files.backends.connectCloudinary({ cloud_name: "my-cloud", api_key: "123456789012345", api_secret: "abcdefghijklmnopqrstuvwx"});POST /api/v1/backends/imagekit
Section titled “POST /api/v1/backends/imagekit”ImageKit.io.
This endpoint takes no parameters.
Request Body
Section titled “Request Body”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
description | string | No | "" | Description of the remote. |
encoding | string | No | "117553486" | The encoding for the backend. |
endpoint | string | Yes | "" | ImageKit.io URL endpoint. |
only_signed | boolean | No | false | If you have configured “Restrict unsigned image URLs” in your dashboard, set this to true. |
private_key | string | Yes | "" | ImageKit.io private key. |
public_key | string | Yes | "" | ImageKit.io public key. |
upload_tags | string | No | "" | Tags to add to the uploaded files, e.g. "tag1,tag2". |
versions | boolean | No | false | Include old versions in directory listings. |
Response
Section titled “Response”{ "success": true, "message": "Backend connected successfully", "data": { "id": "backend_01HXYZIMAGE123", "backend_type": "imagekit", "type": "object-storage", "mount_paths": [] }}{ "success": false, "error": "Failed to connect to backend: invalid endpoint URL"}SDK Example
Section titled “SDK Example”await client.files.backends.connectImagekit({ endpoint: "https://ik.imagekit.io/myimagekitid", public_key: "public_xxxxxxxxxxxx", private_key: "private_xxxxxxxxxxxx"});POST /api/v1/backends/internetarchive
Section titled “POST /api/v1/backends/internetarchive”Internet Archive.
This endpoint takes no parameters.
Request Body
Section titled “Request Body”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
access_key_id | string | No | "" | IAS3 Access Key. Leave blank for anonymous access. |
description | string | No | "" | Description of the remote. |
disable_checksum | boolean | No | true | Don’t ask the server to test against MD5 checksum calculated by Hoody. |
encoding | string | No | "50446342" | The encoding for the backend. |
endpoint | string | No | "https://s3.us.archive.org" | IAS3 Endpoint. Leave blank for default value. |
front_endpoint | string | No | "https://archive.org" | Host of InternetArchive Frontend. Leave blank for default value. |
secret_access_key | string | No | "" | IAS3 Secret Key (password). Leave blank for anonymous access. |
wait_archive | integer | No | 0 | Timeout for waiting the server’s processing tasks (in seconds). |
Response
Section titled “Response”{ "success": true, "message": "Backend connected successfully", "data": { "id": "backend_01HXYZARCH12345", "backend_type": "internetarchive", "type": "object-storage", "mount_paths": [] }}{ "success": false, "error": "Failed to connect to backend: invalid IAS3 credentials"}SDK Example
Section titled “SDK Example”await client.files.backends.connectInternetarchive({ access_key_id: "xxxxxxxxxxxx", secret_access_key: "xxxxxxxxxxxx"});POST /api/v1/backends/netstorage
Section titled “POST /api/v1/backends/netstorage”Akamai NetStorage.
This endpoint takes no parameters.
Request Body
Section titled “Request Body”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
account | string | Yes | "" | Set the NetStorage account name. |
description | string | No | "" | Description of the remote. |
host | string | Yes | "" | Domain+path of NetStorage host to connect to. Format should be <domain>/<internal folders>. |
protocol | string | No | "https" | Select between HTTP or HTTPS protocol. Allowed values: http, https. |
secret | string | Yes | "" | Set the NetStorage account secret/G2O key for authentication. |
Response
Section titled “Response”{ "success": true, "message": "Backend connected successfully", "data": { "id": "backend_01HXYZNETS12345", "backend_type": "netstorage", "type": "object-storage", "mount_paths": [] }}{ "success": false, "error": "Failed to connect to backend: invalid host or secret"}SDK Example
Section titled “SDK Example”await client.files.backends.connectNetstorage({ account: "myaccount", host: "myaccount.akamaihd.net", secret: "G2O-secret-key"});POST /api/v1/backends/qingstor
Section titled “POST /api/v1/backends/qingstor”QingCloud Object Storage.
This endpoint takes no parameters.
Request Body
Section titled “Request Body”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
access_key_id | string | No | "" | QingStor Access Key ID. Leave blank for anonymous access or runtime credentials. |
chunk_size | string | No | "4194304" | Chunk size to use for uploading. |
connection_retries | integer | No | 3 | Number of connection retries. |
description | string | No | "" | Description of the remote. |
encoding | string | No | "16842754" | The encoding for the backend. |
endpoint | string | No | "" | Enter an endpoint URL to connect QingStor API. |
env_auth | boolean | No | false | Get QingStor credentials from runtime. |
secret_access_key | string | No | "" | QingStor Secret Access Key (password). Leave blank for anonymous access or runtime credentials. |
upload_concurrency | integer | No | 1 | Concurrency for multipart uploads. |
upload_cutoff | string | No | "209715200" | Cutoff for switching to chunked upload. |
zone | string | No | "" | Zone to connect to. Allowed values: pek3a, sh1a, gd2a. |
Response
Section titled “Response”{ "success": true, "message": "Backend connected successfully", "data": { "id": "backend_01HXYZQSTO12345", "backend_type": "qingstor", "type": "object-storage", "mount_paths": [] }}{ "success": false, "error": "Failed to connect to backend: invalid access key"}SDK Example
Section titled “SDK Example”await client.files.backends.connectQingstor({ access_key_id: "QINGSTOR_ACCESS_KEY", secret_access_key: "QINGSTOR_SECRET_KEY", zone: "pek3a"});POST /api/v1/backends/swift
Section titled “POST /api/v1/backends/swift”OpenStack Swift (Rackspace Cloud Files, Blomp Cloud Storage, Memset Memstore, OVH).
This endpoint takes no parameters.
Request Body
Section titled “Request Body”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
application_credential_id | string | No | "" | Application Credential ID (OS_APPLICATION_CREDENTIAL_ID). |
application_credential_name | string | No | "" | Application Credential Name (OS_APPLICATION_CREDENTIAL_NAME). |
application_credential_secret | string | No | "" | Application Credential Secret (OS_APPLICATION_CREDENTIAL_SECRET). |
auth | string | No | "" | Authentication URL for server (OS_AUTH_URL). |
auth_token | string | No | "" | Auth Token from alternate authentication — optional (OS_AUTH_TOKEN). |
auth_version | integer | No | 0 | AuthVersion — optional — set to (1, 2, 3) if your auth URL has no version (ST_AUTH_VERSION). |
chunk_size | string | No | "5368709120" | Above this size files will be chunked. |
description | string | No | "" | Description of the remote. |
domain | string | No | "" | User domain — optional (v3 auth) (OS_USER_DOMAIN_NAME). |
encoding | string | No | "16777218" | The encoding for the backend. |
endpoint_type | string | No | "public" | Endpoint type to choose from the service catalogue (OS_ENDPOINT_TYPE). Allowed values: public, internal, admin. |
env_auth | boolean | No | false | Get swift credentials from environment variables in standard OpenStack form. |
fetch_until_empty_page | boolean | No | false | When paginating, always fetch unless we received an empty page. |
key | string | No | "" | API key or password (OS_PASSWORD). |
leave_parts_on_error | boolean | No | false | If true avoid calling abort upload on a failure. |
no_chunk | boolean | No | false | Don’t chunk files during streaming upload. |
no_large_objects | boolean | No | false | Disable support for static and dynamic large objects. |
partial_page_fetch_threshold | integer | No | 0 | When paginating, fetch if the current page is within this percentage of the limit. |
region | string | No | "" | Region name — optional (OS_REGION_NAME). |
storage_policy | string | No | "" | The storage policy to use when creating a new container. Allowed values: "", pcs, pca. |
storage_url | string | No | "" | Storage URL — optional (OS_STORAGE_URL). |
tenant | string | No | "" | Tenant name — optional for v1 auth, this or tenant_id required otherwise (OS_TENANT_NAME or OS_PROJECT_NAME). |
tenant_domain | string | No | "" | Tenant domain — optional (v3 auth) (OS_PROJECT_DOMAIN_NAME). |
tenant_id | string | No | "" | Tenant ID — optional for v1 auth, this or tenant required otherwise (OS_TENANT_ID). |
use_segments_container | string | No | {"Valid":false,"Value":false} | Choose destination for large object segments. |
user | string | No | "" | User name to log in (OS_USERNAME). |
user_id | string | No | "" | User ID to log in — optional (OS_USER_ID). |
Response
Section titled “Response”{ "success": true, "message": "Backend connected successfully", "data": { "id": "backend_01HXYZSWIFT1234", "backend_type": "swift", "type": "object-storage", "mount_paths": [] }}{ "success": false, "error": "Failed to connect to backend: invalid authentication"}SDK Example
Section titled “SDK Example”await client.files.backends.connectSwift({ auth: "https://auth.cloud.ovh.net/v3", user: "username", key: "password", tenant: "tenantname", region: "GRA1"});Decentralized storage
Section titled “Decentralized storage”POST /api/v1/backends/sia
Section titled “POST /api/v1/backends/sia”Sia Decentralized Cloud.
This endpoint takes no parameters.
Request Body
Section titled “Request Body”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
api_password | string | No | "" | Sia Daemon API Password. |
api_url | string | No | "http://127.0.0.1:9980" | Sia daemon API URL, like http://sia.daemon.host:9980. |
description | string | No | "" | Description of the remote. |
encoding | string | No | "50436354" | The encoding for the backend. |
user_agent | string | No | "Sia-Agent" | Siad User Agent. Sia daemon requires the Sia-Agent user agent by default for security. |
Response
Section titled “Response”{ "success": true, "message": "Backend connected successfully", "data": { "id": "backend_01HXYZSIA123456", "backend_type": "sia", "type": "object-storage", "mount_paths": [] }}{ "success": false, "error": "Failed to connect to backend: cannot reach Sia daemon"}SDK Example
Section titled “SDK Example”await client.files.backends.connectSia({ api_url: "http://sia.daemon.host:9980", api_password: "sia-api-password"});POST /api/v1/backends/storj
Section titled “POST /api/v1/backends/storj”Storj Decentralized Cloud Storage.
This endpoint takes no parameters.
Request Body
Section titled “Request Body”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
access_grant | string | No | "" | Access grant. |
api_key | string | No | "" | API key. |
description | string | No | "" | Description of the remote. |
passphrase | string | No | "" | Encryption passphrase. To access existing objects enter passphrase used for uploading. |
provider | string | No | "existing" | Choose an authentication method. Allowed values: existing, new. |
satellite_address | string | No | "us1.storj.io" | Satellite address. Allowed values: us1.storj.io, eu1.storj.io, ap1.storj.io. |
Response
Section titled “Response”{ "success": true, "message": "Backend connected successfully", "data": { "id": "backend_01HXYZSTORJ12345", "backend_type": "storj", "type": "object-storage", "mount_paths": [] }}{ "success": false, "error": "Failed to connect to backend: invalid access grant"}SDK Example
Section titled “SDK Example”await client.files.backends.connectStorj({ access_grant: "1x...long-access-grant-string...", satellite_address: "us1.storj.io"});POST /api/v1/backends/tardigrade
Section titled “POST /api/v1/backends/tardigrade”Storj Decentralized Cloud Storage.
This endpoint takes no parameters.
Request Body
Section titled “Request Body”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
access_grant | string | No | "" | Access grant. |
api_key | string | No | "" | API key. |
description | string | No | "" | Description of the remote. |
passphrase | string | No | "" | Encryption passphrase. To access existing objects enter passphrase used for uploading. |
provider | string | No | "existing" | Choose an authentication method. Allowed values: existing, new. |
satellite_address | string | No | "us1.storj.io" | Satellite address. Allowed values: us1.storj.io, eu1.storj.io, ap1.storj.io. |
Response
Section titled “Response”{ "success": true, "message": "Backend connected successfully", "data": { "id": "backend_01HXYZTARD123456", "backend_type": "tardigrade", "type": "object-storage", "mount_paths": [] }}{ "success": false, "error": "Failed to connect to backend: invalid API key"}SDK Example
Section titled “SDK Example”await client.files.backends.connectTardigrade({ api_key: "storj-api-key", passphrase: "encryption-passphrase", provider: "new"});