Object Storage

S3, without the S3 bill you cannot predict.

S3-compatible buckets on a prepaid tier that includes storage, egress, and requests. Your existing S3 client works unchanged, and an optional CDN puts objects at the edge when you need them there.

  • 9 regions
  • from USD 5 / month
  • S3 compatible
  • Private by default
acme-assets · eu-north-1Growth
# the client you already have$ aws s3 cp ./build s3://acme-assets/ --recursiveupload: build/app.js  →  s3://acme-assets/app.jsupload: build/app.css →  s3://acme-assets/app.css2 files uploaded# served from the edgehttps://cdn.acme.com/app.js  200  cache HIT

INCLUDED

3 allowances

Storage, egress, and requests

ENTRY TIER

USD 5/ mo

25 GB storage, 10 GB egress

CDN

USD 0.12/ GB

Opt-in add-on, toggle any time

HEADROOM

110%

Grace buffer before suspension

Three steps to a public URL

Nothing new to learn

A bucket here behaves like a bucket anywhere. What changes is that the allowances are prepaid, so the bill is a number you chose rather than one you discover.

  1. 01

    Create a bucket on a tier

    Pick a region and a prepaid tier. The tier sets the storage, egress, and request allowances included each month.

  2. 02

    Point your S3 client at it

    Any S3-compatible SDK or tool works unchanged — the AWS CLI, boto3, the JavaScript SDK, or whatever your framework already uses.

  3. 03

    Serve it publicly, or through the CDN

    Make the bucket public for a plain HTTPS URL, then add the CDN when you want objects cached at edge locations worldwide.

What comes with a bucket

Built on S3, managed by us

The same infrastructure behind every tier. What differs is the allowance, and what Cosmoner adds around it.

S3-compatible API

Backed by AWS S3, so any S3-compatible SDK or tool talks to it unchanged. There is no client library to adopt and no dialect to learn.

aws s3 · boto3 · @aws-sdk/client-s3

Optional global CDN

Put a CloudFront distribution in front of a public bucket to cache objects at edge locations worldwide. Toggle it on or off at any time.

USD 0.12 / GB · USD 0.015 / 10K requests

Private by default

Objects are reachable only with signed credentials until you explicitly make a bucket public. Everything is encrypted at rest.

publicAccess: false

Warned before you are cut off

At 80% of any allowance you get an in-app notification and an email. Suspension only happens past 110%, and nothing is ever deleted.

80% warn · 110% suspend

CORS you control

Set the origins, methods, and headers a browser may use against the bucket, so a web app can upload directly without a proxy in between.

Per-bucket rules

Instant, prorated upgrades

Move a bucket to a larger tier the moment traffic demands it. Upgrades apply immediately and are prorated against the billing cycle.

Reactivates a suspended bucket

Public access and delivery

Two URLs, and you decide which ones exist

A private bucket has no public surface at all. Making it public gives it a plain HTTPS URL; adding the CDN gives it a second, cached one.

  • Both URLs are shown on the bucket overview page as soon as they exist.
  • The CDN cannot be enabled on a private bucket — public access comes first.
  • Disabling the CDN removes its cost and leaves the regular public URL working.
  • CORS rules are set per bucket, so browser uploads never need a proxy of your own.
PATCH /v1/projects/:projectId/storage/object-storage/:bucketId/cdn200
{  "cdnEnabled": true}
# public URL, always availablehttps://acme-assets.s3.eu-north-1.amazonaws.com/…# CDN URL, once provisionedhttps://d3k1v9m2q0abcd.cloudfront.net/…

Prepaid tiers

Pick the allowance, not the invoice

Every tier includes storage, egress, and requests together. Upgrades are instant and prorated, and the CDN is the only add-on that meters.

Starter
USD 5 / month
25 GB storage · 10 GB egress · 500K requests. Development, prototypes, and low-traffic assets.
Growth
USD 20 / month
100 GB storage · 50 GB egress · 2M requests. Production workloads with moderate traffic.
Scale
USD 75 / month
500 GB storage · 250 GB egress · 5M requests. Media-heavy apps and CDN origins.
Enterprise
USD 300 / month
2 TB storage · 1 TB egress · 50M requests. Data lakes and high-throughput APIs.

All tiers run on the same AWS S3 infrastructure — only the included allowances differ. CDN delivery is metered separately at USD 0.12 / GB and USD 0.015 / 10K requests.

One project

What it plugs into

Buckets sit in the same project as the apps reading from them, on the same invoice and behind the same access controls.

Questions worth answering up front

Tier limits, regions, CORS, and the full API are covered in the Object Storage guide.

Which tier should I start on?
Weigh all three allowances, not just storage — a small dataset with heavy read traffic can need a larger tier than a big archive nobody touches. Starter or Growth is the right guess when you are unsure, because upgrading is instant.
What happens if I go over?
At 80% of any dimension you are warned in-app and by email. Past 110% the bucket is suspended: reads and writes are blocked, but the data is preserved and the bucket stays visible. Upgrading reactivates it immediately.
Do I need the CDN?
Only if you serve public assets to end users. It requires public access, and delivery is metered on top of the tier. Turning it off removes the added cost and the bucket stays reachable on its regular public URL.
Can I upload straight from the browser?
Yes. Set the bucket's CORS rules to allow your origin and the methods you need, and a web app can upload without routing files through your own server.
Which region should I pick?
One close to the servers doing the reading and writing — nine are available across the US, Europe, and Asia Pacific. Proximity cuts both latency and egress cost.
What happens when I delete a bucket?
The bucket and its objects are removed and the tier's subscription stops. Metered CDN usage already recorded in the period is still invoiced.

Growing into it

Upgrade before the buffer runs out

Usage is tracked per bucket across all three dimensions and checked continuously, so the warning arrives well before anything stops working.

80%

Early warning

An in-app notification and an email. Nothing changes on the bucket — it is a prompt to consider the next tier.

110%

Suspension, not deletion

Reads and writes are blocked while every object is preserved and the bucket stays visible in the dashboard.

Instant

Upgrade to resume

A larger tier reactivates the bucket immediately and is prorated against the current billing cycle.

Ready to get started?

Create your free account and deploy your first project in minutes.