Overview
Configure a custom S3-compatible storage bucket for your downloads. Credentials are verified before saving.
Your API key for authentication
Request
S3 endpoint URL (e.g., https://s3.us-east-1.amazonaws.com)
AWS region (e.g., us-east-1, auto for R2)
AWS Access Key ID or equivalent
AWS Secret Access Key or equivalent
Response
Success confirmation message
Example
curl -X POST "https://api.tornadoapi.io/user/bucket" \
-H "x-api-key: sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"endpoint": "https://s3.us-east-1.amazonaws.com",
"bucket": "my-tornado-downloads",
"region": "us-east-1",
"access_key": "AKIAIOSFODNN7EXAMPLE",
"secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
}'
Success Response
{
"message": "Bucket configuration updated successfully"
}
Error Responses
{
"error": "Verification failed: Access Denied"
}
Verification Process
When you submit bucket configuration, Tornado:
- Creates an S3 client with your credentials
- Attempts to list the bucket (verifies read access)
- If successful, saves the configuration
Ensure your credentials have both read and write permissions before configuring.
Required IAM Permissions
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::your-bucket-name",
"arn:aws:s3:::your-bucket-name/*"
]
}
]
}
Supported Providers
| Provider | Endpoint Format | Region |
|---|
| AWS S3 | https://s3.{region}.amazonaws.com | Your region |
| Cloudflare R2 | https://{account_id}.r2.cloudflarestorage.com | auto |
| OVH Object Storage | https://s3.{region}.cloud.ovh.net | Your region |
| MinIO | Your MinIO URL | Your region |
| DigitalOcean Spaces | https://{region}.digitaloceanspaces.com | Your region |
| Backblaze B2 | https://s3.{region}.backblazeb2.com | Your region |
| Wasabi | https://s3.{region}.wasabisys.com | Your region |