Model distribution, not just capacity
A 500 MB release downloaded 20,000 times delivers 10,000 decimal GB if each download completes once. The stored package may be tiny compared with that total. Retries, multiple architectures, repeated downloads and older releases can increase it further. The capacity rate alone tells you little about a distribution workload.
The download preset stores 250 GB, delivers 10,000 GB and makes 1,000 writes plus 100,000 reads per month. The extra read count represents an illustrative mix of metadata access, partial reads and retries; it is not a measured ratio. Objects remain for at least 90 days and unused monthly allowances are included.
| Service / pricing region | Storage | Delivery | Writes / reads | Minimum top-up | Total / month |
|---|---|---|---|---|---|
| Amazon S3US East · N. Virginia | USD 5.36 | 829.19 | 0.01 / 0.04 | 0.00 | USD 834.59 |
| Cloudflare R2Automatic placement / EU jurisdiction | USD 3.60 | 0.00 | 0.00 / 0.00 | 0.00 | USD 3.60 |
| Backblaze B2US / EU / Canada | USD 1.67 | 92.50 | 0.00 / 0.00 | 0.00 | USD 94.17 |
| WasabiAll commercial regions | Outside modelOutside the published egress policy. Obtain provider approval; no estimate shown. | ||||
| Bunny StorageOne storage region · EU/NA delivery | USD 2.50 | 100.00 | 0.00 / 0.00 | 0.00 | USD 102.50 |
| ScalewayParis · fr-par | EUR 4.01 | 99.25 | 0.00 / 0.00 | 0.00 | EUR 103.27 |
Draw both legs of a CDN route
With a separate CDN, bytes first move from storage to the CDN and then from the CDN to the user. A favorable origin-transfer arrangement does not make the second leg free. Read the storage provider’s partner terms and the CDN rate card together. Avoid counting all end-user downloads as origin misses, but avoid assuming a perfectly warm cache either.
Bunny’s modeled row includes public EU/NA CDN delivery. The other complete rows use direct internet delivery and would need a separate downstream budget if you put a paid CDN in front. Wasabi’s policy is not a fit for this preset, so a total is intentionally withheld. Open the provider profiles for sources and qualifications.
Estimate a release day separately
Monthly totals hide the operational pressure of a sudden release. Write two scenarios: the normal month and a release month with repeated downloads. Capacity may barely change while transfer doubles. The calculator estimates charges, not whether a service will sustain the required throughput. Test that separately and do not infer it from a low cost.
Make range requests and resume support part of your client test. Interrupt a download and verify that it can resume correctly. Check checksums after completion, and keep a trusted manifest. Consider how old versions will remain addressable when a new release becomes available.
Plan an exit before launch
Estimate the bytes needed to move the complete library elsewhere, then decide how application URLs can survive that move. Owning the delivery hostname and keeping storage keys separate from public paths can reduce migration work. Do not assume a one-time migration waiver without checking eligibility and the current provider process.
For routine budgets, track delivered bytes, successful downloads and failed or partial requests as separate quantities. A change in their ratio is worth investigating before it becomes a surprise invoice. Read the egress and request guide for the difference between the two meters, then adjust the download preset to match your library.