Skip to content
Hoody.com

Use these endpoints to register an external object storage backend with the Hoody Files service. Each endpoint persists a new remote configuration and returns a backend identifier that can later be mounted to a filesystem path inside the container. The Files service supports a broad set of providers — S3-compatible clouds, Azure, Google Cloud, Backblaze, media CDNs, archives, and decentralized networks — each with its own authentication scheme and tuning options.

All endpoints accept a JSON request body describing the backend configuration. On success the response includes the new backend’s id, its backend_type, and an empty mount_paths array; the array is populated when you subsequently mount the backend.

Connect an Amazon S3 or S3-compatible backend. Supported providers include 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.

NameTypeRequiredDescription
endpointstringYesEndpoint for the S3 API. Required when using an S3 clone. One of the preset provider endpoints or any custom hostname.
access_key_idstringNoAWS Access Key ID. Leave blank for anonymous access or runtime credentials. Default: "".
secret_access_keystringNoAWS Secret Access Key. Leave blank for anonymous access or runtime credentials. Default: "".
regionstringNoRegion to connect to. Default: "". Allowed values: "", other-v2-signature.
providerstringNoChoose your S3 provider. Default: "". Allowed values: 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, Other.
aclstringNoCanned ACL applied when creating buckets and storing objects. Default: "".
bucket_aclstringNoCanned ACL used when creating buckets. Default: "".
chunk_sizestringNoChunk size for multipart uploads. Default: "5242880".
copy_cutoffstringNoCutoff for switching to multipart copy (max 5 GiB). Default: "4999610368".
upload_concurrencyintegerNoConcurrency for multipart uploads and copies. Default: 4.
upload_cutoffstringNoCutoff for switching to chunked upload. Default: "209715200".
download_urlstringNoCustom endpoint for downloads (e.g. a CloudFront URL). Default: "".
storage_classstringNoStorage class for new objects (e.g. STANDARD, GLACIER). Default: "".
server_side_encryptionstringNoServer-side encryption algorithm. Allowed values: "", AES256, aws:kms. Default: "".
session_tokenstringNoAWS session token. Default: "".
profilestringNoProfile in the shared credentials file (used with env_auth). Default: "".
shared_credentials_filestringNoPath to the shared credentials file. Default: "".
env_authbooleanNoRead AWS credentials from runtime (env vars or EC2/ECS meta data). Default: false.
force_path_stylebooleanNoUse path style access instead of virtual hosted style. Default: true.
v2_authbooleanNoUse v2 authentication instead of v4. Default: false.
list_chunkintegerNoSize of listing chunk (MaxKeys). Default: 1000.
list_versionintegerNoListObjects version: 1, 2, or 0 for auto. Default: 0.
max_upload_partsintegerNoMaximum number of parts in a multipart upload. Default: 10000.
requester_paysbooleanNoEnable requester pays for the bucket. Default: false.
no_check_bucketbooleanNoSkip checking/creating the bucket. Default: false.
no_headbooleanNoDon’t HEAD uploaded objects to check integrity. Default: false.
no_head_objectbooleanNoSkip HEAD before GET when getting objects. Default: false.
disable_checksumbooleanNoSkip storing MD5 checksum with object metadata. Default: false.
disable_http2booleanNoDisable HTTP/2 for the S3 backend. Default: false.
decompressbooleanNoDecompress gzip-encoded objects on download. Default: false.
directory_markersbooleanNoUpload empty marker objects for directories. Default: false.
directory_bucketbooleanNoConfigure for AWS Directory Buckets. Default: false.
leave_parts_on_errorbooleanNoLeave uploaded parts on S3 after a failure (for manual recovery). Default: false.
use_accelerate_endpointbooleanNoUse AWS S3 accelerated endpoint. Default: false.
use_dual_stackbooleanNoUse AWS S3 dual-stack endpoint (IPv6). Default: false.
use_presigned_requestbooleanNoUse a presigned request for single part uploads. Default: false.
sts_endpointstringNoEndpoint for STS (deprecated). Default: "".
sdk_log_modestringNoSDK debug log levels. Default: "0".
location_constraintstringNoLocation constraint matching the region. Default: "".
encodingstringNoBackend encoding. Default: "50331650".
descriptionstringNoDescription of the remote. Default: "".
version_atstringNoShow file versions as of a specific time. Default: "0001-01-01T00:00:00Z".
versionsbooleanNoInclude old versions in directory listings. Default: false.
version_deletedbooleanNoShow deleted file markers when using versions. Default: false.
memory_pool_flush_timeintegerNoLegacy: memory buffer flush interval (seconds). Default: 60.
memory_pool_use_mmapbooleanNoLegacy: use mmap in the memory pool. Default: false.
no_system_metadatabooleanNoSuppress setting and reading of system metadata. Default: false.
list_url_encodestringNoURL-encode listings (unset/true/false). Default: {"Valid":false,"Value":false}.
might_gzipstringNoBackend may gzip objects (unset/true/false). Default: {"Valid":false,"Value":false}.
use_accept_encoding_gzipstringNoSend Accept-Encoding: gzip header (unset/true/false). Default: {"Valid":false,"Value":false}.
use_already_existsstringNoReport BucketAlreadyExists errors on bucket creation (unset/true/false). Default: {"Valid":false,"Value":false}.
use_multipart_etagstringNoUse ETag for multipart upload verification (unset/true/false). Default: {"Valid":false,"Value":false}.
use_multipart_uploadsstringNoUse multipart uploads (unset/true/false). Default: {"Valid":false,"Value":false}.
use_unsigned_payloadstringNoUse unsigned payload in PutObject (unset/true/false). Default: {"Valid":false,"Value":false}.
sse_customer_algorithmstringNoSSE-C encryption algorithm. Allowed values: "", AES256. Default: "".
sse_customer_keystringNoSSE-C encryption key. Default: "".
sse_customer_key_base64stringNoSSE-C encryption key (base64). Default: "".
sse_customer_key_md5stringNoSSE-C encryption key MD5 checksum. Default: "".
sse_kms_key_idstringNoKMS Key ARN. Default: "".
{
"success": true,
"message": "Backend connected successfully",
"data": {
"id": "68d3f1a24c5e9b0012a4f7c9",
"type": "remote",
"backend_type": "s3",
"mount_paths": []
}
}
Terminal window
curl -X POST https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends/s3 \
-H "Authorization: Bearer $HOODY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"endpoint": "s3.us-east-1.amazonaws.com",
"provider": "AWS",
"region": "us-east-1",
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"secret_access_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
}'

Connect a Microsoft Azure Blob Storage backend. Supports shared keys, SAS URLs, service principals, certificates, MSI, the az CLI, and an emulator.

This endpoint takes no parameters.

NameTypeRequiredDescription
accountstringNoAzure Storage Account Name. Leave blank for SAS URL or Emulator. Default: "".
keystringNoStorage Account Shared Key. Leave blank for SAS URL or Emulator. Default: "".
sas_urlstringNoSAS URL for container-level access. Default: "".
tenantstringNoService principal tenant/directory ID. Default: "".
client_idstringNoClient ID (service principal or user). Default: "".
client_secretstringNoService principal client secret. Default: "".
client_certificate_pathstringNoPath to PEM or PKCS12 certificate. Default: "".
client_certificate_passwordstringNoCertificate password. Default: "".
client_send_certificate_chainbooleanNoSend the certificate chain (x5c) when using certificate auth. Default: false.
service_principal_filestringNoPath to a service principal credentials file. Default: "".
usernamestringNoUsername (usually an email) for user/password auth. Default: "".
passwordstringNoUser password. Default: "".
use_msibooleanNoUse a managed service identity for auth. Default: false.
msi_object_idstringNoObject ID of the user-assigned MSI. Default: "".
msi_client_idstringNoClient ID of the user-assigned MSI. Default: "".
msi_mi_res_idstringNoAzure resource ID of the user-assigned MSI. Default: "".
use_azbooleanNoUse Azure CLI (az) for authentication. Default: false.
env_authbooleanNoRead credentials from runtime (env vars, CLI, MSI). Default: false.
use_emulatorbooleanNoUse the local Azure storage emulator. Default: false.
endpointstringNoEndpoint for the service. Leave blank normally. Default: "".
access_tierstringNoAccess tier of blobs (hot, cool, cold, archive). Default: "".
archive_tier_deletebooleanNoDelete archive tier blobs before overwriting. Default: false.
public_accessstringNoContainer public access level. Allowed values: "", blob, container. Default: "".
delete_snapshotsstringNoHow to handle snapshots on blob deletion. Allowed values: "", include, only. Default: "".
directory_markersbooleanNoUpload empty marker objects for directories. Default: false.
disable_checksumbooleanNoSkip storing MD5 checksum with object metadata. Default: false.
disable_instance_discoverybooleanNoSkip Microsoft Entra instance metadata request. Default: false.
no_check_containerbooleanNoSkip checking/creating the container. Default: false.
no_head_objectbooleanNoSkip HEAD before GET on objects. Default: false.
chunk_sizestringNoUpload chunk size. Default: "4194304".
upload_concurrencyintegerNoConcurrency for multipart uploads. Default: 16.
upload_cutoffstringNoCutoff for chunked upload (deprecated). Default: "".
list_chunkintegerNoBlob list chunk size (max 5000). Default: 5000.
encodingstringNoBackend encoding. Default: "21078018".
memory_pool_flush_timeintegerNoLegacy: memory buffer flush interval (seconds). Default: 60.
memory_pool_use_mmapbooleanNoLegacy: use mmap in the memory pool. Default: false.
descriptionstringNoDescription of the remote. Default: "".
{
"success": true,
"message": "Backend connected successfully",
"data": {
"id": "68d3f1a24c5e9b0012a4f7ca",
"type": "remote",
"backend_type": "azureblob",
"mount_paths": []
}
}
Terminal window
curl -X POST https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends/azureblob \
-H "Authorization: Bearer $HOODY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"account": "mystorageaccount",
"key": "example-azure-shared-key==",
"access_tier": "hot",
"public_access": "blob"
}'

Connect a Microsoft Azure Files (SMB share) backend.

This endpoint takes no parameters.

NameTypeRequiredDescription
accountstringNoAzure Storage Account Name. Default: "".
keystringNoStorage Account Shared Key. Default: "".
sas_urlstringNoSAS URL for the share. Default: "".
connection_stringstringNoAzure Files connection string. Default: "".
share_namestringNoAzure Files share name (required to access a share). Default: "".
tenantstringNoService principal tenant/directory ID. Default: "".
client_idstringNoClient ID. Default: "".
client_secretstringNoService principal client secret. Default: "".
client_certificate_pathstringNoPath to PEM or PKCS12 certificate. Default: "".
client_certificate_passwordstringNoCertificate password. Default: "".
client_send_certificate_chainbooleanNoSend the certificate chain when using certificate auth. Default: false.
service_principal_filestringNoPath to a service principal credentials file. Default: "".
usernamestringNoUsername (usually an email). Default: "".
passwordstringNoUser password. Default: "".
use_msibooleanNoUse a managed service identity for auth. Default: false.
msi_object_idstringNoObject ID of the user-assigned MSI. Default: "".
msi_client_idstringNoClient ID of the user-assigned MSI. Default: "".
msi_mi_res_idstringNoAzure resource ID of the user-assigned MSI. Default: "".
env_authbooleanNoRead credentials from runtime. Default: false.
endpointstringNoEndpoint for the service. Default: "".
chunk_sizestringNoUpload chunk size. Default: "4194304".
upload_concurrencyintegerNoConcurrency for multipart uploads. Default: 16.
max_stream_sizestringNoMaximum streamed file size (default pre-allocated). Default: "10737418240".
encodingstringNoBackend encoding. Default: "54634382".
descriptionstringNoDescription of the remote. Default: "".
{
"success": true,
"message": "Backend connected successfully",
"data": {
"id": "68d3f1a24c5e9b0012a4f7cb",
"type": "remote",
"backend_type": "azurefiles",
"mount_paths": []
}
}
Terminal window
curl -X POST https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends/azurefiles \
-H "Authorization: Bearer $HOODY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"account": "mystorageaccount",
"share_name": "myshare",
"key": "example-azure-shared-key=="
}'

POST /api/v1/backends/google-cloud-storage

Section titled “POST /api/v1/backends/google-cloud-storage”

Connect a Google Cloud Storage backend. Supports service accounts, OAuth client credentials, anonymous public-bucket access, and runtime credentials.

This endpoint takes no parameters.

NameTypeRequiredDescription
access_tokenstringNoShort-lived access token. Default: "".
service_account_filestringNoPath to Service Account JSON file. Default: "".
service_account_credentialsstringNoService Account credentials JSON blob. Default: "".
anonymousbooleanNoAccess public buckets/objects without credentials. Default: false.
auth_urlstringNoAuth server URL. Default: "".
tokenstringNoOAuth access token as JSON blob. Default: "".
token_urlstringNoToken server URL. Default: "".
client_credentialsbooleanNoUse OAuth2 client credentials flow (RFC 6749). Default: false.
client_idstringNoOAuth client ID. Default: "".
client_secretstringNoOAuth client secret. Default: "".
project_numberstringNoGCP project number (for list/create/delete buckets). Default: "".
user_projectstringNoUser project (for requester pays buckets). Default: "".
env_authbooleanNoGet GCP IAM credentials from runtime (env or instance metadata). Allowed values: "false", "true". Default: false.
locationstringNoLocation for newly created buckets. Default: "". See spec for allowed enum values.
storage_classstringNoStorage class for new objects. Allowed values: "", MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE, DURABLE_REDUCED_AVAILABILITY. Default: "".
bucket_aclstringNoACL for new buckets. Allowed values: authenticatedRead, private, projectPrivate, publicRead, publicReadWrite. Default: "".
object_aclstringNoACL for new objects. Allowed values: authenticatedRead, bucketOwnerFullControl, bucketOwnerRead, private, projectPrivate, publicRead. Default: "".
bucket_policy_onlybooleanNoUse bucket-level IAM policies. Default: false.
no_check_bucketbooleanNoSkip checking/creating the bucket. Default: false.
decompressbooleanNoDecompress gzip-encoded objects on download. Default: false.
directory_markersbooleanNoUpload empty marker objects for directories. Default: false.
endpointstringNoEndpoint for the service. Default: "".
encodingstringNoBackend encoding. Default: "50348034".
descriptionstringNoDescription of the remote. Default: "".
{
"success": true,
"message": "Backend connected successfully",
"data": {
"id": "68d3f1a24c5e9b0012a4f7cc",
"type": "remote",
"backend_type": "google cloud storage",
"mount_paths": []
}
}
Terminal window
curl -X POST https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends/google-cloud-storage \
-H "Authorization: Bearer $HOODY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"service_account_file": "/etc/gcp/sa-key.json",
"project_number": "123456789012",
"location": "us-central1",
"storage_class": "STANDARD"
}'

Connect an Oracle Cloud Infrastructure Object Storage backend.

This endpoint takes no parameters.

NameTypeRequiredDescription
providerstringYesAuthentication provider. Allowed values: env_auth, user_principal_auth, instance_principal_auth, workload_identity_auth, resource_principal_auth, no_auth. Default: "env_auth".
namespacestringYesObject storage namespace. Default: "".
regionstringYesObject storage region. Default: "".
config_filestringNoPath to OCI config file. Default: "~/.oci/config".
config_profilestringNoProfile name inside the OCI config file. Default: "Default".
compartmentstringNoCompartment OCID (for listing buckets). Default: "".
endpointstringNoEndpoint for the Object Storage API. Default: "".
storage_tierstringNoStorage class for new objects. Allowed values: Standard, InfrequentAccess, Archive. Default: "Standard".
chunk_sizestringNoChunk size for multipart uploads. Default: "5242880".
upload_concurrencyintegerNoConcurrency for multipart uploads. Default: 10.
upload_cutoffstringNoCutoff for chunked upload. Default: "209715200".
copy_cutoffstringNoCutoff for multipart copy (max 5 GiB). Default: "4999610368".
copy_timeoutintegerNoTimeout for copy operations (seconds). Default: 60.
max_upload_partsintegerNoMaximum multipart upload parts. Default: 10000.
no_check_bucketbooleanNoSkip checking/creating the bucket. Default: false.
disable_checksumbooleanNoSkip MD5 checksum storage. Default: false.
attempt_resume_uploadbooleanNoAttempt to resume a previously started multipart upload. Default: false.
leave_parts_on_errorbooleanNoLeave uploaded parts on failure (for manual recovery). Default: false.
sse_customer_algorithmstringNoSSE-C encryption algorithm. Allowed values: "", AES256. Default: "".
sse_customer_keystringNoBase64 SSE-C encryption key. Default: "".
sse_customer_key_filestringNoFile with the SSE-C encryption key. Default: "".
sse_customer_key_sha256stringNoBase64 SHA256 of the SSE-C key. Default: "".
sse_kms_key_idstringNoOCI Vault master encryption key OCID. Default: "".
encodingstringNoBackend encoding. Default: "50331650".
descriptionstringNoDescription of the remote. Default: "".
{
"success": true,
"message": "Backend connected successfully",
"data": {
"id": "68d3f1a24c5e9b0012a4f7cd",
"type": "remote",
"backend_type": "oracleobjectstorage",
"mount_paths": []
}
}
Terminal window
curl -X POST https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends/oracleobjectstorage \
-H "Authorization: Bearer $HOODY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"provider": "user_principal_auth",
"namespace": "axamplehi3w5p7nm",
"region": "us-ashburn-1",
"compartment": "ocid1.compartment.oc1..example"
}'

Connect a QingCloud Object Storage (QingStor) backend.

This endpoint takes no parameters.

NameTypeRequiredDescription
access_key_idstringNoQingStor Access Key ID. Default: "".
secret_access_keystringNoQingStor Secret Access Key. Default: "".
env_authbooleanNoGet QingStor credentials from runtime. Allowed values: "false", "true". Default: false.
endpointstringNoQingStor API endpoint. Default: "".
zonestringNoZone to connect to. Allowed values: pek3a, sh1a, gd2a. Default: "".
chunk_sizestringNoUpload chunk size. Default: "4194304".
upload_concurrencyintegerNoConcurrency for multipart uploads. Default: 1.
upload_cutoffstringNoCutoff for chunked upload. Default: "209715200".
connection_retriesintegerNoNumber of connection retries. Default: 3.
encodingstringNoBackend encoding. Default: "16842754".
descriptionstringNoDescription of the remote. Default: "".
{
"success": true,
"message": "Backend connected successfully",
"data": {
"id": "68d3f1a24c5e9b0012a4f7ce",
"type": "remote",
"backend_type": "qingstor",
"mount_paths": []
}
}
Terminal window
curl -X POST https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends/qingstor \
-H "Authorization: Bearer $HOODY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"access_key_id": "qingstor-access-key",
"secret_access_key": "qingstor-secret-key",
"zone": "pek3a"
}'

Connect a Backblaze B2 backend. The account and key fields are required for authenticated access.

This endpoint takes no parameters.

NameTypeRequiredDescription
accountstringYesAccount ID or Application Key ID. Default: "".
keystringYesApplication Key. Default: "".
endpointstringNoEndpoint for the service. Default: "".
download_urlstringNoCustom CDN endpoint for downloads (e.g. Cloudflare). Default: "".
hard_deletebooleanNoPermanently delete files on remote removal. Default: false.
lifecycleintegerNoDays to keep deleted/overwritten files before permanent deletion. Default: 0.
versionsbooleanNoInclude old versions in directory listings. Default: false.
version_atstringNoShow file versions as of a specific time. Default: "0001-01-01T00:00:00Z".
download_auth_durationintegerNoValidity of public link authorization tokens (seconds, max 1 week). Default: 604800.
chunk_sizestringNoUpload chunk size (min 5,000,000 bytes). Default: "100663296".
upload_concurrencyintegerNoConcurrency for multipart uploads. Default: 4.
upload_cutoffstringNoCutoff for chunked upload (max 4.657 GiB). Default: "209715200".
copy_cutoffstringNoCutoff for multipart copy (max 4.6 GiB). Default: "4294967296".
disable_checksumbooleanNoDisable SHA1 checksums for large files. Default: false.
test_modestringNoX-Bz-Test-Mode header for debugging B2. Default: "".
encodingstringNoBackend encoding. Default: "50438146".
memory_pool_flush_timeintegerNoLegacy: memory buffer flush interval (seconds). Default: 60.
memory_pool_use_mmapbooleanNoLegacy: use mmap in the memory pool. Default: false.
descriptionstringNoDescription of the remote. Default: "".
{
"success": true,
"message": "Backend connected successfully",
"data": {
"id": "68d3f1a24c5e9b0012a4f7cf",
"type": "remote",
"backend_type": "b2",
"mount_paths": []
}
}
Terminal window
curl -X POST https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends/b2 \
-H "Authorization: Bearer $HOODY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"account": "b2-account-id",
"key": "b2-application-key",
"hard_delete": true,
"lifecycle": 30
}'

Connect a Cloudinary media backend. The cloud_name, api_key, and api_secret fields are required.

This endpoint takes no parameters.

NameTypeRequiredDescription
cloud_namestringYesCloudinary environment name. Default: "".
api_keystringYesCloudinary API key. Default: "".
api_secretstringYesCloudinary API secret. Default: "".
upload_prefixstringNoAPI endpoint for non-US environments. Default: "".
upload_presetstringNoUpload preset for asset manipulation on upload. Default: "".
eventually_consistent_delayintegerNoWait N seconds for eventual consistency. Default: 0.
encodingstringNoBackend encoding. Default: "52543246".
descriptionstringNoDescription of the remote. Default: "".
{
"success": true,
"message": "Backend connected successfully",
"data": {
"id": "68d3f1a24c5e9b0012a4f7d0",
"type": "remote",
"backend_type": "cloudinary",
"mount_paths": []
}
}
Terminal window
curl -X POST https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends/cloudinary \
-H "Authorization: Bearer $HOODY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"cloud_name": "demo-cloud",
"api_key": "123456789012345",
"api_secret": "abcdefghijklmnopqrstuvwxyz12"
}'

Connect an ImageKit.io media backend. The endpoint, public_key, and private_key fields are required.

This endpoint takes no parameters.

NameTypeRequiredDescription
endpointstringYesImageKit.io URL endpoint (from the developer dashboard). Default: "".
public_keystringYesImageKit.io public key. Default: "".
private_keystringYesImageKit.io private key. Default: "".
only_signedbooleanNoEnable if Restrict unsigned image URLs is set in ImageKit settings. Default: false.
upload_tagsstringNoTags to add to uploaded files (e.g. tag1,tag2). Default: "".
versionsbooleanNoInclude old versions in directory listings. Default: false.
encodingstringNoBackend encoding. Default: "117553486".
descriptionstringNoDescription of the remote. Default: "".
{
"success": true,
"message": "Backend connected successfully",
"data": {
"id": "68d3f1a24c5e9b0012a4f7d1",
"type": "remote",
"backend_type": "imagekit",
"mount_paths": []
}
}
Terminal window
curl -X POST https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends/imagekit \
-H "Authorization: Bearer $HOODY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"endpoint": "https://ik.imagekit.io/demo",
"public_key": "public_abc123",
"private_key": "private_xyz789"
}'

Connect an Internet Archive backend. Set the IAS3 access and secret keys for authenticated access; leave them blank for anonymous access.

This endpoint takes no parameters.

NameTypeRequiredDescription
access_key_idstringNoIAS3 Access Key. Leave blank for anonymous access. Default: "".
secret_access_keystringNoIAS3 Secret Key. Leave blank for anonymous access. Default: "".
endpointstringNoIAS3 endpoint. Default: "https://s3.us.archive.org".
front_endpointstringNoHost of the Internet Archive frontend. Default: "https://archive.org".
disable_checksumbooleanNoSkip MD5 checksum verification by the server. Default: true.
wait_archiveintegerNoSeconds to wait for archive/book_op processing tasks (0 disables). Default: 0.
encodingstringNoBackend encoding. Default: "50446342".
descriptionstringNoDescription of the remote. Default: "".
{
"success": true,
"message": "Backend connected successfully",
"data": {
"id": "68d3f1a24c5e9b0012a4f7d2",
"type": "remote",
"backend_type": "internetarchive",
"mount_paths": []
}
}
Terminal window
curl -X POST https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends/internetarchive \
-H "Authorization: Bearer $HOODY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"access_key_id": "ia-access-key",
"secret_access_key": "ia-secret-key"
}'

Connect an Akamai NetStorage backend. The host, account, and secret fields are required.

This endpoint takes no parameters.

NameTypeRequiredDescription
hoststringYesDomain and internal path of the NetStorage host (<domain>/<folders>). Default: "".
accountstringYesNetStorage account name. Default: "".
secretstringYesNetStorage account secret / G2O key. Default: "".
protocolstringNoConnection protocol. Allowed values: http, https. Default: "https".
descriptionstringNoDescription of the remote. Default: "".
{
"success": true,
"message": "Backend connected successfully",
"data": {
"id": "68d3f1a24c5e9b0012a4f7d3",
"type": "remote",
"backend_type": "netstorage",
"mount_paths": []
}
}
Terminal window
curl -X POST https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends/netstorage \
-H "Authorization: Bearer $HOODY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"host": "my-ns.host.example.com/internal/path",
"account": "myaccount",
"secret": "g2o-secret-value"
}'

Connect an OpenStack Swift backend. Used with Rackspace Cloud Files, Blomp Cloud Storage, Memset Memstore, and OVH.

This endpoint takes no parameters.

NameTypeRequiredDescription
authstringNoAuthentication URL (OS_AUTH_URL). Default: "". Allowed presets: Rackspace, Memset, OVH endpoints.
auth_versionintegerNoAuth version (1, 2, or 3) when the auth URL has no version. Default: 0.
userstringNoUsername (OS_USERNAME). Default: "".
user_idstringNoUser ID for v3 auth (OS_USER_ID). Default: "".
keystringNoAPI key or password (OS_PASSWORD). Default: "".
auth_tokenstringNoAuth token from alternate authentication (OS_AUTH_TOKEN). Default: "".
tenantstringNoTenant name (OS_TENANT_NAME / OS_PROJECT_NAME). Default: "".
tenant_idstringNoTenant ID (OS_TENANT_ID). Default: "".
tenant_domainstringNoTenant domain for v3 auth (OS_PROJECT_DOMAIN_NAME). Default: "".
domainstringNoUser domain for v3 auth (OS_USER_DOMAIN_NAME). Default: "".
application_credential_idstringNoApplication credential ID. Default: "".
application_credential_namestringNoApplication credential name. Default: "".
application_credential_secretstringNoApplication credential secret. Default: "".
regionstringNoRegion name (OS_REGION_NAME). Default: "".
storage_urlstringNoStorage URL (OS_STORAGE_URL). Default: "".
endpoint_typestringNoEndpoint type from the service catalogue. Allowed values: public, internal, admin. Default: "public".
storage_policystringNoStorage policy for new containers. Allowed values: "", pcs, pca. Default: "".
env_authbooleanNoGet Swift credentials from environment variables. Allowed values: "false", "true". Default: false.
chunk_sizestringNoFiles above this size will be chunked. Default: "5368709120".
no_chunkbooleanNoDon’t chunk files during streaming upload. Default: false.
no_large_objectsbooleanNoDisable static and dynamic large objects. Default: false.
leave_parts_on_errorbooleanNoAvoid calling abort upload on failure. Default: false.
fetch_until_empty_pagebooleanNoAlways paginate unless an empty page is received. Default: false.
partial_page_fetch_thresholdintegerNoFetch if the current page is within this percent of the limit. Default: 0.
use_segments_containerstringNoWhere to store large-object segments. Default: {"Valid":false,"Value":false}.
encodingstringNoBackend encoding. Default: "16777218".
descriptionstringNoDescription of the remote. Default: "".
{
"success": true,
"message": "Backend connected successfully",
"data": {
"id": "68d3f1a24c5e9b0012a4f7d4",
"type": "remote",
"backend_type": "swift",
"mount_paths": []
}
}
Terminal window
curl -X POST https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends/swift \
-H "Authorization: Bearer $HOODY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"auth": "https://auth.cloud.ovh.net/v3",
"auth_version": 3,
"user": "swift-user",
"key": "swift-password",
"tenant": "mytenant",
"region": "GRA1"
}'

Connect a Sia decentralized cloud backend by pointing to a running siad daemon.

This endpoint takes no parameters.

NameTypeRequiredDescription
api_urlstringNoSia daemon API URL (e.g. http://sia.daemon.host:9980). Default: "http://127.0.0.1:9980".
api_passwordstringNoSia daemon API password (from the apipassword file). Default: "".
user_agentstringNoUser agent sent to the daemon. Default: "Sia-Agent".
encodingstringNoBackend encoding. Default: "50436354".
descriptionstringNoDescription of the remote. Default: "".
{
"success": true,
"message": "Backend connected successfully",
"data": {
"id": "68d3f1a24c5e9b0012a4f7d5",
"type": "remote",
"backend_type": "sia",
"mount_paths": []
}
}
Terminal window
curl -X POST https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends/sia \
-H "Authorization: Bearer $HOODY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"api_url": "http://sia.daemon.host:9980",
"api_password": "sia-api-password"
}'

Connect a Storj decentralized cloud storage backend. The provider field selects whether to use an existing access grant or to create a new one with an API key and passphrase.

This endpoint takes no parameters.

NameTypeRequiredDescription
providerstringNoAuthentication method. Allowed values: existing, new. Default: "existing".
satellite_addressstringNoSatellite address. Allowed values: us1.storj.io, eu1.storj.io, ap1.storj.io. Default: "us1.storj.io".
access_grantstringNoAccess grant (used with provider=existing). Default: "".
api_keystringNoAPI key (used with provider=new). Default: "".
passphrasestringNoEncryption passphrase. Default: "".
descriptionstringNoDescription of the remote. Default: "".
{
"success": true,
"message": "Backend connected successfully",
"data": {
"id": "68d3f1a24c5e9b0012a4f7d6",
"type": "remote",
"backend_type": "storj",
"mount_paths": []
}
}
Terminal window
curl -X POST https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends/storj \
-H "Authorization: Bearer $HOODY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"provider": "existing",
"satellite_address": "us1.storj.io",
"access_grant": "1abc2def3ghi..."
}'

Connect a Tardigrade backend. Tardigrade was the original name for the Storj network; the configuration fields are identical to the Storj backend.

This endpoint takes no parameters.

NameTypeRequiredDescription
providerstringNoAuthentication method. Allowed values: existing, new. Default: "existing".
satellite_addressstringNoSatellite address. Allowed values: us1.storj.io, eu1.storj.io, ap1.storj.io. Default: "us1.storj.io".
access_grantstringNoAccess grant (used with provider=existing). Default: "".
api_keystringNoAPI key (used with provider=new). Default: "".
passphrasestringNoEncryption passphrase. Default: "".
descriptionstringNoDescription of the remote. Default: "".
{
"success": true,
"message": "Backend connected successfully",
"data": {
"id": "68d3f1a24c5e9b0012a4f7d7",
"type": "remote",
"backend_type": "tardigrade",
"mount_paths": []
}
}
Terminal window
curl -X POST https://{projectId}-{containerId}-files-1.{server}.containers.hoody.com/api/v1/backends/tardigrade \
-H "Authorization: Bearer $HOODY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"provider": "existing",
"satellite_address": "eu1.storj.io",
"access_grant": "1abc2def3ghi..."
}'