With so many S3-compatible providers on the market, it can be difficult to understand which one truly fits your workload.
To keep things objective, we used MinIO warp v1.0.7, a widely adopted open-source benchmarking tool. Tests included upload, download, mixed workloads, small object throughput, and large object handling. All benchmarks were run under identical conditions on a Debian 13 VM with 16 GB RAM, located in US-East-1, using 8 concurrent threads and consistent object sizes.
Our methodology is fully reproducible — every parameter and setup detail is publicly available. You can find the complete benchmark methodology and replication guide with step-by-step instructions to run your own tests. All pricing information reflects rates publicly available as of October 1, 2025.
Here's the summary:

A few things that surprised us:
- Mixed operations (simultaneous reads, writes, metadata) is the most realistic measure of real-world performance — and results vary wildly
- Cloudflare R2 has zero egress fees but came in last on mixed ops (44 Mbit/s) and small objects (42 obj/s)
- Hetzner's numbers look low — but that's because we tested from US-East-1 and they're EU-only, so transatlantic latency skews the results
- Backblaze B2 dominates on downloads but showed timeouts during large-object tests
For full per-provider breakdowns and detailed analysis: https://rabata.io/s3-comparison
Top comments (1)
S3 benchmarks are great for raw GET/PUT throughput but miss the real-world cost driver: tiered storage. Five things that move the actual monthly bill:
Intelligent-Tiering fees — $0.0025 per 1,000 objects monitored. For a bucket with 50M objects that's $125/month just for monitoring, often more than the storage savings. Only enable IT on buckets with >30% access pattern variance.
Lifecycle transitions have a per-object fee — moving an object from Standard to Standard-IA costs $0.01 per 1,000 transitions. Glacier Instant Retrieval is $0.02. For 1M objects transitioning monthly, the transition fees alone are $10-20.
Minimum storage duration — Standard-IA has 30 days minimum. If you delete objects after 14 days, you still pay for 30. Glacier Deep Archive is 180 days. Misconfigured lifecycles can DOUBLE your bill vs untiered storage.
MinIO lifecycle vs S3 lifecycle — MinIO ILM is free, runs server-side, supports Transition + Expiration in one rule. For self-hosted with frequent transitions, MinIO wins on cost. S3 wins on global availability.
Retrieval fees are the trap — Glacier Instant Retrieval retrieval is $0.01/GB. If you set tiering to push 100TB to Glacier but then have a 'rehydrate all' moment, that's a $1,000+ retrieval bill in one shot.
Storage Lens is the cost dashboard — enable Storage Lens with advanced metrics to see which prefixes drive tiering fees. Most teams find that 5% of prefixes drive 80% of the tiering cost.
For ops who want S3-compatible buckets (AWS / MinIO / Wasabi / Backblaze) to feel like a native Windows drive with explorer preview and drag-drop: ScsDriver