Cloudflare R2 migrations,
without scripts.
Mover is the data-migration tool from Files.com. One-time moves between 20+ providers — no subscriptions, no surprises, no scripts.
Migrate data to Cloudflare R2 with Mover. R2 is S3-compatible object storage with zero egress fees — no cap, no fair-use limit — and Mover gets you there from any provider you're on now.
Cloudflare R2The egress-killer move
Why R2 migrations happen
R2 customers have one thing in common: they were tired of paying egress. Hundreds of inbound migrations later, that's still the dominant story. Outbound moves exist but they're outliers — usually a compliance or compute-locality requirement R2 doesn't fit.
Zero egress fees, no cap
R2 charges nothing for data going out. There is no fair-use cap, no monthly allowance, no surprise overage. For workloads that serve content to many readers — APIs, media delivery, ML inference caches — this is the single biggest line item you can eliminate from your cloud bill.
Storage cheaper than S3 Standard, expensive against discount alternatives
R2 storage is around $15/TB/month — well below S3 Standard's $23/TB but above Wasabi's $7 or Backblaze's $6. The trade-off: pay more for storage, pay nothing for egress. For read-heavy workloads, the math flips quickly.
S3-compatible API
R2 speaks the S3 API. Existing applications, SDKs, backup tools, and infrastructure-as-code keep working with a credential swap.
Tight integration with Cloudflare's network
R2 lives inside Cloudflare's infrastructure. Pair it with Cloudflare Workers, Cache, or the Cloudflare CDN and the egress-free story extends into delivery — content moves from R2 to your users through Cloudflare without per-byte charges anywhere in the path.
Multi-cloud rebalance to a hyperscaler
Moving primary storage to S3, Azure Blob, or GCS to align with specific compute, analytics, or compliance requirements R2 doesn't target.
Cross-account or cross-bucket reorg
Splitting buckets across Cloudflare accounts or moving between API tokens.
Common pairings
Pair Cloudflare R2 with any cloud.
Cloudflare R2 migrations rarely happen in isolation. These are the providers we pair with most often — one-click setup on either side, same dry-run flow, same audit trail.
Connection
How Mover connects.
Mover connects to Cloudflare the standard way. Provide the credential, nothing more — generate a scoped token if you want minimum-privilege.
R2 API token (S3-compatible)
The standard method. Generate an R2 API token in the Cloudflare dashboard; Mover uses the Access Key ID and Secret Access Key as an S3-style key pair via R2's S3-compatible interface.
The price
The pricing math, honestly.
Mover charges as low as $0.15 / GB when purchasing a 10 TB pack. Your Cloudflare-side cost depends on direction. No invoice math, no surprises — the dry-run shows the exact number before you commit.
Provider side
plus a few dollars in Class A ops
Mover
When purchasing a 10 TB pack
R2 inbound is free. R2 storage lists at around $15/TB/month. R2 also charges small per-operation fees — roughly $4.50 per million Class A operations (writes, lists) and $0.36 per million Class B operations (reads) — that round to a few dollars on most migrations.
Provider side
no cap, no fair-use limit
Mover
When purchasing a 10 TB pack
R2 egress is free. There are no egress fees, no bandwidth caps, no fair-use limits. The only cost when leaving R2 is Mover's fee plus whatever the destination charges for inbound (usually nothing).
Pricing example
10 TB migration into Cloudflare R2
The exact dry-run estimate is the number to trust — it includes both line items, run against your actual data.
The R2 customer is the customer whose cloud bill is dominated by egress, not storage. Media delivery, public APIs, ML inference, anything where many readers pull from one source. For those workloads, R2's higher storage rate is more than offset by removing egress entirely.
Getting started
4 steps to Go.
From credential to first byte in four clicks. The dry-run is free, every time, and shows the exact cost before you commit a byte.
Connect R2.
Paste an R2 API token's Access Key ID and Secret Access Key from the Cloudflare dashboard. Mover validates the credential and lists buckets it can see.
Choose source and destination buckets.
Apply filters and a date range if you want a partial migration.
Run a dry-run.
Mover walks the source bucket, counts files, sizes the transfer, and produces an exact cost estimate.
Launch.
Live progress, automatic retries on transient failures. Pause, resume, or cancel at any time.
Common Questions
Frequently asked.
Most teams launch their first migration in under 15 minutes. The dry run is free, every time.
S3-compatible object storage from Cloudflare, with the headline differentiator that egress is genuinely free — no cap, no fair-use, no bandwidth allowance. R2 lives inside Cloudflare's network, which lets it serve content through Cloudflare Workers, Cache, and the CDN without per-byte transfer fees.
Start the move. finish.
Run a free dry run on your Cloudflare R2 data. See the exact size, file count, and price before you commit a single GB.

