Object Storage
Object Storage is an S3-compatible storage service for files of any size: user uploads, backups, media assets, build artifacts, ML datasets.
It speaks the standard AWS S3 API end to end: bucket operations, object operations, multipart uploads, presigned URLs, AWS Signature v4 authentication, path-style and virtual-hosted addressing. Any tool or SDK that talks to Amazon S3 works with Runsite Object Storage by changing only the endpoint URL.
Looking for plans or pricing?
Storage tiers, egress limits, the free tier and pricing are not documented here — they live on the S3-compatible object storage page. This section covers the API surface and how buckets and keys work.
What you get
Section titled “What you get”- A dashboard in your workspace to create buckets, upload and browse files, generate access keys and share signed download links — without writing a single line of code.
- A public S3 endpoint at
https://s3.runsite.appthat any S3 SDK or CLI can talk to directly. - Per-bucket access keys so you can give one app, one CI job, one user only the access they need.
- Public buckets for static assets you want to serve directly over HTTPS (avatars, product images, public downloads).
- Presigned URLs for direct browser uploads and time-limited downloads — your backend never has to proxy bytes.
Concepts
Section titled “Concepts”| Bucket | A container for objects, identified by a name unique inside your workspace (3–63 characters, lowercase). |
| Object | A single file, identified by a key inside a bucket. Objects can be of any size. |
| Access key | A pair of access_key_id and secret_access_key used to authenticate API requests. Scoped by permission set and optionally to a single bucket. |
| Presigned URL | A short-lived, signed URL that grants access to a specific object without exposing credentials. |
| Public bucket | A bucket whose objects are readable anonymously over HTTPS — handy for static assets. |
Endpoint
Section titled “Endpoint”There is a single S3 endpoint, regardless of where your data is stored:
https://s3.runsite.appBoth standard S3 addressing styles are supported:
- Path-style —
https://s3.runsite.app/<bucket>/<key>(recommended, what the dashboard shows) - Virtual-hosted style —
https://<bucket>.s3.runsite.app/<key>
For the region_name field that some SDKs require, use auto. Runsite stores all data in EU jurisdiction.
Is Runsite Object Storage compatible with the AWS S3 SDK?
Section titled “Is Runsite Object Storage compatible with the AWS S3 SDK?”Yes. It implements the standard AWS S3 API — bucket and object operations, multipart uploads, presigned URLs and Signature v4 auth. Point any S3 SDK or CLI at https://s3.runsite.app by changing only the endpoint URL.
What do I use for the region?
Section titled “What do I use for the region?”Use auto for the region_name field. All data is stored in EU jurisdiction regardless of the region string your SDK sends.
How do I serve files publicly over HTTPS?
Section titled “How do I serve files publicly over HTTPS?”Make the bucket public. Objects in a public bucket are readable anonymously over HTTPS — handy for avatars, product images and other static assets.
How should a browser upload files directly?
Section titled “How should a browser upload files directly?”Generate a presigned URL on your backend and hand it to the browser. The upload goes straight to storage, so your access keys never reach the client. See Presigned URLs.
Can I limit an access key to a single bucket?
Section titled “Can I limit an access key to a single bucket?”Yes. Access keys are scoped by permission set and can be restricted to one bucket, so you can give an app or CI job only the access it needs.
Where to next
Section titled “Where to next”- Dashboard — buckets, files, keys and settings in the UI.
- Access keys — generating, scoping and revoking credentials.
- Connecting clients — boto3, AWS SDK, AWS CLI, rclone and more.
- Presigned URLs — direct browser uploads and time-limited downloads.
Storing user uploads from a web app?
Generate a per-bucket key with read & write permissions, store it in your service environment variables and use any S3 SDK against the Runsite endpoint. Browser-side uploads should go through a presigned URL so your access keys never reach the client.