Skip to content

Object Storage

Available

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.

  • 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.app that 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.
BucketA container for objects, identified by a name unique inside your workspace (3–63 characters, lowercase).
ObjectA single file, identified by a key inside a bucket. Objects can be of any size.
Access keyA 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 URLA short-lived, signed URL that grants access to a specific object without exposing credentials.
Public bucketA bucket whose objects are readable anonymously over HTTPS — handy for static assets.

There is a single S3 endpoint, regardless of where your data is stored:

https://s3.runsite.app

Both standard S3 addressing styles are supported:

  • Path-stylehttps://s3.runsite.app/<bucket>/<key> (recommended, what the dashboard shows)
  • Virtual-hosted stylehttps://<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.

Use auto for the region_name field. All data is stored in EU jurisdiction regardless of the region string your SDK sends.

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.

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.

IP geolocation by DB-IP