Best Object Storage for Video and Image Websites
Your site stores a 1 GB video once and serves it thousands of times a month. Which object storage keeps that delivery bill low: R2, B2 or S3?

- Cloudflare R2 is the default for egress-heavy images; Backblaze B2 is the low-cost origin; S3 wins deep AWS integration.
- Video needs transcoding and delivery, not just a cheap bucket.
- Model storage, read operations, transformations and egress separately.
Object storage prices are quoted per gigabyte stored. Media websites usually pay for a different event: the same gigabyte being read and delivered many times. That is why the cheapest bucket can create the largest bill.
Storage price is only the first column
| Service | Core advantage | Main risk |
|---|---|---|
| AWS S3 | Ecosystem, regions, storage classes | Transfer and request complexity |
| Cloudflare R2 | No internet egress fee | Operation charges still apply |
| Backblaze B2 | Low storage price | Delivery path must be designed |
| Bunny Storage/CDN | Integrated media delivery | More platform-specific workflow |
| Managed image/video product | Transform or transcode included | Higher unit price |
R2 wins repeated public delivery
R2 standard storage is $0.015 per GB-month and internet egress is free. Class A and Class B operations remain billable, so millions of tiny image reads are not literally free. Pairing R2 with cache rules can make the transfer curve unusually predictable.
B2 wins cheap origin storage
Backblaze B2 starts around $6.95 per TB-month and is attractive for masters, backups and an origin behind a CDN. It becomes especially compelling when most objects are stored cheaply and delivered through a compatible partner or limited download allowance.
S3 wins architecture, not the simple bill
S3 has mature lifecycle rules, replication, permissions, event triggers and integrations throughout AWS. A team already using Lambda, CloudFront, MediaConvert and IAM may save more engineering time than it pays in storage. A standalone image site often finds the egress model harder to justify.
Images and video are different products
Images need resizing, format conversion and cache variants. Video needs ingest, transcoding, manifests, adaptive bitrate and a player. Storing an uploaded MP4 in a bucket does not create a reliable streaming service. Managed image and video products package those pipelines at a higher but more complete unit cost.
A simple cost test
For 1TB stored and 10TB delivered monthly, storage is the smaller number. R2 removes the 10TB internet-egress line while B2 and S3 depend on the delivery route and allowances. For 10TB stored and 100GB delivered, low storage price and lifecycle policy become more important than free egress.
The decision
Choose R2 for a public image site with heavy reads, B2 for inexpensive masters and backup, and S3 when AWS events and governance are part of the product. Use a managed video platform unless transcoding and streaming operations are already an in-house capability.