Skip to main content

S3-Compatible Storage

Configuration for S3-compatible object storage services, (e.g. AWS S3, MinIO).

NameDescriptionRequiredType
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:
  • This should only be set if it is different from S3_ENDPOINT_INTERNAL.
  • Now enabled only using AWS S3, the S3_ENDPOINT_INTERNAL must be an external URL if external access is required.
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"and
S3_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