Skip to main content
POST
Configure S3 Storage

Overview

Set up your own S3-compatible storage for uploaded videos. Credentials are verified before saving.

Header Parameters

string
required
Your API key for authentication

Request Body

string
required
S3 endpoint URL (e.g., https://s3.us-east-1.amazonaws.com or https://ACCOUNT_ID.r2.cloudflarestorage.com)
string
required
Bucket name
string
required
AWS region (e.g., us-east-1, auto for R2)
string
required
AWS Access Key ID or equivalent
string
required
AWS Secret Access Key or equivalent
string
Optional folder prefix for organizing uploads (e.g., downloads/2024/)
string
default:"videos"
Base folder name for uploaded files. Defaults to videos if not specified. Set to a custom value to change the top-level folder where files are stored (e.g., downloads, media).

Response

string
Success confirmation message
string
Storage provider type: s3
string
The configured bucket name
string
The configured folder prefix (if provided)

Examples

Success Response

Error Responses

Verification Process

When you submit storage configuration, Tornado:
  1. Validates the request format and required fields
  2. Creates a storage client with your credentials
  3. Uploads a small uniquely named credential-probe object
  4. Attempts best-effort deletion of that probe
  5. Saves credentials in Key Vault and a configuration reference on the key when Key Vault is available. If disabled, this S3 route uses the legacy API-key storage path; that path does not preserve base_folder or folder_prefix
Allow write and delete access to the probe and read access for delivery. A successful upload probe does not verify all permissions or future availability.

Example IAM Permissions

This broad example includes listing. The credential probe itself performs PutObject and best-effort DeleteObject, not ListBucket; scope a policy to your upload/delivery and cleanup needs.

Supported S3-Compatible Providers