S3-compatible object storage providers

Hetzner Object Storage is cheapest at USD 12.47/mo for 1 TB stored plus 5 TB egress plus 10 M requests, then Cloudflare R2 at 22.74 and Backblaze B2 at 26.95. AWS S3 is 472.60 — thirty-eight times Hetzner — and 93% of that is bandwidth. If you need Sydney, R2, Tigris and DigitalOcean Spaces are the realistic shortlist.

Last verified
2026-07-23 (today)
Source confidence
35%
Re-verified
every 30 days
Tools
12
Fields
28
12 tools · verified today
MinIOThe 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
0 ms
Min billed object
0 B

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
5 TB
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.
TigrisGlobally 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
0 ms
Min billed object
0 B

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
5 TB
IAM granularity
3
Sydney region
Yes
TTFB from Sydney
60 ms

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.
StorjDecentralised 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
0 ms
Min billed object
0 B

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
5 TB
IAM granularity
4
Sydney region
Partial
TTFB from Sydney
150 ms

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 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)
3 x stored
Class A $/M ops (/M ops)
$0 /M ops
Class B $/M ops (/M ops)
$0 /M ops
Min retention
0 ms
Min billed object
0 B

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.1 TB
IAM granularity
3
Sydney region
No
TTFB from Sydney
180 ms

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 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
0 ms
Min billed object
0 B

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
5 TB
IAM granularity
3
Sydney region
Partial
TTFB from Sydney
45 ms

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.
WasabiFlat-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)
1 x stored
Class A $/M ops (/M ops)
$0 /M ops
Class B $/M ops (/M ops)
$0 /M ops
Min retention
129600 min
Min billed object
4 KB

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
5 TB
IAM granularity
4
Sydney region
Yes
TTFB from Sydney
30 ms

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 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
0 ms
Min billed object
0 B

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
5 TB
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 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
0 ms
Min billed object
0 B

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
5 TB
IAM granularity
4
Sydney region
No
TTFB from Sydney
300 ms

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 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
0 ms
Min billed object
0 B

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
5 TB
IAM granularity
3
Sydney region
Yes
TTFB from Sydney
25 ms

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 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
0 ms
Min billed object
0 B

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.5 TB
IAM granularity
5
Sydney region
Yes
TTFB from Sydney
25 ms

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 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
0 ms
Min billed object
0 B

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
20 ms

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 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
0 ms
Min billed object
0 B

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
5 TB
IAM granularity
2
Sydney region
No
TTFB from Sydney
300 ms

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◆ measured · ▸ vendor-claimed · ▪ community · · inferredExpand a row for the source and date behind every cell.
S3-compatible storage compared: true cost at 1 TB + 5 TB egress pricing, compared line by line

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 front of the pricing page. Storage is a commodity: every provider here sits between USD 4 and USD 23 per terabyte per month, a spread of under twenty dollars on our scenario. Egress spans zero to ninety dollars per terabyte, so on a workload that serves five times what it stores — which is every image host, every media API, every model-weights mirror — egress decides the bill by an order of magnitude. AWS S3 costs 472.60 a month here and 441 of that is bandwidth.

For most teams the answer is Cloudflare R2 and it is not close. Zero egress, no minimum retention, no minimum billable object size, lifecycle rules, event notifications into Queues, and a Workers binding that skips the HTTP round trip entirely. There are three catches. The free egress is Cloudflare's network, so R2 is at its best when Cloudflare is already your edge. R2 tokens are bucket-and-verb scoped rather than a policy language, which will annoy anyone who has built real multi-tenant isolation on AWS IAM conditions. And R2 has no object versioning at all — Cloudflare's own S3 compatibility table lists GetBucketVersioning and PutBucketVersioning as unimplemented — so if you were relying on version IDs and delete markers to undo a bad write, that has to move into your application or your lifecycle policy.

Hetzner wins the raw number and deserves the attention it gets, but read the feature columns before you move. It is a Ceph deployment with a thin S3 face: no object lock, versioning that its own docs have never been clear about, partial lifecycle support, no event notifications, no APAC location, and roughly 300 ms of round trip from Australia. That is fine for backups and build caches and dreadful for a user-facing asset pipeline. The same reasoning applies to Bunny Storage from the opposite direction — superb edge delivery from Sydney, but it is not an S3 clone and treating it as one will break your SDK.

Three providers refuse the question. Wasabi's headline is 6.99/TB with no egress fee, but its acceptable-use policy caps monthly egress at roughly your stored volume; 5 TB out of 1 TB stored is five times over, so there is no honest price to quote and we have left the cell empty rather than invent one. Add the 90-day minimum retention and the 4 KB minimum billable object and Wasabi becomes a bad fit for anything churny. iDrive e2 sells the same shape of promise — zero egress up to a fair-use multiple of what you store — and does not publish either the multiple or what it charges above it, so it gets the same empty cell for the same reason. MinIO is the self-host baseline and its price is your hardware — but note that the community AGPL build lost its admin console in 2025, which changed the calculus for a lot of people who were running it precisely because it was free and complete.

For Australian workloads the field narrows hard. Wasabi, DigitalOcean Spaces, Bunny and AWS all have Sydney presence, and Tigris reaches it through Fly.io. Backblaze, Hetzner and Scaleway do not, and 200–300 ms of first-byte latency is not something a CDN in front of them fully hides on cache misses. R2's Oceania location hint is best-effort rather than a contractual region, which is usually good enough and occasionally isn't. If your users are in Australia and your objects are hot, price the Sydney-capable options in AUD and accept that you will pay more than the Hetzner headline.

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 with only the first 100 GB free, which is 441 dollars of our 472.60 total. DigitalOcean charges 0.01/GB, Scaleway EUR 0.01 (about 0.0116) and Storj 0.007/GB — an order of magnitude better than AWS but not zero, and 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, and both bound it with a fair-use multiple of what you store, which is a different product sold with the same number; 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 looks trivial until you run a workload that lists a bucket in a loop or writes a million small objects an hour. AWS is 5.00 per million for the same class. Backblaze, DigitalOcean, Scaleway, Hetzner, Storj, Bunny and iDrive charge nothing per request at all, which is a genuine advantage that none of their pricing pages leads with — Backblaze went furthest and made Class A, B and C calls all free on pay-as-you-go, leaving only outbound event-notification callbacks metered.

Minimum retention is the third, and it is a storage price multiplier in disguise. Wasabi's 90 days means a workload with 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, and AWS applies a 128 KB floor on its infrequent-access classes, which is how the cheap tier ends up more expensive 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 and, on some providers, forcing path-style addressing 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: R2, Hetzner and Bunny have no IAM policy language, so any authorisation you expressed as a condition on a principal has to move into your application. Versioning does not port to R2 at all — GetBucketVersioning and PutBucketVersioning are unimplemented — so if S3 versioning is part of how you recover from bad writes, budget for replacing it. Lifecycle transitions between storage classes mostly do not port, because most providers have exactly one class. S3 event notifications become provider-specific — R2 fires into Cloudflare Queues, Backblaze uses its own event payload — so anything wired to Lambda needs rebuilding rather than repointing. Object Lock in compliance mode, if you rely on it for a retention obligation, exists on Backblaze, Wasabi, Scaleway, iDrive, Storj, MinIO and AWS, and not 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 where it is supported, will move a terabyte far faster. On AWS the one-time egress to leave is often the single largest line on the migration budget: getting 50 TB out of S3 costs roughly USD 4,300 in bandwidth before you have stored a byte anywhere else. Price that exit charge before you commit to the move, and consider draining gradually behind a read-through cache if the number is uncomfortable.

How to actually decide

Work out your egress-to-storage ratio first, because it selects the shortlist before any feature comparison does.

Below about 1:1 — backups, archives, data lakes read by a handful of jobs — storage price dominates and Storj (USD 4/TB), iDrive e2 (4), and Backblaze and Hetzner (6.95 each) are the field. Check the minimum retention and minimum billable object columns, confirm object lock if this is a ransomware-resistant backup target, and stop there.

Above about 3:1 — public assets, media, model weights, package registries — egress dominates absolutely and the shortlist collapses to R2 and Tigris, the only two providers charging nothing per gigabyte with no ceiling behind it, with Hetzner as the value option if a European origin is acceptable. Bunny is often named in the same breath and does not belong there on this axis: its egress is 0.01/GB in Europe and North America, the same as DigitalOcean and Scaleway, and 0.03 into Oceania. Shortlist Bunny for its edge, not for its bandwidth rate. At 10:1 nothing else is worth evaluating; the gap between R2 at 22.74 and AWS at 472.60 will not be closed by any feature.

Then apply two filters. If you need Sydney, drop Backblaze, Hetzner and Scaleway, which have no Australian or Oceania location at all. If you need object lock, versioning and event notifications all three with AWS semantics, almost nothing survives: AWS, Backblaze and MinIO, and that is the list. Tigris has the versioning and the notifications but we could not confirm object lock; R2 has notifications but no versioning and only a bucket-level retention lock; Scaleway has the lock and the 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, and at that point pick on the API surface you will actually touch rather than on a dollar figure that differs by less than 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 R2, Backblaze B2, Wasabi, Tigris, DigitalOcean Spaces, Scaleway Object Storage, Hetzner Object Storage, Storj, iDrive e2, Bunny Storage, MinIO, AWS S3 — 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 on this page is the published pay-as-you-go rate — no committed-use discounts and no enterprise agreements. The killer field, "true cost /mo", is computed by us from those rates against one fixed scenario: 1 TB (1,000 GB) stored for a calendar month, 5 TB (5,000 GB) egressed to the public internet, and 10 M requests split 1 M Class A (PUT, POST, COPY, LIST) and 9 M Class B (GET, HEAD). Each provider's arithmetic is written out in the note on its own cell so you can check us — if a figure cannot be reconstructed from the numbers published in its own row, it does not belong in the column, which is why three rows are null rather than estimated. The same request split is applied to everyone, so providers that do not meter requests at all get a genuine advantage here rather than a modelling artefact.

One netting rule, applied everywhere. An allowance that is part of the rate card itself is deducted before the overage rate applies: the volumes bundled into Hetzner's and DigitalOcean's base fees, Backblaze's free egress up to three times stored data, 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 rather than the price of the one we are quoting — that affects only Cloudflare R2, whose 10 GB / 1 M Class A / 10 M Class B free tier would take its total from 22.74 to 14.85, and we say so in the cell note instead of folding it in.

Non-USD list prices are converted at 1 EUR = 1.16 USD, and the AUD column at 1 USD = 1.52 AUD, both struck 2026-07-23 — refresh them if the spread has moved, because for Scaleway and Hetzner the FX rate moves the answer more than the pricing page does. This page previously carried the euro at 1.08, which understated both of those providers by about seven per cent. Three rows have a null cost. Wasabi's no-egress-fee model is bounded by a fair-use cap of roughly one times stored volume, so this scenario falls outside its terms and has no list price. iDrive e2 sells the same shape of promise and publishes neither the multiple nor the rate above it, so there is nothing to compute against — we previously quoted 24.00 there on an assumed 3x allowance and an assumed 0.01/GB overage, neither of which appears on iDrive's rate card, and it has been withdrawn. MinIO has no price because you are buying servers and transit, not storage. Latency figures are inferred from network topology and community reports, not measured by toolweight, and are marked accordingly.

Full methodology and sourcing policy →

Frequently asked questions

Is Cloudflare R2 egress really free, with no catch?

Yes for standard object reads over the public internet — R2 bills storage and operations only, with no published fair-use cap on bandwidth. The catches are elsewhere: Class A operations cost USD 4.50 per million, which stings on write-heavy or list-heavy workloads, and the free bandwidth is Cloudflare's network, so you inherit its routing. R2 also has no contractual Sydney region, only an Oceania location hint.

Why can't you price Wasabi on this page?

Wasabi charges no egress fee, but its acceptable-use policy limits monthly downloads to roughly the volume you store. Our scenario egresses five times the stored volume, which is outside those terms — Wasabi reviews or restricts the account rather than sending a larger bill, so there is no list price to quote. Storage alone would be USD 6.99 for the terabyte, and we have left the computed cell null.

Which S3-compatible providers have a Sydney region?

Wasabi (ap-southeast-2), DigitalOcean Spaces (syd1), Bunny Storage and AWS S3 all have Sydney presence. Tigris reaches Sydney through Fly.io's footprint. Cloudflare R2 offers a best-effort Oceania location hint rather than a guaranteed region. Backblaze B2, Hetzner Object Storage and Scaleway have no Australian or Oceania location at all, and sit 200–300 ms away.

What does a minimum retention period actually cost me?

It means an object deleted before that window is still billed for the full window. Wasabi'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, video transcode intermediates — this quietly multiplies the effective storage price several times over the headline rate. 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 policy semantics. MinIO and AWS are the reference points; Wasabi and Tigris sit around 90%; Cloudflare R2 is a little below them because it implements no versioning at all, which is the single largest gap in this roster on a provider people otherwise treat as a drop-in; Hetzner is closer to 70%; Bunny Storage is not really an S3 API at all despite being shortlisted against these providers constantly.

Should I self-host MinIO to save money?

Only if you already operate storage hardware. On our scenario the cheap managed providers land at USD 12–30; a dedicated box with enough disk for a terabyte of erasure-coded capacity and the traffic included is more like USD 50–70 before you count your own time, and you take on erasure-coding configuration, upgrades and on-call. Self-hosting is a control and data-residency decision here, not a cost saving. MinIO's community build also 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. AWS is the exception worth knowing — S3 to CloudFront origin fetch is free, so CloudFront's roughly USD 0.085/GB replaces S3's 0.09 rather than stacking on it. Backblaze gets the same effect free via the Bandwidth Alliance with Cloudflare and Fastly.