We tested five cloud object storage providers IONOS, Amazon S3, Backblaze B2, Cloudflare R2, and DigitalOcean Space across performance, features, and pricing. All tests ran from Europe against each provider’s EU-region endpoint.
Cloud Object Storage Benchmark Results
Upload Throughput (MB/s): higher is better
Provider | 100 KB | 1 MB | 10 MB | 1 GB |
|---|---|---|---|---|
1.81 | 9.16 | 19.33 | 70.64 | |
AWS S3 | 3 | 26.52 | 65.77 | 77.92 |
Backblaze B2 | 0.72 | 17.5 | 15.89 | 23.54 |
Cloudflare R2 | 0.49 | 4.36 | 17.73 | 25.61 |
DigitalOcean | 4.49 | 25.21 | 65.01 | 95.00 |
S3 and DigitalOcean trade the lead depending on file size. R2 and B2 are consistently the weakest on upload, with R2 peaking at 25.61 MB/s and B2 at 23.54 MB/s, even at 1 GB, less than a quarter of DigitalOcean’s 95.00 MB/s.
Download Throughput (MB/s): higher is better
DigitalOcean leads at every file size up to 10 MB. IONOS takes the top spot at 1 GB with 489.36 MB/s the highest single throughput figure in the entire benchmark, nearly 5x S3’s result at the same size. Both reflect CDN and edge infrastructure benefits in real-world deployments.
Latency (ms): lower is better
B2’s 517.84 ms upload latency is the benchmark’s starkest outlier. Every upload on B2 pays this overhead before a single byte transfers a structural limitation for any write-heavy workload. R2 at 171.58 ms is meaningfully better than B2 but still 6x higher than S3 and DigitalOcean. For download latency and TTFB, DigitalOcean leads cleanly.
Concurrent Request Performance (ms): lower is better
All five vendors achieved 100% success rate at every concurrency level. DigitalOcean is faster at 1 and 10 concurrent requests; S3 pulls ahead at 100 concurrent. B2’s 4,469 ms total at 100 concurrent requests reflects its per-request overhead compounding at scale.
Feature Comparison
All five providers support versioning, Terraform, and lifecycle policies natively.
- Object Lock: Available on S3, B2, and IONOS only. R2 and DigitalOcean Spaces have no WORM support, which disqualifies them from regulated industries requiring immutable storage.
- CDN: Native on R2 (Cloudflare network) and included free with DigitalOcean Spaces. S3 routes through CloudFront as a separate billable service. B2 and IONOS require external CDN configuration.
- Cross-region replication: S3 and B2 only. The other three vendors have no built-in replication path.
- KMS: S3 only. All other vendors offer AES-256 encryption but no externally managed key custody. This is a hard requirement for PCI DSS and HIPAA in some configurations.
Pricing Comparison
B2 and IONOS are the cheapest on storage (~$5/TB/month) and the only vendors with zero request fees. R2’s zero egress is structurally different from everything else: no cap, no partner dependency, no quota.
IONOS is a managed object storage provider operating across three data centers: Berlin, Frankfurt, and Logroño. All locations fall under the GDPR, making it a practical default for teams with data residency requirements.
Pricing is straightforward: $4.99/TB/month for storage with no per-request fees. PUT, GET, and DELETE operations are all free. Egress runs $0.030/GB up to 2 TB, dropping to $0.020/GB between 10–50 TB.
Upload throughput scales with file size; small objects are bottlenecked by per-request overhead, while large transfers better saturate the connection. The jump from 10 MB to 1 GB is the most significant; throughput more than triples.
Downloads are substantially faster than uploads across every file size. At 1 GB, download speed (489.36 MB/s) is nearly 7x the upload speed (70.64 MB/s). For read-heavy workloads backups, media serving, ML dataset access this asymmetry works in your favor.
Upload latency is noticeably higher than download. TTFB at 15.3 ms is consistent with the download latency figure, suggesting the server responds quickly once a request is received; the upload overhead comes from the write path, not connection setup.
A 1 GB upload takes roughly 14.5 seconds end-to-end. The same file downloads in just over 2 seconds. Scaling from 1 to 100 concurrent requests, total time grows roughly 39x while per-request time drops from ~19.92 ms to 7.85 ms. No failed requests across 100 sequential requests. Every object downloaded matched its original SHA-256 hash. At an average of 15.94 ms, objects are effectively available immediately after upload, strong consistency, not eventual consistency.
Amazon S3 set the baseline for cloud object storage when it launched in 2006, and nearly every competitor since has measured itself against S3’s API.
Tests ran against a bucket in eu-central-1 (Frankfurt) with Block All Public Access enabled and SSE-S3 (AES-256) as default encryption.
Per-request overhead (TCP handshake, TLS negotiation, S3 request signing) is visible at 100 KB but largely disappears at 1 MB and above throughput scales consistently to 77.92 MB/s upload and 94.3 MB/s download at 1 GB.
The per-request average at 100 concurrent requests drops from 24.41 ms to 6.32 ms, the connection-reuse and HTTP/2 multiplexing effect. S3 offers strong read-after-write consistency for all objects in all regions, a behavior AWS made default in December 2020.
S3 offers eight storage classes within a single bucket more than any comparable object storage service. S3 Intelligent-Tiering automatically moves objects between access tiers based on access patterns, with no retrieval fees and no minimum duration for objects under 128 KB.
S3 Standard stores objects across a minimum of three Availability Zones, providing 99.999999999% (11 nines) durability. Cross-Region Replication (CRR), Same-Region Replication (SRR), and Multi-Region Access Points are available for replication and failover scenarios.
Pricing
The free tier includes 5 GB Standard storage, 20,000 GET requests, 2,000 PUT requests, and 100 GB outbound transfer per month for the first 12 months.
The feature set is the widest available: eight storage classes, four encryption options, Object Lock for WORM compliance, native SDKs in every major language, and 25+ regions. The main cost consideration is egress at $0.09/GB for the first 10 TB/month, applications with high read-to-storage ratios accumulate egress charges quickly. Routing egress through CloudFront eliminates the S3-to-CloudFront fee and typically reduces total cost for high-traffic use cases.
Tests ran against a B2 bucket on the EU endpoint (eu-central-003) with SSE-B2 (AES-256) encryption enabled.
The 517 ms upload latency is the most significant finding in this benchmark. It is not a throughput problem; it is a per-request overhead problem. Every upload, regardless of file size, pays this cost before any bytes are transferred.
Applications that upload many small files (thumbnails, logs, sensor data) will accumulate this latency across every request.
Download latency tells a different story: 16.59 ms TTFB is fast, faster than S3 eu-central-1’s 26.32 ms. B2 is better tuned for reads than writes. Once an object is written, B2 makes it available for reads quickly 15.89 ms read-after-write consistency, faster than S3’s 26.04 ms.
At 1 concurrent request, B2 takes 247.9 ms versus S3’s 24.4 ms. At 100 concurrent requests, B2’s average per-request time drops to 44.7 ms the gap narrows under concurrency but does not close. 100% success rate across all levels.
B2 has one storage class: Standard. Lifecycle rules can automatically hide or delete objects after a defined period, but there is no cost-tiered archival.
The 100 GB multipart cap (vs. S3’s 5 TB) is a constraint for very large object workloads; most backup and media workloads stay well under this limit. B2 participates in the Cloudflare Bandwidth Alliance egress to Cloudflare, Fastly, and bunny.net is free.
Pricing
Free tier is permanent: 10 GB storage, egress up to 3x stored data, unlimited Class A/B/C transactions per month.
B2 is a strong fit for backup software, media archives, large dataset storage, and any workload using Cloudflare where egress cost is a primary concern. It is not a drop-in replacement for S3 in production applications that depend on AWS-specific features or need low write latency.
Cloudflare R2’s main selling point is zero egress fees. Where S3 charges $0.09/GB, and B2 charges $0.01/GB above the free quota, R2 charges nothing. R2 was accessed via its S3-compatible API; requests are routed automatically to Cloudflare’s nearest data center.
Upload throughput is the weaker side: 0.49 MB/s at 100 KB and 25.61 MB/s at 1 GB. Download throughput scales well: 63.63 MB/s at 1 GB. Upload latency at 171.58 ms is better than B2’s 517.84 ms but 6x higher than S3.
Download TTFB at 63.23 ms is higher than S3 (26.32 ms) and B2 (16.88 ms) when accessed via the S3 API; applications serving content via a public Cloudflare bucket route through the CDN cache and will see much lower effective TTFB for cached objects.
R2’s concurrency behavior is the greatest relative improvement in the benchmark: per-request time drops roughly 7x from 79.59 ms (1 request) to 11.34 ms (100 concurrent). Read-after-write consistency at 56.43 ms is the slowest of the five, reflecting write propagation across Cloudflare’s distributed edge.
R2’s native CDN integration is its most distinctive feature. Buckets can be made publicly accessible via a Cloudflare-managed subdomain or custom domain; routing traffic through Cloudflare’s CDN cache automatically serves cached objects at the edge without hitting R2’s storage API.
R2 uses automatic placement; there is no region selection during bucket creation. For strict data residency, EU jurisdiction buckets pin storage to European data centers.
Pricing
Free tier is permanent: 10 GB Standard storage, 1M Class A operations, 10M Class B operations, unlimited egress per month.
The TCO case for R2 is strongest for read-heavy workloads with high egress volume. Zero egress rewrites the total cost calculation for any application serving data externally at scale. Feature gaps no Object Lock, no cross-region replication, no explicit region selection matter less for read-optimized workloads.
DigitalOcean Spaces starts at a flat $5/month that includes 250 GB storage, 1 TB transfer, CDN, and zero request fees. Tests ran against the fra1 (Frankfurt) region via the S3-compatible API, with CDN enabled on the bucket.
The throughput numbers are the strongest in this benchmark. The 1 GB upload at 95.00 MB/s edges out S3’s 77.92 MB/s, and the 1 GB download at 339.53 MB/s is more than 3.5x S3’s 94.3 MB/s. The 10 MB download at 153.34 MB/s reflects DigitalOcean’s CDN routing downloads through edge nodes closer to the test client.
TTFB at 8.68 ms is the lowest in the benchmark. Upload latency at 28.78 ms is comparable to S3’s 28.45 ms. At a single concurrent request, Spaces returns in 19.56 ms faster than S3’s 24.41 ms. At 100 concurrent requests, 7.07 ms per request. Read-after-write consistency at 10.34 ms is the fastest of the five vendors.
Spaces offers two storage classes: Standard ($0.02/GB) and Cold Storage ($0.007/GB, 128 KB minimum object size, no retrieval fee). Cross-region replication is not supported. The dashboard lacks per-bucket storage monitoring; usage tracking requires checking the billing panel. No native event notifications.
Pricing
A team storing 200 GB and transferring 500 GB/month pays exactly $5 no egress metering, no request fees, no CDN surcharge. The same workload on S3 eu-central-1 would cost roughly $40–50.
Spaces is the right fit for developer teams and small businesses that want fast, predictable-cost object storage with CDN included. It is not a production replacement for S3 in architectures that depend on replication, Object Lock, event triggers, or extensive AWS service integration.
Use Case Recommendations
- IONOS: EU-regulated workloads where data residency is a hard requirement, not a configuration option. All three IONOS regions are in Europe by default. Storage pricing matches B2 at ~$5/TB/month, all requests are free, and Object Lock is supported. The $0.03/GB egress rate is the main cost concern at high read volumes. No CDN and three EU-only regions make IONOS unsuitable as a global store.
- AWS S3: Teams already in AWS, or any workload requiring the full feature set: KMS encryption, multiple storage tiers, event-driven pipelines (Lambda/SQS/EventBridge), cross-region replication, or 25+ global regions. The most expensive option, but no other vendor in this benchmark matches its depth.
- Backblaze B2: High-volume storage with tight budget constraints, especially when Cloudflare is already in the stack. B2 + Cloudflare Bandwidth Alliance is the lowest total cost across nearly every scenario tested. Object Lock (File Lock) covers compliance requirements. Avoid for write-heavy or small-file workloads given the 517 ms upload latency.
- Cloudflare R2: Workloads where egress cost is the dominant line item: media delivery, public file hosting, large dataset distribution, static site assets. Zero egress and native CDN integration make R2’s TCO unbeatable for read-heavy, high-transfer scenarios. Teams already using Cloudflare Workers or Pages benefit from native integration.
- DigitalOcean Spaces: Developer teams and small businesses wanting fast, predictable pricing with CDN included. The benchmark’s strongest upload and small-file download numbers, a $5/month all-in plan, and simple setup make Spaces the most frictionless option for teams already on DigitalOcean. Not suitable for architectures requiring Object Lock, cross-region replication, or event-driven triggers.
FAQ
S3-compatible object storage refers to cloud or self-hosted storage solutions that support the Amazon S3 API, allowing applications and services designed for S3 to integrate seamlessly. It provides scalable, durable, and cost-effectivestorage for unstructured data such as backups, media files, and analytics datasets.
While Amazon S3 is a managed storage service provided by AWS, S3-compatible object storage refers to alternative providers that support the same API and functionality. Depending on the provider, these alternatives often offer lower costs, different pricing structures, no egress fees, or self-hosted deployment options.
Citer cette recherche
Choisissez le format qui correspond à votre lieu de publication. Coller la version avec lien dans votre CMS préserve le lien retour.
@misc{dogan2026,
author = {Dogan, Sedat},
title = {{Top Cloud Object Storage Tools: Results & Comparison}},
year = {2026},
month = jun,
howpublished = {\url{https://aimultiple.com/cloud-object-storage}},
note = {AIMultiple. Retrieved Juin 16, 2026}
}














Soyez le premier à commenter
Votre adresse courriel ne sera pas publiée. Tous les champs sont obligatoires. Les commentaires sont laissés dans leur langue d'origine.