S3-Compatible Storage
Configuration for S3-compatible object storage services, (e.g. AWS S3, MinIO).
| Name | Description | Required | Type |
|---|---|---|---|
S3_ENDPOINT_INTERNAL | Set the URL for S3 of container name when using a mock S3 like MinIO | true | string |
S3_ENDPOINT_EXTERNAL | Set the external URL to get external access for downloading resources Notes:
| false | string |
AWS_REGION | AWS region for the S3 bucket | Required if: S3-Compatible Storage = "AWS S3" | string |
ACCESS_KEY_ID | Access key ID for S3 authentication | true | string |
SECRET_ACCESS_KEY | Secret access key for S3 authentication | true | string |
BUCKET_NAME | Name of the S3 bucket | true | string |
UPLOAD_URL_EXPIRE | Expiration time in seconds for generated S3 upload URLs | false | number Default: AWS S3 - 900 seconds, MinIO - 7 days |
DOWNLOAD_URL_EXPIRE | Expiration time in seconds for generated S3 download URLs | false | number Default: AWS S3 - 900 seconds, MinIO - 7 days |
MULTIPART_UPLOAD_ENABLED | Enable multipart (parallel, chunked) upload for large files. When 'false' all uploads use a single PUT. | false | boolean Default: true |
MULTIPART_THRESHOLD_MB | File size (in MB) above which multipart upload is used instead of a single PUT. | false | number Default: 100 |
MULTIPART_PART_SIZE_MB | Size (in MB) of each multipart part. ⚠️ Must not be less than 5 MB — S3/MinIO rejects a multipart upload whose non-final parts are smaller than 5 MiB. Values below 5 are automatically clamped to 5. | false | number Default: 64 |
MULTIPART_UPLOAD_URL_EXPIRE | Expiration time in seconds for the presigned part-upload URLs. Longer than UPLOAD_URL_EXPIRE because large multipart uploads can take hours (validated only when each part upload starts). | false | number Default: 86400 |
MINIO_USE_SSL | Flag to determine if MinIO server run with ssl | Required if: S3-Compatible Storage = "MinIO"andS3_ENDPOINT_INTERNAL = start with https | boolean Default: true |
MINIO_EVENTS_SKIP | When set to 'true', skips the MinIO event listener that synchronises uploaded objects with the database. | false | boolean Default: false |
MINIO_API_CORS_ALLOW_ORIGIN | MinIO server-side CORS setting — comma-separated list of allowed browser origins (or '*'). Enabling CORS lets the browser read the 'ETag' response header returned by each part upload, which is required to complete a multipart upload. Without it, browser-based multipart uploads fail at the complete step. ⚠️ Required for browser (dashboard) multipart uploads. This is set on the MinIO server, not the getapp service. Example: https://dashboard.example.com | false | string Default: * |
MINIO_API_CORS_EXPOSE_HEADERS | MinIO server-side CORS setting — comma-separated list of response headers exposed to the browser. Must include 'ETag' so the dashboard can read each part's ETag and complete a multipart upload. ⚠️ Must include 'ETag' for browser (dashboard) multipart uploads. This is set on the MinIO server, not the getapp service. Example: ETag,Content-Length,x-amz-request-id | false | string Default: ETag |