S3-compatible object storage providers

Hetzner Object Storage is cheapest at USD 12.47/mo, then Cloudflare R2 at 22.74 and Backblaze B2 at 26.95, while AWS S3 costs 472.60.

Providers
12
Fields compared
28
Source confidence
35%
Last verified
2026-07-23 (2mo ago)
Re-verified
every 30 days
Data confidence0% of 297 figures verified in the last 30d
101sourced of 297137stale, oldest 2mo ago
12 tools · verified 2mo ago
MinIO logoMinIOThe self-hosted S3 reference implementation, your hardware, your bandwidth, your SLA.85.6

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

Features & API

S3 API coverage (%)
98%
Presigned URLs
Yes
Multipart upload
Yes
Versioning
Yes
Lifecycle rules
Yes
Event notifications
Yes
CDN integration
diy
Max object size
5TB
IAM granularity
5
Sydney region
Yes
TTFB from Sydney

Durability & Retention

Durability (nines) ( nines)
Uptime SLA (%)
Object lock / WORM
Yes
Replication model
erasure-coded

Agentic

Official MCP server
Yes

Traction

GA year
2,015

Positioning

Positioning
The self-hosted S3 baseline, full API fidelity in exchange for operating it.
Tigris logoTigrisGlobally distributed S3-compatible storage that caches objects near readers.80.2

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

Features & API

S3 API coverage (%)
90%
Presigned URLs
Yes
Multipart upload
Yes
Versioning
Yes
Lifecycle rules
Yes
Event notifications
Yes
CDN integration
free-bundled
Max object size
5TB
IAM granularity
3
Sydney region
Yes
TTFB from Sydney
60ms

Durability & Retention

Durability (nines) ( nines)
11 nines
Uptime SLA (%)
Object lock / WORM
Unknown
Replication model
multi-region

Agentic

Official MCP server
No

Traction

GA year
2,024

Positioning

Positioning
Object storage that behaves like a CDN, for globally distributed apps.
Storj logoStorjDecentralised erasure-coded storage: USD 4/TB stored, USD 7/TB egress, no regions.78.4

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

Features & API

S3 API coverage (%)
80%
Presigned URLs
Yes
Multipart upload
Yes
Versioning
Yes
Lifecycle rules
Unknown
Event notifications
No
CDN integration
partner
Max object size
5TB
IAM granularity
4
Sydney region
Partial
TTFB from Sydney
150ms

Durability & Retention

Durability (nines) ( nines)
11 nines
Uptime SLA (%)
99.95%
Object lock / WORM
Yes
Replication model
erasure-coded

Agentic

Official MCP server
No

Traction

GA year
2,020

Positioning

Positioning
Decentralised storage sold on price and on surviving whole-facility failure.
Backblaze B2 logoBackblaze B2Cheap US and EU object storage with free egress up to three times stored volume.75.9

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

Features & API

S3 API coverage (%)
85%
Presigned URLs
Yes
Multipart upload
Yes
Versioning
Yes
Lifecycle rules
Yes
Event notifications
Yes
CDN integration
partner
Max object size
9.1TB
IAM granularity
3
Sydney region
No
TTFB from Sydney
180ms

Durability & Retention

Durability (nines) ( nines)
11 nines
Uptime SLA (%)
99.9%
Object lock / WORM
Yes
Replication model
single-az

Agentic

Official MCP server
No

Traction

GA year
2,015

Positioning

Positioning
Commodity bulk storage for backup targets and media archives.
Cloudflare R2 logoCloudflare R2S3-compatible object storage with zero egress fees, on Cloudflare's network.75.0

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

Features & API

S3 API coverage (%)
82%
Presigned URLs
Yes
Multipart upload
Yes
Versioning
No
Lifecycle rules
Yes
Event notifications
Yes
CDN integration
free-bundled
Max object size
5TB
IAM granularity
3
Sydney region
Partial
TTFB from Sydney
45ms

Durability & Retention

Durability (nines) ( nines)
11 nines
Uptime SLA (%)
99.9%
Object lock / WORM
Partial
Replication model
multi-az

Agentic

Official MCP server
Yes

Traction

GA year
2,022

Positioning

Positioning
Zero-egress object storage for teams already on Cloudflare's edge.
Wasabi logoWasabiFlat-rate hot storage with no egress or API fees, bounded by a fair-use cap.74.0

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

Features & API

S3 API coverage (%)
90%
Presigned URLs
Yes
Multipart upload
Yes
Versioning
Yes
Lifecycle rules
Partial
Event notifications
No
CDN integration
partner
Max object size
5TB
IAM granularity
4
Sydney region
Yes
TTFB from Sydney
30ms

Durability & Retention

Durability (nines) ( nines)
11 nines
Uptime SLA (%)
99.9%
Object lock / WORM
Yes
Replication model
single-az

Agentic

Official MCP server
No

Traction

GA year
2,017

Positioning

Positioning
Flat-rate hot storage sold against S3's egress bill, for steady archives.
iDrive e2 logoiDrive e2USD 4/TB S3-compatible storage with zero-egress marketing and a fair-use cap.73.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

Features & API

S3 API coverage (%)
80%
Presigned URLs
Yes
Multipart upload
Yes
Versioning
Yes
Lifecycle rules
Partial
Event notifications
No
CDN integration
none
Max object size
5TB
IAM granularity
3
Sydney region
Unknown
TTFB from Sydney

Durability & Retention

Durability (nines) ( nines)
11 nines
Uptime SLA (%)
99.9%
Object lock / WORM
Yes
Replication model
single-az

Agentic

Official MCP server
No

Traction

GA year
2,021

Positioning

Positioning
Lowest headline storage price, sold into the backup and MSP market.
Scaleway Object Storage logoScaleway Object StorageEuropean-sovereign S3 storage with multi-AZ classes and a real IAM system.71.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

Features & API

S3 API coverage (%)
85%
Presigned URLs
Yes
Multipart upload
Yes
Versioning
Yes
Lifecycle rules
Yes
Event notifications
Unknown
CDN integration
first-party-paid
Max object size
5TB
IAM granularity
4
Sydney region
No
TTFB from Sydney
300ms

Durability & Retention

Durability (nines) ( nines)
11 nines
Uptime SLA (%)
99.9%
Object lock / WORM
Yes
Replication model
multi-az

Agentic

Official MCP server
No

Traction

GA year
2,019

Positioning

Positioning
EU-sovereign object storage with AWS-shaped IAM, priced in euros.
DigitalOcean Spaces logoDigitalOcean SpacesBundled object storage plus free CDN, priced as a flat base fee with overages.69.7

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

Features & API

S3 API coverage (%)
78%
Presigned URLs
Yes
Multipart upload
Yes
Versioning
No
Lifecycle rules
Partial
Event notifications
No
CDN integration
free-bundled
Max object size
5TB
IAM granularity
3
Sydney region
Yes
TTFB from Sydney
25ms

Durability & Retention

Durability (nines) ( nines)
Uptime SLA (%)
Object lock / WORM
No
Replication model
single-az

Agentic

Official MCP server
Partial

Traction

GA year
2,017

Positioning

Positioning
Predictable bundled storage plus CDN for teams already on DigitalOcean.
AWS S3 logoAWS S3The API everything else copies, and by far the most expensive egress in this roster.65.3

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

Features & API

S3 API coverage (%)
100%
Presigned URLs
Yes
Multipart upload
Yes
Versioning
Yes
Lifecycle rules
Yes
Event notifications
Yes
CDN integration
first-party-paid
Max object size
45.5TB
IAM granularity
5
Sydney region
Yes
TTFB from Sydney
25ms

Durability & Retention

Durability (nines) ( nines)
11 nines
Uptime SLA (%)
99.9%
Object lock / WORM
Yes
Replication model
multi-az

Agentic

Official MCP server
Yes

Traction

GA year
2,006

Positioning

Positioning
The reference implementation, priced for customers who are not leaving.
Bunny Storage logoBunny StorageEdge storage built as a CDN origin, with its own API rather than a faithful S3 one.61.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$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

Features & API

S3 API coverage (%)
30%
Presigned URLs
Partial
Multipart upload
No
Versioning
No
Lifecycle rules
No
Event notifications
No
CDN integration
free-bundled
Max object size
·
IAM granularity
2
Sydney region
Yes
TTFB from Sydney
20ms

Durability & Retention

Durability (nines) ( nines)
Uptime SLA (%)
99.99%
Object lock / WORM
No
Replication model
multi-region

Agentic

Official MCP server
No

Traction

GA year
2,019

Positioning

Positioning
A CDN company's origin store, sold on edge delivery rather than API fidelity.
Hetzner Object Storage logoHetzner Object StorageThe cheapest credible S3 endpoint in Europe, with a deliberately thin feature set.60.9

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

Features & API

S3 API coverage (%)
70%
Presigned URLs
Yes
Multipart upload
Yes
Versioning
Unknown
Lifecycle rules
Partial
Event notifications
No
CDN integration
diy
Max object size
5TB
IAM granularity
2
Sydney region
No
TTFB from Sydney
300ms

Durability & Retention

Durability (nines) ( nines)
Uptime SLA (%)
99.9%
Object lock / WORM
No
Replication model
single-az

Agentic

Official MCP server
No

Traction

GA year
2,024

Positioning

Positioning
European bulk storage at hardware-vendor prices, with hardware-vendor features.
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.

Where each one wins

MinIO

85.6
  • On-premises or air-gapped deployments where data cannot leave your control
  • Teams that need AWS-grade IAM semantics without AWS
  • A local development target that behaves like production S3

The reference point, not a competitor; run it only if you already operate storage hardware.

Tigris

80.2
  • Apps already deployed on Fly.io, where the integration is native
  • Globally distributed reads without running a CDN yourself
  • Zero egress without committing to Cloudflare's ecosystem

The most interesting design: data gravity handled, no egress, Sydney via Fly, but youngest vendor with no SLA.

Storj

78.4
  • Large-object distribution, datasets, model weights, video masters
  • Backups where surviving a whole-region failure matters more than latency
  • Workloads that benefit from delegatable, expiring, prefix-scoped access grants

The cheapest storage with a different durability model, undercut by first-byte latency the architecture cannot fix.

  • Backup and archive targets where object lock matters and latency does not
  • Anyone already serving through Cloudflare or Fastly, egress becomes free
  • Workloads whose egress genuinely stays under three times stored volume

The sensible cheap, feature-complete middle, but no APAC region rules it out for Australia.

  • Public assets, media and package registries where egress dwarfs storage
  • Anything already fronted by Cloudflare Workers or the Cloudflare CDN
  • Escaping an AWS bill that is mostly bandwidth

The default for read-heavy work, the only provider where egress stops being a line item.

Wasabi

74.0
  • Media archives and backup vaults with predictable, low read volume
  • Australian workloads that need in-country storage at a flat rate
  • Teams that want AWS-shaped IAM policies without the AWS bill

Great for large, long-lived objects with low reads; 90-day retention and egress cap punish everything else.

  • Backup and MSP workloads where storage volume dominates and reads are rare
  • Object-lock immutability at the lowest price on this page
  • Teams comfortable verifying terms directly with a vendor before committing

Cheapest storage alongside Storj, object lock included, but egress terms too illegible to price; fine for backups.

  • EU data residency obligations with a European legal entity behind them
  • Workloads needing real IAM policies rather than scoped access keys
  • Multi-AZ durability without hyperscaler pricing

The most feature-complete non-hyperscaler, but 300 ms away; pick it when EU data residency is required.

  • Static assets and user uploads served from Sydney with a bundled CDN
  • Teams who want one predictable line item instead of five metered ones
  • Existing DigitalOcean deployments where traffic stays on the internal network

Buy it for the bundling and Sydney region, not the feature set; no versioning or bucket events.

AWS S3

65.3
  • Workloads already inside AWS where traffic stays on the internal network
  • Regulatory requirements needing Object Lock compliance mode with a real SLA
  • Anything depending on IAM condition keys, Access Points or S3 Tables

Still the most capable object store, and thirty-eight times Hetzner's cost here, almost entirely bandwidth.

  • Static sites, images and video served to a global audience through Bunny's CDN
  • Australian delivery where edge latency matters more than API compatibility
  • Replacing a CDN plus origin bucket with a single bill

A CDN origin with storage attached, not an object store; superb Sydney delivery, but no S3 semantics.

  • CI artefacts, build caches and cold backups where the bill is the point
  • European origins where EUR 1.19/TB egress changes what is economically possible
  • Anyone already running Hetzner dedicated or cloud servers

Wins the headline number by a mile but loses on features; great for caches, wrong as a system of record.

Which one should you pick?

The short path to an answer. Follow the branch that matches your situation; the table above is there when you want to check the reasoning against the numbers.
Are your users and your hot objects in Australia or the wider APAC region?
  • Yes — latency to AU actually matters
    Is this a user-facing asset pipeline, or backups and build caches?
    • User-facing, latency-sensitive
      Bunny Storage logoBunny StorageA Sydney edge beats a cheaper provider sitting 200–300 ms away; it is not an S3 clone, so treat it as a CDN-first store rather than a drop-in.
    • Backups / build caches
      DigitalOcean Spaces logoDigitalOcean SpacesA real Sydney region and an S3 API, priced in AUD, without paying for edge delivery cold data never uses.
  • No — global, or Cloudflare is already your edge
    Do you need object versioning to undo bad writes?
    • Yes, versioning is non-negotiable
      Backblaze B2 logoBackblaze B2R2 has no object versioning at all; B2 keeps the boring S3 API with versioning, at 26.95/mo on this scenario.
    • No, and egress is the bill
      Cloudflare R2 logoCloudflare R2Zero egress, no minimum retention, a Workers binding that skips the HTTP round trip — the answer for most read-heavy workloads, and it is not close.
    • No, pure cold storage written once
      Hetzner Object Storage logoHetzner Object StorageCheapest raw at 12.47/mo; fine for backups where its missing lifecycle, event notifications and APAC region never bite.

Which S3-compatible object storage provider is actually cheapest once egress is counted?

  • Egress is the only number that matters, and almost nobody puts it on the pricing page front
  • Storage is a commodity: every provider here is USD 4-23 per TB per month
  • Egress spans zero to ninety dollars per terabyte
  • On a workload serving five times what it stores, egress decides the bill by an order of magnitude
  • AWS S3AWS S3 logo costs 472.60 a month here; 441 of that is bandwidth
  • For most teams the answer is Cloudflare R2Cloudflare R2 logo, and it is not close
  • R2Cloudflare R2 logo gives zero egress, no minimum retention, no minimum billable object size, lifecycle rules
  • R2Cloudflare R2 logo also has event notifications into Queues and a Workers binding that skips the HTTP round trip
  • Catch one: R2Cloudflare R2 logo's free egress is Cloudflare's network, best when Cloudflare is already your edge
  • Catch two: R2Cloudflare R2 logo tokens are bucket-and-verb scoped, not a policy language
  • Catch three: R2Cloudflare R2 logo has no object versioning at all (GetBucketVersioning and PutBucketVersioning unimplemented)
  • Without R2Cloudflare R2 logo versioning, undoing bad writes must move into your application or lifecycle policy
  • Hetzner wins the raw number but read the feature columns first
  • Hetzner is Ceph with a thin S3 face: no object lock, unclear versioning, partial lifecycle
  • Hetzner has no event notifications, no APAC location, roughly 300 ms round trip from Australia
  • Hetzner is fine for backups and build caches, dreadful for a user-facing asset pipeline
  • Bunny StorageBunny Storage logo is the opposite: superb Sydney edge delivery, but not an S3 clone
  • WasabiWasabi logo is 6.99/TB with no egress fee, but its AUP caps monthly egress at roughly stored volume
  • 5 TB out of 1 TB stored is five times over, so there is no honest WasabiWasabi logo price to quote
  • WasabiWasabi logo's 90-day minimum retention and 4 KB minimum billable object make it bad for churny work
  • iDrive e2iDrive e2 logo sells the same zero-egress-with-cap promise, publishing neither the multiple nor the overage
  • MinIOMinIO logo is the self-host baseline; its price is your hardware
  • MinIOMinIO logo's community AGPL build lost its admin console in 2025
  • For Australia, WasabiWasabi logo, DigitalOcean SpacesDigitalOcean Spaces logo, Bunny and AWS have Sydney presence
  • TigrisTigris logo reaches Sydney through Fly.ioFly.io logo
  • Backblaze, Hetzner and Scaleway have no Australian location, sitting 200-300 ms away
  • A CDN does not fully hide that latency on cache misses
  • R2Cloudflare R2 logo's Oceania location hint is best-effort, not a contractual region
  • If your users are in Australia and objects are hot, price the Sydney-capable options in AUD

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

What is s3-compatible storage compared: true cost at 1 tb + 5 tb egress?

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

On toolweight, S3-compatible storage compared: true cost at 1 TB + 5 TB egress means the 12 tools benchmarked on this page, Cloudflare R2Cloudflare R2 logo, Backblaze B2Backblaze B2 logo, WasabiWasabi logo, TigrisTigris logo, DigitalOcean SpacesDigitalOcean Spaces logo, Scaleway Object StorageScaleway Object Storage logo, Hetzner Object StorageHetzner Object Storage logo, StorjStorj logo, iDrive e2iDrive e2 logo, Bunny StorageBunny Storage logo, MinIOMinIO logo, AWS S3AWS S3 logo, judged on the same 28 fields, from the same sources, on the same date. The question it exists to answer: Which S3-compatible object storage provider is actually cheapest once egress is counted?

How does toolweight compare these?

  • 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
Full methodology and sourcing policy →

What has changed on this page

Every value carries a source and a date; when one moves, it is logged here. Spot a number that is wrong or stale? Every cell in the table has a "dispute" link that opens a prefilled correction.
  1. 2026-07-23Corrected
    Corrected the EUR→USD rate from a stale 1.08 to 1.16 and re-derived Hetzner and Scaleway, whose totals move more on FX than on their own pricing.
    True cost /mo (USD), True cost /mo (AUD), Storage $/TB/moecb.europa.eu
  2. 2026-07-23Removed
    Withdrew the iDrive e2 true-cost figure of 24.00: it rested on an assumed 3× egress multiple and a 0.01/GB overage the vendor does not publish. The cell is null until the terms are public.
    True cost /mo (USD), Egress cap (x stored)
  3. 2026-06-30Changed
    Set Wasabi's true cost to null: its no-egress model is bounded by a ~1× fair-use cap, and this scenario egresses five times what it stores, outside any honest quote.
    True cost /mo (USD), Egress cap (x stored)
Every correction, as public issues
Cite this comparisonCC-BY-4.0 · verified 2026-07-23

Hetzner Object Storage is cheapest at USD 12.47/mo, then Cloudflare R2 at 22.74 and Backblaze B2 at 26.95, while AWS S3 costs 472.60. — toolweight, https://toolweight.com/compare/s3-compatible-storage, verified 2026-07-23. Data from toolweight (https://toolweight.com), licensed CC-BY-4.0.

Frequently asked 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

How S3-compatible is 'S3-compatible' in practice?

  • Core operations (PUT, GET, multipart, presigned URLs) work everywhere
  • Divergence starts at versioning, object lock, lifecycle transitions, bucket notifications and IAM semantics
  • MinIOMinIO logo and AWS are the reference points; WasabiWasabi logo and TigrisTigris logo sit around 90%
  • Cloudflare R2Cloudflare R2 logo is a little below them because it implements no versioning at all; Hetzner is closer to 70%
  • Bunny StorageBunny Storage logo is not really an S3 API, despite being shortlisted against these providers constantly

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

Can I put a CDN in front and stop worrying about egress?

  • Partly: a CDN only helps on cache hits
  • Misses, range requests and large unique objects still pull from origin at origin egress rates
  • On AWS, S3 to CloudFront origin fetch is free, so CloudFront's ~USD 0.085/GB replaces S3's 0.09
  • Backblaze gets the same effect free via the Bandwidth Alliance with Cloudflare and Fastly