A bucket can look inexpensive until an application starts serving millions of small files, a migration downloads every object, or a retention rule keeps deleted data billable. Choosing object storage means choosing a contract for capacity, requests, delivery, and recovery. Those decisions deserve more attention than a single price per terabyte.
Amazon S3, Cloudflare R2, Backblaze B2, Wasabi, and DigitalOcean Spaces serve different operating needs. This comparison focuses on application files, media, exports, and retained objects accessed through software. Employee document collaboration belongs in our business file sharing comparison; the database behind an application is a separate managed database decision.
Features and commercial pages were checked on October 16, 2026. Prices below are selected public examples, not complete workload estimates. We have not benchmarked these services. Region, storage class, object churn, and the services surrounding a bucket can change the result.
Compare the storage and delivery contract
| Product | Best fit | Main strength | Meaningful tradeoff |
|---|---|---|---|
| Amazon S3 | Applications deeply connected to AWS | Broad storage classes and service integration | Many separately metered dimensions |
| Cloudflare R2 | Frequently delivered application objects | No direct internet egress charge | Requests and connected services still cost money |
| Backblaze B2 | Always-hot capacity with moderate retrieval | Simple capacity rate and egress allowance | Allowance depends on average stored volume |
| Wasabi | Steady retained data | Capacity-oriented commercial model | Minimum capacity and storage duration |
| DigitalOcean Spaces | Smaller application and media estates | Base storage/transfer bundle with CDN | Bundle and overage boundaries need modeling |
Amazon S3
Amazon S3 is a strong starting point when object events, identity policies, data processing, and the rest of the application already live in AWS. Its storage classes allow teams to distinguish frequently accessed data from less active material. The useful question is which class matches the object’s actual lifetime and retrieval pattern.
Its strength is the range of controls and integrations available around an object. That breadth also creates an operating responsibility: someone must maintain bucket access, lifecycle rules, and the assumptions behind the bill. Moving data into a cheaper class without understanding retrieval behavior can trade one cost for another.
Public pricing separates storage, requests, retrieval, transfer, and optional management or processing capabilities. Rates vary by region and class, so this comparison does not assign S3 one universal monthly figure. Obtain a regional estimate for your own traffic and include replication or other selected features.
Best fit: teams that value AWS integration and can maintain explicit storage policies. During evaluation, trace an upload through its permissions, downstream processing, eventual retrieval, and deletion. Confirm the economic effect of each step rather than treating a successful upload as completion.
Cloudflare R2
Cloudflare R2 is appealing when customers repeatedly download objects and direct internet delivery is a large part of the workload. Its pricing documentation states that direct egress is free for both Standard and Infrequent Access storage. That helps isolate the delivery dimension without making every other part of the system free.
Standard storage is listed at $0.015 per GB-month, with Class A operations at $4.50 per million and Class B operations at $0.36 per million. Its monthly Standard free tier includes 10 GB-month, one million Class A operations, and ten million Class B operations. Usage is rounded to billing units.
Infrequent Access has a lower capacity rate but retrieval charges and a 30-day minimum storage duration. Its usage does not receive the Standard free tier. Compare the classes using the same read pattern; an apparently cheaper stored gigabyte can become more expensive when repeatedly retrieved.
Strength and limitation: delivery economics are clear, but request-heavy applications and metered connected services still need a budget. R2’s S3 compatibility documentation lists supported operations individually. Validate the exact SDK calls and headers your application uses before assuming complete interchangeability with S3.
Backblaze B2
Backblaze B2 emphasizes always-hot object storage with a public starting rate of $6.95 per TB per month. The pricing page describes monthly billing based on byte-hours and also offers capacity commitments for one to five years, paid for the term at its start. Those commitments should be evaluated separately from pay-as-you-go usage.
Its main advantage is a relatively direct capacity model without minimum file-size or storage-duration fees. Free egress up to three times average monthly storage is useful for many retained-data and media workloads. Above that allowance, ordinary egress is $0.01 per GB; eligible CDN and compute partner routes can have different treatment.
The important limitation is the allowance denominator. A bucket that briefly holds a large export and downloads it repeatedly may have much less average stored capacity than a casual end-of-month snapshot suggests. Model storage over the billing period.
Best fit: teams seeking hot capacity with predictable retrieval volumes. The current page distinguishes free Class A, B, and C API calls for pay-as-you-go customers from metered Class D calls. Its separate Overdrive offer starts higher and includes different throughput and egress terms; do not substitute those terms into an ordinary B2 estimate.
Wasabi
Wasabi’s Hot Cloud Storage page lists pay-as-you-go pricing starting at $7.99 per TB per month, with no separate egress or API request fees subject to its policies. Reserved capacity is available in one-, three-, or five-year increments. The model is attractive for data that stays stored and has a stable, understood access pattern.
The defining commercial boundaries are in the pricing FAQ. Pay-as-you-go accounts have a monthly minimum corresponding to 1 TB of active storage, even when they hold less. Objects deleted before 90 days can incur Timed Deleted Storage charges for the remaining period. A short-lived staging bucket is therefore a different proposition from a long-lived archive.
Strength: capacity-oriented budgeting can be straightforward for steady retained datasets. Limitation: a zero-egress line is not a promise of unrestricted delivery for every workload. Review the free-egress and API policies, region, and retention behavior together.
Choose Wasabi when the expected lifetime and access volume align with those terms. Ask an evaluator to calculate a month with early deletions, replacement uploads, and a full export. That reveals whether the commercial simplicity fits the application rather than merely the first invoice.
DigitalOcean Spaces
DigitalOcean Spaces combines S3-compatible object storage with a built-in CDN and a small base bundle. Its public page lists $5 per month including 250 GiB of storage and 1 TiB of outbound transfer. Additional storage is $0.02 per GiB and additional transfer $0.01 per GiB. Preserve those binary units when comparing against vendors quoting GB or TB.
The strength is a manageable starting point for application media and static files, particularly when the team already operates on DigitalOcean. The bundle makes a small estate easier to budget, while the CDN can sit in the same delivery design.
The tradeoff is that the base fee and allowances still require an account-level workload model. Do not multiply an included allowance by the number of buckets without checking how billing applies. Cold storage is also advertised separately; its rate should not be used as the ordinary hot-storage rate.
Best fit: teams wanting a modest entry bundle and familiar infrastructure administration. During a trial, measure the uploaded originals, generated variants, and actual outbound data. An image service can retain several derivatives per source file, so counting only original assets understates capacity and delivery.
Evaluate the object’s entire lifetime
Start with a representative workload sheet: average stored bytes, new objects, overwritten objects, reads, listing requests, monthly outbound traffic, and expected retention. Add one peak month and one migration month. Keep a retained backup dataset separate from a public download service; they can have opposite economic priorities.
Then run a controlled compatibility exercise using disposable data. Upload a large object, interrupt a multipart transfer, request a private download, replace a file, and delete an old version. Check the application’s behavior and billing assumptions at each stage. This is a suggested evaluation, not a report of tests we performed.
- List the regions and access controls required by the application.
- Verify the exact API operations, metadata, and lifecycle behavior you depend on.
- Include minimum duration, deleted storage, requests, and retrieval in the estimate.
- Separate storage charges from CDN, compute, transformation, and support costs.
- Document a complete export path and who can authorize destructive changes.
S3 belongs on a shortlist driven by AWS integration; R2 by direct delivery economics; B2 by always-hot capacity and its retrieval allowance; Wasabi by stable retained data; and Spaces by its entry bundle and DigitalOcean fit. Choose against your workload contract, then repeat the estimate when the application’s access pattern changes.
Official sources
Checked October 16, 2026: S3 overview, S3 pricing, R2 pricing, R2 API compatibility, B2 pricing, B2 transaction rates, Wasabi pricing, Wasabi pricing FAQ, and Spaces pricing.
Photo by Kevin Ache on Unsplash. Read about our publication or send a correction.
