Object storage
Add Storage > Object storage. Each node is its own bucket with its own key, and works with any S3 client
(the AWS SDKs, boto3, rclone, aws CLI).
What your app gets
Section titled “What your app gets”| Variable | Notes |
|---|---|
S3_ENDPOINT |
The address apps inside the workspace use |
S3_PUBLIC_ENDPOINT |
The public address, for presigned URLs a browser opens |
S3_REGION |
|
S3_BUCKET |
|
S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY |
A key that only works on this bucket |
S3_FORCE_PATH_STYLE |
Always true |
Apps that read the AWS names (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION, AWS_ENDPOINT_URL,
AWS_S3_BUCKET, BUCKET_NAME…) get those too.
Use path-style addressing. The bucket is at <endpoint>/<bucket>; virtual-host style (<bucket>.<endpoint>)
doesn’t work. Most SDKs pick this up from S3_FORCE_PATH_STYLE; with the AWS SDK for JavaScript set
forcePathStyle: true.
import { S3Client } from '@aws-sdk/client-s3';
const s3 = new S3Client({ endpoint: process.env.S3_ENDPOINT, region: process.env.S3_REGION, forcePathStyle: true,});Settings
Section titled “Settings”- Quota (optional, 1 MB to 10 TB). At the limit, uploads are refused while reads and deletes keep working. Usage updates every few minutes. Your plan’s storage total applies as well.
- CORS origins. Needed when a browser uploads or downloads directly:
*, or up to 10 comma-separated origins. Empty blocks browsers.
Files tab
Section titled “Files tab”Browse, upload (up to 100 MB per file), download and delete files right in the dashboard. Editors and owners only.
Connecting from outside
Section titled “Connecting from outside”Connect from outside shows the key ID, endpoint, region, bucket and a ready-to-paste aws command.
Reveal secret shows the secret key for 60 seconds (editors and owners; it is recorded in the activity log).
aws --endpoint-url "$S3_PUBLIC_ENDPOINT" s3 ls "s3://$S3_BUCKET/"Public buckets
Section titled “Public buckets”Where the platform allows it, a bucket in a personal workspace can be made publicly readable, for example to serve images or a static site straight from storage. It gets its own address, serves only reads, and is rate limited.
Deleting
Section titled “Deleting”Deleting the node revokes its key at once, so apps lose access. The files are kept for 7 days before they are purged, so an accidental delete can be recovered by contacting support.