STORAGE_* variables to switch to any S3-compatible provider.
All
STORAGE_* variables also accept the S3_* prefix (e.g. S3_REGION = STORAGE_REGION).Parameters
| Parameter | Description |
|---|---|
STORAGE_REGION | S3 region |
STORAGE_ACCESS_KEY_ID | Access key ID |
STORAGE_SECRET_ACCESS_KEY | Secret access key |
STORAGE_BUCKET_NAME | Bucket name |
STORAGE_ENDPOINT | Custom endpoint (non-AWS providers) |
STORAGE_PUBLIC_URL | Public URL or CDN domain |
STORAGE_MAX_SOCKETS | Max concurrent HTTP connections |
STORAGE_CONNECTION_TIMEOUT | Connection timeout (ms) |
STORAGE_REQUEST_TIMEOUT | Request timeout (ms) |
STORAGE_SOCKET_TIMEOUT | Socket timeout (ms) |
Quick-start configs
- AWS S3
- Cloudflare R2
- MinIO (self-hosted)
- Other S3-compatible
- Production (with timeouts)
STORAGE_ENDPOINT needed for AWS S3.Parameter reference
S3 region identifier.
us-east-1 · eu-west-1 · auto (Cloudflare R2)Alternative: S3_REGIONAccess key ID for your storage provider.Alternative:
S3_ACCESS_KEY_IDSecret access key for your storage provider.Alternative:
S3_SECRET_ACCESS_KEYName of the bucket where files are stored.Alternative:
S3_BUCKET_NAMECustom endpoint for non-AWS S3-compatible providers. Omit for standard AWS S3.
Alternative:
| Provider | Endpoint format |
|---|---|
| Cloudflare R2 | https://<account-id>.r2.cloudflarestorage.com |
| MinIO | http://minio.example.com:9000 |
| DigitalOcean Spaces | https://nyc3.digitaloceanspaces.com |
| Wasabi | https://s3.wasabisys.com |
S3_ENDPOINTPublic base URL used to construct file URLs. Set this to your CDN or custom domain when you don’t want to expose raw S3 URLs.
https://cdn.example.com · https://my-bucket.s3.us-east-1.amazonaws.comAlternative: S3_PUBLIC_URLAdvanced parameters
Max simultaneous HTTP connections to the storage provider. Increase if you see connection pool exhaustion under load.
50 (default) · 100 (high traffic) · 25 (low resource)Connection timeout in ms.
0 = no timeout.0 · 5000 (5 s) · 10000 (10 s)Request timeout in ms.
0 = no timeout. For large uploads, use 300000 (5 min) or higher.0 · 30000 (30 s) · 300000 (5 min)TCP socket timeout in ms.
0 = no timeout.0 · 60000 (1 min) · 120000 (2 min)Related
Quick Start
Run Openinary with local or S3 storage.
Upload & Cache Warming
Upload files and prewarm transformation cache.