S3-compatible storage compared: true cost at 1 TB + 5 TB egress Pricing Compared

- Four line items reliably cost more than the storage rate you were quoted - Egress is the obvious one: AWS charges USD 0.09/GB up to 10 TB, only the first 100 GB free - That AWS egress is 441 dollars of our 472.60 total - DigitalOcean charges 0.01/GB, Scaleway EUR 0.01 (about 0.0116), Storj 0.007/GB: better than AWS, not zero - On a 50 TB month that gap is real money - Only R2 and Tigris charge nothing with no ceiling attached - Wasabi and iDrive e2 also print a zero, but bound it with a fair-use multiple of what you store - The "egress cap" column is there so you can tell the two kinds of zero apart - Class A operations are the second: R2's 4.50 per million stings on list-loops or high write volume - AWS is 5.00 per million for the same class - Backblaze, DigitalOcean, Scaleway, Hetzner, Storj, Bunny and iDrive charge nothing per request at all - Backblaze went furthest, making Class A, B and C calls free, metering only outbound event callbacks - Minimum retention is the third, a storage price multiplier in disguise - Wasabi's 90 days means a seven-day object lifetime pays roughly thirteen times the headline rate - Minimum billable object size is the fourth: Wasabi bills every object at at least 4 KB - AWS applies a 128 KB floor on its infrequent-access classes, so the cheap tier costs more for thumbnails - Store ten million 1.5 KB objects behind a 4 KB floor and you pay for 40 GB where you stored 15

Providers
12
Fields compared
10
Source confidence
35%
Last verified
2026-07-23 (2mo ago)
Re-verified
every 30 days
12 tools · verified 2mo ago
Hetzner Object Storage logoHetzner Object StorageThe cheapest credible S3 endpoint in Europe, with a deliberately thin feature set.89.1

Pricing

True cost /mo (USD) (/mo)
$12.47/mo
True cost /mo (AUD) (/mo)
A$18.95/mo
True cost from Sydney (AUD) (/mo)
Storage $/TB/mo (/TB/mo)
$6.95/TB/mo
Egress $/TB (/TB)
$1.38/TB
Egress cap (x stored) (x stored)
Class A $/M ops (/M ops)
$0/M ops
Class B $/M ops (/M ops)
$0/M ops
Min retention
0ms
Min billed object
0B
Storj logoStorjDecentralised erasure-coded storage: USD 4/TB stored, USD 7/TB egress, no regions.87.9

Pricing

True cost /mo (USD) (/mo)
$39/mo
True cost /mo (AUD) (/mo)
A$59.28/mo
True cost from Sydney (AUD) (/mo)
A$59.28/mo
Storage $/TB/mo (/TB/mo)
$4/TB/mo
Egress $/TB (/TB)
$7/TB
Egress cap (x stored) (x stored)
Class A $/M ops (/M ops)
$0/M ops
Class B $/M ops (/M ops)
$0/M ops
Min retention
0ms
Min billed object
0B
Backblaze B2 logoBackblaze B2Cheap US and EU object storage with free egress up to three times stored volume.87.1

Pricing

True cost /mo (USD) (/mo)
$26.95/mo
True cost /mo (AUD) (/mo)
A$40.96/mo
True cost from Sydney (AUD) (/mo)
Storage $/TB/mo (/TB/mo)
$6.95/TB/mo
Egress $/TB (/TB)
$10/TB
Egress cap (x stored) (x stored)
3x stored
Class A $/M ops (/M ops)
$0/M ops
Class B $/M ops (/M ops)
$0/M ops
Min retention
0ms
Min billed object
0B
iDrive e2 logoiDrive e2USD 4/TB S3-compatible storage with zero-egress marketing and a fair-use cap.86.2

Pricing

True cost /mo (USD) (/mo)
True cost /mo (AUD) (/mo)
True cost from Sydney (AUD) (/mo)
Storage $/TB/mo (/TB/mo)
$4/TB/mo
Egress $/TB (/TB)
$0/TB
Egress cap (x stored) (x stored)
Class A $/M ops (/M ops)
$0/M ops
Class B $/M ops (/M ops)
$0/M ops
Min retention
0ms
Min billed object
0B
Bunny Storage logoBunny StorageEdge storage built as a CDN origin, with its own API rather than a faithful S3 one.82.4

Pricing

True cost /mo (USD) (/mo)
$60/mo
True cost /mo (AUD) (/mo)
A$91.2/mo
True cost from Sydney (AUD) (/mo)
A$243.2/mo
Storage $/TB/mo (/TB/mo)
$10/TB/mo
Egress $/TB (/TB)
$10/TB
Egress cap (x stored) (x stored)
Class A $/M ops (/M ops)
$0/M ops
Class B $/M ops (/M ops)
$0/M ops
Min retention
0ms
Min billed object
0B
MinIO logoMinIOThe self-hosted S3 reference implementation, your hardware, your bandwidth, your SLA.78.8

Pricing

True cost /mo (USD) (/mo)
True cost /mo (AUD) (/mo)
True cost from Sydney (AUD) (/mo)
Storage $/TB/mo (/TB/mo)
Egress $/TB (/TB)
Egress cap (x stored) (x stored)
Class A $/M ops (/M ops)
$0/M ops
Class B $/M ops (/M ops)
$0/M ops
Min retention
0ms
Min billed object
0B
Scaleway Object Storage logoScaleway Object StorageEuropean-sovereign S3 storage with multi-AZ classes and a real IAM system.77.3

Pricing

True cost /mo (USD) (/mo)
$72.8/mo
True cost /mo (AUD) (/mo)
A$110.66/mo
True cost from Sydney (AUD) (/mo)
Storage $/TB/mo (/TB/mo)
$16.94/TB/mo
Egress $/TB (/TB)
$11.6/TB
Egress cap (x stored) (x stored)
Class A $/M ops (/M ops)
$0/M ops
Class B $/M ops (/M ops)
$0/M ops
Min retention
0ms
Min billed object
0B
DigitalOcean Spaces logoDigitalOcean SpacesBundled object storage plus free CDN, priced as a flat base fee with overages.76.8

Pricing

True cost /mo (USD) (/mo)
$60/mo
True cost /mo (AUD) (/mo)
A$91.2/mo
True cost from Sydney (AUD) (/mo)
A$91.2/mo
Storage $/TB/mo (/TB/mo)
$20/TB/mo
Egress $/TB (/TB)
$10/TB
Egress cap (x stored) (x stored)
Class A $/M ops (/M ops)
$0/M ops
Class B $/M ops (/M ops)
$0/M ops
Min retention
0ms
Min billed object
0B
Cloudflare R2 logoCloudflare R2S3-compatible object storage with zero egress fees, on Cloudflare's network.73.6

Pricing

True cost /mo (USD) (/mo)
$22.74/mo
True cost /mo (AUD) (/mo)
A$34.56/mo
True cost from Sydney (AUD) (/mo)
A$34.56/mo
Storage $/TB/mo (/TB/mo)
$15/TB/mo
Egress $/TB (/TB)
$0/TB
Egress cap (x stored) (x stored)
Class A $/M ops (/M ops)
$4.5/M ops
Class B $/M ops (/M ops)
$0.36/M ops
Min retention
0ms
Min billed object
0B
Wasabi logoWasabiFlat-rate hot storage with no egress or API fees, bounded by a fair-use cap.68.5

Pricing

True cost /mo (USD) (/mo)
True cost /mo (AUD) (/mo)
True cost from Sydney (AUD) (/mo)
Storage $/TB/mo (/TB/mo)
$6.99/TB/mo
Egress $/TB (/TB)
$0/TB
Egress cap (x stored) (x stored)
1x stored
Class A $/M ops (/M ops)
$0/M ops
Class B $/M ops (/M ops)
$0/M ops
Min retention
129600min
Min billed object
4KB
Tigris logoTigrisGlobally distributed S3-compatible storage that caches objects near readers.67.9

Pricing

True cost /mo (USD) (/mo)
$29.5/mo
True cost /mo (AUD) (/mo)
A$44.84/mo
True cost from Sydney (AUD) (/mo)
A$44.84/mo
Storage $/TB/mo (/TB/mo)
$20/TB/mo
Egress $/TB (/TB)
$0/TB
Egress cap (x stored) (x stored)
Class A $/M ops (/M ops)
$5/M ops
Class B $/M ops (/M ops)
$0.5/M ops
Min retention
0ms
Min billed object
0B
AWS S3 logoAWS S3The API everything else copies, and by far the most expensive egress in this roster.19.0

Pricing

True cost /mo (USD) (/mo)
$472.6/mo
True cost /mo (AUD) (/mo)
A$718.35/mo
True cost from Sydney (AUD) (/mo)
A$900.14/mo
Storage $/TB/mo (/TB/mo)
$23/TB/mo
Egress $/TB (/TB)
$90/TB
Egress cap (x stored) (x stored)
Class A $/M ops (/M ops)
$5/M ops
Class B $/M ops (/M ops)
$0.4/M ops
Min retention
0ms
Min billed object
0B
yespartialnounknown
Sources shown beside each value · Learn how sourcing works
measured vendor-claimed community inferredExpand any row for the source, verification date, and caveat behind every cell.

Is the cheapest option the right one?

Price is one group of 10 fields out of 28. Everything else, features, limits, portability, how well any of it works for agents, is on the full s3-compatible storage compared: true cost at 1 tb + 5 tb egress comparison.

Where the bodies are buried in object storage pricing

  • Four line items reliably cost more than the storage rate you were quoted
  • Egress is the obvious one: AWS charges USD 0.09/GB up to 10 TB, only the first 100 GB free
  • That AWS egress is 441 dollars of our 472.60 total
  • DigitalOcean charges 0.01/GB, Scaleway EUR 0.01 (about 0.0116), StorjStorj logo 0.007/GB: better than AWS, not zero
  • On a 50 TB month that gap is real money
  • Only R2Cloudflare R2 logo and TigrisTigris logo charge nothing with no ceiling attached
  • WasabiWasabi logo and iDrive e2iDrive e2 logo also print a zero, but bound it with a fair-use multiple of what you store
  • The "egress cap" column is there so you can tell the two kinds of zero apart
  • Class A operations are the second: R2Cloudflare R2 logo's 4.50 per million stings on list-loops or high write volume
  • AWS is 5.00 per million for the same class
  • Backblaze, DigitalOcean, Scaleway, Hetzner, StorjStorj logo, Bunny and iDrive charge nothing per request at all
  • Backblaze went furthest, making Class A, B and C calls free, metering only outbound event callbacks
  • Minimum retention is the third, a storage price multiplier in disguise
  • WasabiWasabi logo's 90 days means a seven-day object lifetime pays roughly thirteen times the headline rate
  • Minimum billable object size is the fourth: WasabiWasabi logo bills every object at at least 4 KB
  • AWS applies a 128 KB floor on its infrequent-access classes, so the cheap tier costs more for thumbnails
  • Store ten million 1.5 KB objects behind a 4 KB floor and you pay for 40 GB where you stored 15

Migrating off AWS S3 without a rewrite

  • The application change is usually one line: a custom endpoint URL
  • Some providers also need path-style addressing forced on the S3 client
  • That part is genuinely easy, and it is what every provider's landing page shows you
  • The hard part is everything around the bucket
  • Bucket policies do not port: R2Cloudflare R2 logo, Hetzner and Bunny have no IAM policy language
  • Any authorisation expressed as a condition on a principal must move into your application
  • Versioning does not port to R2Cloudflare R2 logo at all; GetBucketVersioning and PutBucketVersioning are unimplemented
  • If S3 versioning is how you recover from bad writes, budget for replacing it
  • Lifecycle transitions between storage classes mostly do not port, because most providers have one class
  • S3 event notifications become provider-specific: R2Cloudflare R2 logo fires into Cloudflare Queues, Backblaze uses its own payload
  • Anything wired to Lambda needs rebuilding rather than repointing
  • Object Lock compliance mode exists on Backblaze, WasabiWasabi logo, Scaleway, iDrive, StorjStorj logo, MinIOMinIO logo and AWS
  • It does not exist on Hetzner, DigitalOcean or Bunny at all
  • For the copy itself, do not pull data through your own machines
  • Cloudflare's Super Slurper, and rclone with server-side copy, will move a terabyte far faster
  • On AWS the one-time egress to leave is often the largest line on the migration budget
  • Getting 50 TB out of S3 costs roughly USD 4,300 in bandwidth before you store a byte elsewhere
  • Price that exit charge first, and consider draining gradually behind a read-through cache

How to actually decide

  • Work out your egress-to-storage ratio first; it selects the shortlist before any feature comparison
  • Below about 1:1 (backups, archives, data lakes) storage price dominates
  • There the field is StorjStorj logo (USD 4/TB), iDrive e2iDrive e2 logo (4), and Backblaze and Hetzner (6.95 each)
  • Check minimum retention and minimum billable object, and confirm object lock for a ransomware-resistant target
  • Above about 3:1 (public assets, media, model weights, package registries) egress dominates absolutely
  • The shortlist collapses to R2Cloudflare R2 logo and TigrisTigris logo, the only two charging nothing per gigabyte with no ceiling
  • Hetzner is the value option if a European origin is acceptable
  • Bunny does not belong on this axis: its egress is 0.01/GB in Europe and North America, 0.03 into Oceania
  • Shortlist Bunny for its edge, not its bandwidth rate
  • At 10:1 nothing else is worth evaluating; the R2Cloudflare R2 logo-to-AWS gap will not be closed by any feature
  • Then apply two filters
  • For Sydney, drop Backblaze, Hetzner and Scaleway, which have no Australian or Oceania location
  • For object lock, versioning and event notifications all with AWS semantics, only AWS, Backblaze and MinIOMinIO logo survive
  • TigrisTigris logo has versioning and notifications but we could not confirm object lock
  • R2Cloudflare R2 logo has notifications but no versioning and only a bucket-level retention lock
  • Scaleway has the lock and versioning but we could not confirm notifications
  • Hetzner, DigitalOcean and Bunny fail on two of the three
  • What survives both filters is usually a two-horse race
  • At that point pick on the API surface you will touch, not a dollar figure under one engineer-hour a month

How is this pricing data collected?

  • Every price is the published pay-as-you-go rate, no committed-use discounts or enterprise agreements
  • The killer field, "true cost /mo", is computed by us against one fixed scenario
  • Scenario: 1 TB (1,000 GB) stored for a month, 5 TB (5,000 GB) egressed, 10 M requests
  • Requests split 1 M Class A (PUT, POST, COPY, LIST) and 9 M Class B (GET, HEAD)
  • Each provider's arithmetic is written in its own cell note so you can check us
  • A figure that cannot be reconstructed from its own row is null, not estimated
  • The same request split applies to everyone, so no-request-metering is a real advantage, not an artefact
  • One netting rule: an allowance that is part of the rate card is deducted before overage applies
  • That covers Hetzner's and DigitalOcean's bundled volumes, Backblaze's free egress up to 3x stored data
  • It also covers AWS's first 100 GB of egress and Scaleway's first 75 GB of storage and 75 GB of egress
  • A separately branded free plan is not deducted, because it is a different product tier
  • That affects only Cloudflare R2Cloudflare R2 logo: its free tier would take the total from 22.74 to 14.85, noted in the cell
  • Non-USD prices convert at 1 EUR = 1.16 USD; the AUD column at 1 USD = 1.52 AUD, both struck 2026-07-23
  • Refresh the rates if the spread moves; for Scaleway and Hetzner FX moves the answer more than pricing
  • This page previously carried the euro at 1.08, understating both providers by about seven per cent
  • Three rows are null: WasabiWasabi logo's no-egress model is bounded by a ~1x fair-use cap, outside this scenario
  • iDrive e2iDrive e2 logo publishes neither its multiple nor its overage rate, so there is nothing to compute against
  • The earlier iDrive figure of 24.00 rested on assumed 3x and 0.01/GB terms and has been withdrawn
  • MinIOMinIO logo has no price because you buy servers and transit, not storage
  • Latency figures are inferred from network topology and community reports, not measured by toolweight

Pricing questions

Is Cloudflare R2 egress really free, with no catch?

  • Yes for standard object reads over the public internet, with no published fair-use bandwidth cap
  • R2Cloudflare R2 logo bills storage and operations only
  • Class A operations cost USD 4.50 per million, which stings on write- or list-heavy workloads
  • The free bandwidth is Cloudflare's network, and there is no contractual Sydney region, only an Oceania hint

Why can't you price Wasabi on this page?

  • WasabiWasabi logo charges no egress fee, but its AUP limits monthly downloads to roughly the volume you store
  • Our scenario egresses five times the stored volume, which is outside those terms
  • WasabiWasabi logo reviews or restricts the account rather than sending a larger bill, so there is no list price
  • Storage alone would be USD 6.99 for the terabyte; the computed cell is left null

What does a minimum retention period actually cost me?

  • An object deleted before the window is still billed for the full window
  • WasabiWasabi logo's is 90 days, so a file written and deleted on day two costs 90 days of storage
  • On churny workloads (CI caches, temporary uploads, transcode intermediates) this multiplies the effective price
  • Check it before you compare per-terabyte numbers

Should I self-host MinIO to save money?

  • Only if you already operate storage hardware
  • Cheap managed providers land at USD 12-30 on our scenario
  • A dedicated box with erasure-coded terabyte capacity and traffic is more like USD 50-70, before your own time
  • You also take on erasure-coding config, upgrades and on-call, so it is a control decision, not a cost saving
  • MinIOMinIO logo's community build lost its admin console in 2025, so the free tier is less complete than it was