This article contains affiliate links. We may earn a commission if you sign up through our links, at no extra cost to you. All pricing data sourced directly from provider websites.
Cloud Storage Guide · September 2026

Cloudflare R2 Object Storage: Pricing, Features & Comparison with B2 · Wasabi 2026

By CloudPicked Review Team · Updated September 2026
Cloudflare R2 Object Storage pricing and setup guide 2026

Contents

  1. What is R2 and why does it matter?
  2. Cloudflare R2 Pricing 2026
  3. Free Tier Details
  4. R2 vs Backblaze B2 vs Wasabi Comparison
  5. Use Cases
  6. Getting Started with R2
  7. Configuring rclone with R2
  8. Pros and Cons
  9. Which Object Storage Should You Choose?
  10. FAQ

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.

"Zero egress means your bill doesn't spike when traffic surges — a guarantee AWS S3 still can't match."

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:

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.

ItemStandard StorageInfrequent Access
Storage$0.015/GB-month$0.010/GB-month
Egress bandwidthFree (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 multipartFreeFree
Minimum storage durationNone30 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:

The equivalent on AWS S3 US East would be roughly $107/month (storage + egress + operations) — R2 saves approximately 88% in this scenario.

R2's cost advantage grows with traffic volume. High-egress workloads see the biggest savings. Low-traffic, high-storage workloads (like cold archives) may actually be cheaper on B2 or Wasabi.

R2 Free Tier — Full Details

Every month, R2 includes a free tier for Standard Storage:

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.

ProviderStorage/GB-moEgressAPI OperationsFree 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:

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

Disadvantages

Which Object Storage Should You Choose?

SituationBest ChoiceReason
High-traffic site using Cloudflare CDNR2Zero egress maximizes savings
Large cold backup archive, low readsB2Cheapest storage at ~$6.95/TB
Object storage without Cloudflare, API-heavyWasabiNo egress or API fees (watch 90-day min)
Simple setup with CDN includedDO Spaces$5/mo flat for 250 GB + 1 TB egress
Developer testing / small projectR2 Free10 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 Spaces

Frequently Asked Questions

How much does R2 free storage include?
10 GB storage per month, 1M Class A operations, 10M Class B operations, and unlimited egress — all at no charge. Credit card attachment is required even within the free tier.
Is Cloudflare R2 truly S3-compatible?
Yes. R2 supports the full AWS S3 API. Any library or tool that targets S3 (boto3, aws-sdk-js, rclone, s3cmd, Cyberduck) works by changing only the endpoint URL and credentials.
R2 vs Backblaze B2: which is cheaper?
Depends on your traffic-to-storage ratio. B2 wins on storage cost (~$0.0068/GB vs $0.015/GB). R2 wins on total cost for high-egress workloads. For cold backup with minimal retrieval, B2 is almost always cheaper.
What is Wasabi's minimum storage duration?
Wasabi enforces a 90-day minimum storage duration per object. Files deleted before 90 days are still billed until the minimum is reached. This makes Wasabi less suitable for short-lived files or frequent object churn.
Can I use R2 with WordPress?
Yes. WP Offload Media and similar plugins support custom S3 endpoints. Point the plugin to your R2 bucket endpoint to automatically offload WordPress media uploads from your hosting disk.
Does rclone work with Cloudflare R2?
Yes. Configure rclone with type=s3 and provider=Cloudflare, then set your R2 endpoint URL and API credentials. All rclone commands (sync, copy, ls, delete) work exactly as with standard S3.

Pricing data as of September 2026 — verify current rates directly with each provider before making a decision.