Skip to content
c17 .ioJoin list

Compare / Object storage

Object storage pricing, normalized

For a small always-hot bucket, Backblaze B2 is the cheapest published cloud rate ($0.00695/GB-month, first 10 GB free, egress free up to 3× storage). Cloudflare R2 and Railway Buckets both store at $0.015/GB-month with free egress; Railway also makes API calls free. Wasabi is $7.99/TB-month with free egress inside its policy, but it bills a 1 TB minimum. Hetzner Object Storage is $5.99/month for 1 TB stored and 1 TB egress — cheap once you actually use that quota. AWS S3 Standard is $0.023/GB-month in us-east-1 plus $0.09/GB egress after 100 GB free.

Prices from each provider's official pricing page, checked 17 Oct 2026. USD, excluding tax. Storage examples use decimal GB unless a vendor publishes GiB or 1024 GB/TB. 24/7 extra-storage hours use 730 h. "Not published" or "unverified" means the page did not list that number. Estimates, not guarantees.

Start on Railway

Price for the same stored gigabyte

ProviderStorage per GB-monthEgress per GBRequest costsFree tier / minimum
Amazon S3$0.023/GB-month (Standard, first 50 TB, us-east-1)$0.09/GB after 100 GB free (first 10 TB DTO, us-east-1)PUT $0.005 per 1,000; GET $0.0004 per 1,000; DELETE freeNew-account 12-month free tier: 5 GB Standard + 20,000 GET + 2,000 PUT + 100 GB DTO/month
Cloudflare R2$0.015/GB-month (Standard)FreeClass A $4.50/million; Class B $0.36/million; DELETE free10 GB-month + 1 million Class A + 10 million Class B/month (Standard only)
Backblaze B2$0.00695/GB-month ($6.95/TB-month)Free up to 3× average monthly storage, then $0.01/GB. Unlimited free via listed CDN/compute partners.Class A/B/C free on pay-as-you-go. Class D $0.004 per 10,000 after 2,500/day free.First 10 GB storage always free
Wasabi$0.0078/GB-month ($7.99/TB-month, 1024 GB/TB)Free if monthly egress ≤ stored volume (policy). Overage $ not published — they may limit or suspend instead.Free (policy: no unreasonable API load)1 TB/month minimum ($7.99). Pay-as-you-go 90-day minimum storage duration.
DigitalOcean Spaces$5.00 includes 250 GiB; extra $0.02/GiB-month$0.01/GiB after 1,024 GiB includedNot published$5.00/month once any bucket exists (prorated hourly if you delete them all)
Hetzner Object Storage$5.99/month includes 1 TB (effective $0.00599/GB at that quota)$1.20/TB extra after 1 TB included ($0.0012/GB)Free (PUT, GET, DELETE)$5.99/month base (hourly $0.0096, capped) while any bucket exists, even empty
Railway Buckets$0.015/GB-monthFree (bucket egress)Free (unlimited S3 API operations)Free plan: 10 GB-month against the $1 credit. Hobby $5 includes $5 usage (1 TB cap). Pro unlimited capacity.
Tigris$0.02/GB-month (Standard)FreeClass A $0.005 per 1,000; Class B $0.0005 per 1,000; DELETE freeFirst 5 GB Standard + 10,000 Class A + 100,000 Class B/month
MinIO (self-hosted)$0 software (AIStor Free, single-node) + the disk you run it onWhatever the host charges for egressNone from MinIO on AIStor FreeAIStor Free $0. Enterprise Lite/Enterprise prices are quote-only — omitted.
Garage (self-hosted)$0 software + the disk you run it onWhatever the host charges for egressNone (you run the binary)Free open-source software

What you actually get

ProviderS3 APIIncluded transfer / quotaMin duration / object sizePlan notesRegions
Amazon S3Native S3First 100 GB DTO/month free across AWS (except China and GovCloud)None on Standard12-month new-account free tier; 100 GB DTO every month after thatAll AWS regions; us-east-1 used here
Cloudflare R2S3-compatibleUnlimited free egress (all storage classes)None on Standard; Infrequent Access 30 daysStandard free tier above; Infrequent Access has no free tierCloudflare's network (see R2 docs)
Backblaze B2S3-compatible3× stored data free; partner egress unlimited (Fastly, Cloudflare, bunny.net, and others listed)No minimum file size or storage duration fees10 GB storage; Class A/B/C API calls free on pay-as-you-goU.S. West rates are the published comparison row
WasabiS3-compatibleFree egress inside the "egress ≤ storage" guideline90 days on pay-as-you-go; 4 KB minimum billable objectNo free tier; 1 TB minimumNorth America, EMEA, APAC at the same $7.99/TB
DigitalOcean SpacesS3-compatible; Spaces CDN included at no extra fee1,024 GiB outbound included across all bucketsNone on Standard; Cold Storage 30-day min ($0.007/GiB-month, not used here)No free Spaces subscriptionNYC, SFO, AMS, SGP, FRA, SYD, BLR, ATL, LON, TOR
Hetzner Object StorageS3-compatible1 TB egress included (up to 1.1160 TB in a 31-day month)64 KB minimum billable objectNo free tier; empty buckets still bill the baseFalkenstein (FSN1), Nuremberg (NBG1), Helsinki (HEL1)
Railway BucketsS3-compatible (runs on Tigris metal). Private buckets; public buckets not yet supported.Unlimited free bucket egress (presigned URL or S3 API). Uploads from a Railway service still count as service egress.None. 52-hour restore window after delete.10 GB-month on Free; Hobby included usage equals the $5 plan feePicked at create time; cannot change
TigrisS3-compatibleFree egressNone on Standard; Infrequent Access 30 days; Archive 90 days5 GB + 10,000 Class A + 100,000 Class BGlobal (see tigrisdata.com/pricing). Multi-region copies add the per-region rate.
MinIO (self-hosted)S3-compatible. AIStor Free is single-node; multi-node is Lite/Enterprise.Host transfer (Hetzner CX23 includes 20 TB)Not published as a cloud min-duration (you own the disk)AIStor Free single-node commercial download. The AGPL community edition is frozen (no patches).You pick the host
Garage (self-hosted)S3-compatibleHost transfer (Hetzner CX23 includes 20 TB)None publishedSoftware is freeYou pick the host; designed for geo-distributed nodes

Best for

  1. Amazon S3

    Data that already lives next to AWS compute, or the 12-month free tier.

  2. Cloudflare R2

    Public assets and downloads where egress would have been the S3 bill.

  3. Backblaze B2

    The cheapest published always-hot cloud bucket when egress stays under 3× storage.

  4. Wasabi

    A TB-scale always-hot archive that is not downloaded faster than it is stored.

  5. DigitalOcean Spaces

    A small public bucket with a fat included transfer allowance at $5.

  6. Hetzner Object Storage

    A TB-scale EU bucket with free API calls once you will actually use the included 1 TB.

  7. Railway Buckets

    Object storage on the same Railway bill as the app, with free egress and free API calls.

  8. Tigris

    A globally replicated S3 bucket with free egress when 5 GB free is not enough and Railway's 1 TB Hobby cap would bite.

  9. MinIO (self-hosted)

    An S3 API on a disk you already operate, if a single node is enough.

  10. Garage (self-hosted)

    A small multi-node S3 store you operate, without a vendor storage bill.

Zero-egress clouds vs a TB-minimum vs a bucket you run yourself

Zero-egress object stores (Cloudflare R2, Railway Buckets, Tigris Standard, and Backblaze B2 up to 3× stored data or via listed CDN/compute partners) shift the bill onto storage and sometimes requests. That is the right shape for a public asset bucket. AWS S3 Standard still charges $0.09/GB after the first 100 GB of data transfer out per month.

Wasabi and Hetzner sell a fat included quota. Wasabi pay-as-you-go is $7.99/TB-month with a 1 TB monthly minimum and a 90-day minimum storage duration — a 20 GB side project still pays $7.99. Hetzner Object Storage bills $5.99/month whenever any bucket exists and includes 1 TB stored plus 1 TB egress; below that quota you are paying for capacity you do not use.

Self-hosting MinIO or Garage is $0 for the software on a VPS you already run. MinIO's pricing page (checked 17 Oct 2026) says the AGPL community edition is frozen; AIStor Free is a $0 single-node commercial download, and Lite/Enterprise prices are quote-only. Garage remains free open-source software. A Hetzner CX23 is $6.49/month for 40 GB NVMe — enough for the Small example, not for 500 GB or 5 TB. Extra cloud-volume SKUs were not verified here, so those sizes are omitted for self-host rather than guessed.

What would a real project cost?

Estimates, not guarantees. Built from the published rates above (checked 17 Oct 2026); check each provider's current pricing before you commit. Tax is not included. Numbers marked unverified or not published were left out rather than guessed.

ProviderSmall: hobby / side projectMedium: production app uploadsLarge: media / backups
Amazon S3$0.55 (us-east-1; 50 GB inside 100 GB DTO)$48.80$292.50
Cloudflare R2$0.15$7.35$74.85
Backblaze B2$0.07$3.41$34.68
Wasabi$7.99 (1 TB minimum; 50 GB egress outside free-egress guideline)$7.99 (1 TB minimum)$39.95 (5 × $7.99)
DigitalOcean Spaces$5.00$10.00$109.76
Hetzner Object Storage$5.99$5.99$30.55
Railway Buckets$0.30$7.50$75.00 (Pro; Hobby max 1 TB)
Tigris$0.30$11.30$107.30
MinIO (self-hosted)$6.49 (CX23 + AIStor Free)Not priced here (disk larger than verified CX SKUs)Not priced here (disk larger than verified CX SKUs)
Garage (self-hosted)$6.49 (CX23 + free software)Not priced here (disk larger than verified CX SKUs)Not priced here (disk larger than verified CX SKUs)
  1. Small: hobby / side project

    Try first: Backblaze B2 at about $0.07 — first 10 GB free, 50 GB egress is inside 3× storage (60 GB), Class A/B/C free.

    Runner-up: Cloudflare R2 at $0.15 (zero egress, always) or Railway Buckets at $0.30 if the app is already on Railway.

    Avoid: Wasabi's $7.99 1 TB minimum for 20 GB, and a 50 GB download that exceeds stored volume (outside their free-egress guideline). AWS S3 is only ~$0.55 here because 50 GB sits inside the 100 GB DTO allowance — it stops being cheap the moment egress grows.

  2. Medium: production app uploads

    Try first: Backblaze B2 at about $3.41 — 500 GB egress is well under 3× storage, API calls free.

    Runner-up: Hetzner Object Storage at $5.99 if you want EU/GDPR and the included 1 TB, or R2 at $7.35 / Railway at $7.50 for zero egress.

    Avoid: AWS S3 at about $48.80, where $36 of that is egress. Wasabi is fine at $7.99 if you accept the 90-day minimum duration.

  3. Large: media / backups

    Try first: Hetzner Object Storage at about $30.55 — $5.99 base, 4 TB extra storage at $0.0080/TB-hour × 730 h, 1 TB extra egress at $1.20, API calls free.

    Runner-up: Backblaze B2 at $34.68, or Wasabi at $39.95 (5 × $7.99) if 2 TB egress stays ≤ 5 TB stored. R2 at $74.85 and Railway at $75.00 if you want zero egress without a 1 TB Hetzner-shaped quota.

    Avoid: AWS S3 at about $292.50 ($171 of that is egress) and Tigris at $107.30 unless you need its global copies. Railway Hobby's 1 TB cap cannot hold 5 TB — Pro is required.

Show the math

Project — Small: hobby / side project
20 GB stored all month, 50 GB egress, 10,000 writes (Class A / PUT), 100,000 reads (Class B / GET). No extra CDN beyond what the vendor includes. AWS: 20×$0.023 = $0.46 + DTO $0 (50 GB < 100 GB) + PUT 10×$0.005 = $0.05 + GET 100×$0.0004 = $0.04 → $0.55 (new-account free tier would cover 5 GB / 2,000 PUT / 20,000 GET). R2: (20−10)×$0.015 = $0.15; requests inside free. B2: (20−10)×$0.00695 = $0.07; egress inside 3×. Wasabi: $7.99 minimum; 50 GB egress > 20 GB stored, overage $ not published. Spaces: $5.00 (inside 250 GiB / 1,024 GiB). Hetzner: $5.99. Railway: 20×$0.015 = $0.30. Tigris: (20−5)×$0.02 = $0.30; 10,000 Class A and 100,000 Class B are exactly the free tier → $0.30. MinIO/Garage: CX23 $6.49.
Project — Medium: production app uploads
500 GB stored, 500 GB egress, 100,000 writes, 2,000,000 reads. AWS: 500×$0.023 = $11.50 + (500−100)×$0.09 = $36.00 + PUT $0.50 + GET 2,000×$0.0004 = $0.80 → $48.80. R2: (500−10)×$0.015 = $7.35; 100,000 Class A and 2,000,000 Class B inside free. B2: (500−10)×$0.00695 = $3.41. Wasabi: still the $7.99 1 TB minimum; 500 GB egress = 500 GB stored, inside policy. Spaces: $5 + (500−250)×$0.02 = $10.00; 500 GiB egress inside 1,024 GiB. Hetzner: $5.99. Railway: 500×$0.015 = $7.50. Tigris: (500−5)×$0.02 = $9.90 + 90,000×$0.005/1,000 = $0.45 + 1,900,000×$0.0005/1,000 = $0.95 → $11.30. MinIO/Garage: not priced (500 GB > verified CX disks).
Project — Large: media / backups
5,000 GB stored, 2,000 GB egress, 500,000 writes, 10,000,000 reads. AWS: 5,000×$0.023 = $115.00 + (2,000−100)×$0.09 = $171.00 + PUT 500×$0.005 = $2.50 + GET 10,000×$0.0004 = $4.00 → $292.50. R2: (5,000−10)×$0.015 = $74.85; 500,000 Class A inside 1 million free; 10,000,000 Class B is exactly the free 10 million. B2: (5,000−10)×$0.00695 = $34.68; 2,000 GB egress < 15,000 GB 3× cap. Wasabi: 5 × $7.99 = $39.95; 2 TB egress < 5 TB stored. Spaces: $5 + 4,750×$0.02 = $100.00 + (2,000−1,024)×$0.01 = $9.76 → $109.76. Hetzner: $5.99 + 4 TB × $0.0080 × 730 h = $23.36 + 1 TB × $1.20 = $1.20 → $30.55. Railway: 5,000×$0.015 = $75.00 (Pro; Hobby max 1 TB). Tigris: (5,000−5)×$0.02 = $99.90 + 490,000×$0.005/1,000 = $2.45 + 9,900,000×$0.0005/1,000 = $4.95 → $107.30. MinIO/Garage: not priced (5 TB disk unverified).
Amazon S3
Official S3 FAQs, US East (N. Virginia): Standard first 50 TB = 51,200 GB × $0.023. PUT $0.005/1,000, GET $0.004/10,000 (= $0.0004/1,000), DELETE free. DTO first 10 TB after the 100 GB free allowance is $0.09/GB. Always-on 100 GB DTO free is on the S3 pricing page. Request rates for S3 Standard came from the FAQs (the HTML price table did not render). Source: https://aws.amazon.com/s3/pricing/ (checked 17 Oct 2026)
Cloudflare R2
Standard $0.015/GB-month, Class A $4.50/million, Class B $0.36/million, egress $0. Infrequent Access is $0.01/GB-month plus retrieval $0.01/GB — not used in the examples. Usage rounds up to the next billing unit. Source: https://developers.cloudflare.com/r2/pricing/ (checked 17 Oct 2026)
Backblaze B2
$6.95/TB-month → $0.00695/GB-month using 1 TB = 1,000 GB. First 10 GB free. Examples stay inside 3× egress. Class D is omitted from the worked examples (the pages do not say a typical app hits Class D). Source: https://www.backblaze.com/cloud-storage/pricing (checked 17 Oct 2026)
Wasabi
Official FAQ: $7.99/TB-month ÷ 1024 GB = $0.0078/GB-month. 1 TB monthly minimum. Free egress if monthly download ≤ active storage; above that they reserve the right to limit or suspend — no $/GB overage is listed, so examples that break the guideline omit an egress dollar amount. Source: https://wasabi.com/pricing/faq (checked 17 Oct 2026)
DigitalOcean Spaces
Docs last verified 13 Jul 2026: $5.00 includes 250 GiB storage and 1,024 GiB outbound. Extra storage $0.02/GiB-month. Extra outbound $0.01/GiB. Request fees are not on the pricing page — omitted. Source: https://docs.digitalocean.com/products/spaces/details/pricing/ (checked 17 Oct 2026)
Hetzner Object Storage
Official USD (excl. VAT): base $5.99/month includes 1 TB storage and 1 TB egress. Extra storage $0.0080/TB-hour. Extra egress $1.20/TB. Ingress and eu-central internal traffic are free. Extra-storage examples use 730 h to match the other pages. Source: https://www.hetzner.com/storage/object-storage/ (checked 17 Oct 2026)
Railway Buckets
Official billing docs: $0.015/GB-month (30-day month), fractional GB-month rounds up. API operations and bucket egress are free. Service-to-bucket uploads use the app egress rate ($0.05/GB on Railway pricing) — examples assume presigned URLs so that fee is $0. Source: https://docs.railway.com/storage-buckets/billing?referralCode=4xHDyE (checked 17 Oct 2026)
Tigris
Standard $0.02/GB-month, Class A $0.005/1,000, Class B $0.0005/1,000, egress $0. Free: 5 GB Standard, 10,000 Class A, 100,000 Class B. Storage is binary GB (2^30 bytes). Examples use the Standard tier in one region. Source: https://www.tigrisdata.com/pricing/ (checked 17 Oct 2026)
MinIO (self-hosted)
min.io/pricing: AIStor Free is $0 for a standalone node. Lite/Enterprise are "request pricing" — omitted. A Hetzner CX23 ($6.49/month, 2 vCPU / 4 GB / 40 GB NVMe) holds the 20 GB Small example. 500 GB and 5 TB need more disk than the CX SKUs verified on the 15 Jun 2026 adjustment page, so those sizes are omitted. Source: https://min.io/pricing (checked 17 Oct 2026)
Garage (self-hosted)
Garage is free software (garagehq.deuxfleurs.fr). Same host math as MinIO: CX23 $6.49 covers Small (20 GB). Medium and Large disk SKUs were not verified — omitted. Source: https://garagehq.deuxfleurs.fr/ (checked 17 Oct 2026)

FAQ

What is the cheapest S3-compatible bucket for a small project?
Backblaze B2 at about $0.07 for 20 GB stored and 50 GB egress (first 10 GB free, 3× egress free). Cloudflare R2 is $0.15 with no egress cap. Railway Buckets are $0.30 with free API calls if the app is already on Railway.
When does AWS S3 get expensive?
On egress. At 500 GB stored and 500 GB downloaded, about $36 of the $48.80 estimate is data transfer out at $0.09/GB after the 100 GB free allowance. Storage alone is $11.50.
Is Wasabi really free egress?
Inside their published guideline: monthly download ≤ stored volume. Above that they reserve the right to limit or suspend service. They do not publish a $/GB overage. Pay-as-you-go also has a 1 TB monthly minimum ($7.99) and a 90-day minimum storage duration.
Do Railway Buckets charge Railway's $0.05/GB app egress?
Not for downloads from the bucket. Official docs: bucket egress is free (presigned URLs or the S3 API). Uploads from a Railway service to the bucket still count as that service's public egress. The examples assume presigned uploads from the client.
Is MinIO still open source?
MinIO's pricing page (17 Oct 2026) says the AGPL community edition is frozen — no new features, fixes, or security patches. AIStor Free is a $0 single-node commercial download. Distributed AIStor Lite/Enterprise prices are not published (request a quote), so they are omitted.
What would a real project cost?
Estimates from published rates: 20 GB + 50 GB egress is about $0.07 on B2, $0.15 on R2, $0.30 on Railway or Tigris, $5–$6 on Spaces/Hetzner, $7.99 on Wasabi. 5 TB + 2 TB egress is about $31 on Hetzner, $35 on B2, $40 on Wasabi, $75 on R2 or Railway, $293 on S3.

Related pages

Stack of the Week

Get one stack a week that replaces a SaaS bill.