--public (or flip later) to serve objects with anonymous public read.
What you get
- S3 compatibility. Point any S3 SDK, the aws CLI, or rclone at it — no proprietary client.
- Terminal access.
insta storage list(prefix filtering, cursor paging),insta storage get <key>(downloads through a short-lived presigned URL),insta storage delete <key>. - Per-branch buckets. Each branch has its own bucket, so work on a branch stays on that branch. The storage commands accept
--branchto reach another branch’s bucket when you mean to.
Branching a bucket
insta branch create forks the bucket copy-on-write: the branch opens with all of the parent’s objects, and writes on either side never touch the other. Uploads an agent makes on its task branch disappear with insta branch delete.
On self-hosted InstaCloud OSS the fork is a full object sync rather than copy-on-write — same isolation, duplicated at clone time.
Credentials
Bucket credentials are provider-minted and live on the platform, like the database DSN. List what a bucket exposes and bind it into a compute service:On self-hosted InstaCloud OSS,
insta secrets bind answers 501. Skip it: every compute container already receives the bucket’s credentials under their own names (insta secrets list names them), or set your own with insta secrets set.AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_ENDPOINT_URL_S3, BUCKET_NAME, AWS_REGION), so --source-name is required — unlike Postgres, which exposes exactly one.
Bindings are injected as environment variables at deploy time. For local development, insta secrets writes user secrets to .env and insta run <cmd> injects the branch bundle into one process.