Cloudflare R2 Object Storage: Pricing, Features & Comparison with B2 · Wasabi 2026
Contents
What Is Cloudflare R2 and Why Does It Matter?
Cloudflare R2 is an S3-compatible object storage service designed to compete directly with AWS S3. The defining feature: R2 charges zero egress fees — no matter how much data users download from your bucket. Compare this to AWS S3, which charges $0.09/GB for egress from US East, or Google Cloud Storage at $0.08/GB.
Since Cloudflare operates one of the world's largest CDN networks (300+ cities), data stored in R2 is automatically served from the nearest edge node to each user — combining fast delivery with zero bandwidth cost.
R2 reached General Availability in 2022 and has matured significantly since. In 2026, it's used in production by companies of all sizes — from solo developers serving static assets to enterprises storing petabytes of media.
Object Storage vs Block Storage vs File Storage
Understanding the distinctions helps choose the right tool:
- Object Storage (R2, S3, B2) — flat key-value store accessed via HTTP API; ideal for static assets, backups, media, logs
- Block Storage (EBS, DigitalOcean Volumes) — raw disk attached to VMs; required for databases and applications needing low-latency random I/O
- File Storage (NFS, SMB) — shared filesystem; ideal for team collaboration or legacy apps expecting a mounted drive
R2 fits workloads that store large numbers of files accessed via HTTP — not workloads requiring database-level I/O performance.
Cloudflare R2 Pricing 2026
Data sourced from developers.cloudflare.com/r2/pricing as of September 2026. Always verify current pricing before making decisions.
| Item | Standard Storage | Infrequent Access |
|---|---|---|
| Storage | $0.015/GB-month | $0.010/GB-month |
| Egress bandwidth | Free (unlimited) | Free + $0.01/GB retrieval |
| Class A Ops (PUT, POST, LIST) | $4.50/million requests | $9.00/million requests |
| Class B Ops (GET, HEAD) | $0.36/million requests | $0.90/million requests |
| Delete / Abort multipart | Free | Free |
| Minimum storage duration | None | 30 days |
Real-World Cost Example: Mid-Size E-Commerce
Scenario: 200 GB of product images, 1 TB egress/month, 500K Class A ops, 20M Class B ops:
- Storage: 200 GB × $0.015 = $3.00
- Egress (1 TB): $0.00
- Class A (500K): 0.5 × $4.50 = $2.25
- Class B (20M): 20 × $0.36 = $7.20
- Total: ~$12.45/month
The equivalent on AWS S3 US East would be roughly $107/month (storage + egress + operations) — R2 saves approximately 88% in this scenario.
R2 Free Tier — Full Details
Every month, R2 includes a free tier for Standard Storage:
- 10 GB storage per month
- 1,000,000 Class A operations per month
- 10,000,000 Class B operations per month
- Egress: unlimited and free
The free tier suits personal projects, static sites, and proof-of-concept testing. You must attach a credit card to your Cloudflare account before using R2, even if you stay within the free tier. Usage above limits is billed pay-as-you-go with no monthly minimum.
Cloudflare R2 vs Backblaze B2 vs Wasabi: Full Comparison 2026
Pricing sourced from official provider websites, September 2026. Verify before purchasing.
| Provider | Storage/GB-mo | Egress | API Operations | Free Tier |
|---|---|---|---|---|
| Cloudflare R2 | $0.015 (Standard) $0.010 (IA) |
Free — unlimited | $4.50/M (A) $0.36/M (B) |
10 GB/month |
| Backblaze B2 | ~$0.0068 ($6.95/TB) |
Free up to 3× stored data Free via Cloudflare CDN |
A/B/C: Free D: $0.004/10K calls |
10 GB forever free |
| Wasabi | ~$0.0078 ($7.99/TB) |
Free (no egress fees) | Free (no API fees) | Free trial (see site) |
| DigitalOcean Spaces | $5/mo incl. 250 GB ($0.02/GB overage) |
1 TB/mo included ($0.01/GB overage) |
Included in plan | None |
Backblaze B2 + Cloudflare Bandwidth Alliance
B2 participates in Cloudflare's Bandwidth Alliance, meaning egress from B2 to Cloudflare CDN is free. This makes a B2 + Cloudflare CDN combination very competitive — you get B2's lower storage cost (~$6.95/TB) with Cloudflare's free delivery.
The trade-off versus R2: B2 requires setting up a Cloudflare CDN pull zone to get the free egress benefit, while R2 is natively integrated — no extra configuration needed.
Wasabi: The 90-Day Minimum Storage Caveat
Wasabi's no-egress, no-API-fee positioning is attractive, but the 90-day minimum storage duration is a critical consideration. Deleting a file before 90 days still results in charges through the full 90-day period.
For workloads with frequent file turnover — logs, temp files, user uploads with short retention — Wasabi's minimum storage duration may eliminate its cost advantage. Verify current terms at wasabi.com before committing.
R2 Use Cases: What Is It Best For?
1. Static Website Assets
Websites already using Cloudflare CDN can store images, JS bundles, CSS, fonts, and videos in R2 and serve them from Cloudflare's edge automatically — with zero egress cost regardless of traffic volume. This is particularly valuable for image-heavy sites or media platforms where egress costs on S3 would be substantial.
2. WordPress Media Offloading
Plugins like WP Offload Media support R2 via S3-compatible endpoints. Configure the custom endpoint to point to your R2 bucket, and WordPress automatically stores all uploaded media in R2 instead of your hosting disk — reducing disk usage and serving files faster through Cloudflare's CDN.
3. VPS and Server Backups
R2's S3 compatibility means existing backup scripts — using rclone, s3cmd, or AWS CLI — work without modification. Change the endpoint URL and credentials, and backups flow to R2 with zero egress charges when you restore them.
4. Cloudflare Workers Native Storage
R2 offers native binding for Cloudflare Workers, enabling Edge functions to read and write bucket contents without an additional HTTP request. This enables use cases like on-the-fly image resizing, authenticated file serving, and user-generated content storage at minimal latency.
5. Log and Data Archiving
R2 Infrequent Access ($0.010/GB/month) is well-suited for application logs, audit trails, and analytics raw data that must be retained for months but accessed infrequently. Unlike true cold storage, IA files are accessible immediately when needed — no restore job required.
6. Database Backups
Automated database dumps (MySQL, PostgreSQL, MongoDB) stored on R2 benefit from zero egress when downloaded for restoration, disaster recovery testing, or data migration — a scenario where S3 egress fees can add up quickly.
Getting Started with Cloudflare R2
Step 1: Create a Bucket
Log in to Cloudflare Dashboard → select your Account → click R2 Object Storage in the left navigation → click Create bucket → enter a bucket name (lowercase letters, numbers, hyphens) → select Location hint (Automatic is fine for most use cases) → click Create.
Step 2: Generate an API Token
Dashboard → Manage Account → API Tokens → Create Token → select the "R2 Token" template → set permissions:
- Account: R2 Storage — Read (for reads)
- Account: R2 Storage — Edit (for writes and deletes)
Save the Access Key ID and Secret Access Key — they are shown only once.
Step 3: Connect with Python (boto3)
import boto3
s3 = boto3.client(
's3',
endpoint_url='https://ACCOUNT_ID.r2.cloudflarestorage.com',
aws_access_key_id='ACCESS_KEY_ID',
aws_secret_access_key='SECRET_ACCESS_KEY',
region_name='auto'
)
# Upload a file
s3.upload_file('photo.jpg', 'my-bucket', 'images/photo.jpg')
# List bucket contents
response = s3.list_objects_v2(Bucket='my-bucket')
for obj in response.get('Contents', []):
print(obj['Key'], obj['Size'])
Step 4: Enable Public Access
For publicly readable files: Bucket Settings → enable Allow public access → you receive a URL like https://pub-XXXX.r2.dev/images/photo.jpg.
For a custom domain: Bucket Settings → Custom Domains → Add domain → Cloudflare automatically configures the CNAME record if your domain is on Cloudflare.
Configuring rclone with R2
rclone is the most common tool for syncing files between cloud storage providers. R2 support is built in via the S3-compatible backend:
[r2]
type = s3
provider = Cloudflare
access_key_id = ACCESS_KEY_ID
secret_access_key = SECRET_ACCESS_KEY
endpoint = https://ACCOUNT_ID.r2.cloudflarestorage.com
acl = private
Save to ~/.config/rclone/rclone.conf, then use standard rclone commands:
# Sync local directory to R2
rclone sync /var/backups/ r2:my-bucket/backups/ --progress
# List bucket contents
rclone ls r2:my-bucket
# Automated nightly backup cron
0 2 * * * /usr/bin/rclone sync /var/backups/ r2:my-bucket/daily/ --log-file /var/log/rclone.log
Cloudflare R2: Pros and Cons
Advantages
- Zero egress fees — the clearest cost advantage over S3, GCS, and Azure Blob
- S3-compatible API — migrate from S3 by changing one endpoint URL; all existing SDKs and tools work
- Cloudflare ecosystem integration — native binding for Workers, Pages, and Cache
- Global CDN included — content served from 300+ edge locations automatically
- 10 GB free tier — usable for real workloads without any upfront cost
- Pay-as-you-go — no minimum commitment, no reserved capacity required
- Automatic replication — data replicated across multiple data centers by default
Disadvantages
- Higher storage cost than B2/Wasabi — $0.015/GB vs ~$0.007/GB; low-traffic, high-storage workloads are cheaper elsewhere
- Class A operation cost — $4.50/million is significant for write-heavy workloads
- Cloudflare account required — credit card must be attached even for free tier
- No customer-managed encryption keys — encryption is managed by Cloudflare, not AWS KMS-style
- No explicit SLA published — unlike S3's 11 nines durability guarantee, Cloudflare does not publish a specific R2 SLA
- IA 30-day minimum — Infrequent Access storage has a 30-day minimum to calculate carefully
Which Object Storage Should You Choose?
| Situation | Best Choice | Reason |
|---|---|---|
| High-traffic site using Cloudflare CDN | R2 | Zero egress maximizes savings |
| Large cold backup archive, low reads | B2 | Cheapest storage at ~$6.95/TB |
| Object storage without Cloudflare, API-heavy | Wasabi | No egress or API fees (watch 90-day min) |
| Simple setup with CDN included | DO Spaces | $5/mo flat for 250 GB + 1 TB egress |
| Developer testing / small project | R2 Free | 10 GB free with unlimited egress |
Want object storage with a simple flat-rate plan? DigitalOcean Spaces starts at $5/month including 250 GB and 1 TB egress.
View DigitalOcean SpacesFrequently Asked Questions
Related Guides
Pricing data as of September 2026 — verify current rates directly with each provider before making a decision.