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.

SourcesDestinations
Amazon S3
Amazon S3
Microsoft Azure Blob Storage
Azure Blob
Google Cloud Storage
GCS
SFTP
SFTP
Akamai Linode Object Storage
Linode
Amazon S3
Amazon S3
Azure Blob
Microsoft Azure Blob Storage
GCS
Google Cloud Storage
Files.com Agent
Files.com Agent
Linode
Akamai Linode Object Storage
Cloudflare R2Cloudflare R2

The 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.

Into Cloudflare R2

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.

Out of Cloudflare R2

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.

Scope:Mover uses the credential you provide and nothing more. Scope the R2 API token to the specific bucket you're migrating, with read or write permissions as appropriate.

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.

Migrating into Cloudflare R2

Provider side

Free

plus a few dollars in Class A ops

Mover

$0.15 / GB

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.

Migrating out of Cloudflare R2

Provider side

Free

no cap, no fair-use limit

Mover

$0.15 / GB

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.

Mover fees
10 TB pack
$1,499
R2 inbound
inbound is free
$0
Class A operations
PUT/list operations
~$5
Total
$1,499

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.

01

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.

02

Choose source and destination buckets.

Apply filters and a date range if you want a partial migration.

03

Run a dry-run.

Mover walks the source bucket, counts files, sizes the transfer, and produces an exact cost estimate.

04

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.