← All sync guides

Sync guide

How to Migrate from Wasabi to Cloudflare R2 (and Avoid Surprise Fees)

Learn how to transfer buckets and files from Wasabi to Cloudflare R2 on your Mac — through the web consoles, with OurClone's Migrate tool, or with the rclone command line — plus the Wasabi billing rules to check before you delete anything.

Cloud transfer Local data path rclone GUI
Overview

Wasabi and Cloudflare R2 are both S3-compatible and both skip the classic egress bill, but they charge in very different ways: Wasabi bills a flat rate per terabyte with a 1 TB minimum and a 90-day minimum storage duration, while R2 bills per gigabyte with a free tier and serves files straight onto Cloudflare's network. This guide covers three ways to move your Wasabi data into R2, from the web consoles to a scripted rclone run.

Wasabi and Cloudflare R2 Bill You Differently

On a feature list the two look almost identical — S3 API, buckets, access keys, no egress line on the invoice. The differences only show up in how each one charges and what sits in front of your files.

🟢 Wasabi

Wasabi is "hot" object storage at one flat price, aimed at backups, archives and media libraries that mostly sit still.

  • Pay-as-you-go starts at $7.99 per TB per month, with no separate charges for egress or API requests.
  • Every account is billed for at least 1 TB of active storage, even if you store less.
  • Pay-as-you-go objects have a 90-day minimum storage duration: delete an object after 15 days and you still pay for the other 75 as "deleted storage".
  • Free egress comes with a reasonable-use rule — monthly downloads should stay at or below the amount you store.

🟠 Cloudflare R2

Cloudflare R2 is object storage built into Cloudflare's network, priced per gigabyte and designed for data that people and apps actually download.

  • Standard storage costs $0.015 per GB-month, and egress is free whether files are read through the S3 API, Workers or an r2.dev URL.
  • You pay per operation instead: $4.50 per million writes (Class A) and $0.36 per million reads (Class B).
  • Every month includes 10 GB-month of storage, 1 million Class A and 10 million Class B requests for free.
  • Buckets can be served on your own domain through Cloudflare's cache, or read directly from Workers.
Wasabi (pay-as-you-go)Cloudflare R2 (Standard)
Storage price$7.99 / TB-month$0.015 / GB-month
Minimum bill1 TB of storageNone — 10 GB-month free
Minimum storage duration90 daysNone (30 days on Infrequent Access)
EgressFree within reasonable useFree
API requestsNot chargedCharged per million

Prices from Wasabi and Cloudflare as of November 2026; check both pages before you decide.

When the Move to R2 Makes Sense

Per terabyte stored, Wasabi is the cheaper of the two. People move anyway when the shape of their usage changes.

  • 🌐 Your files are downloaded a lot — Product images, video, installers or game assets can easily be read more often than they're stored. That pushes past Wasabi's reasonable-use rule, while R2 egress stays free at any volume.
  • 🪶 You store far less than a terabyte — With 200 GB in Wasabi you still pay for 1 TB. The same 200 GB on R2 Standard comes to about $3 a month, before request costs.
  • ⚙️ Your site already runs on Cloudflare — Keeping the bucket next to your DNS, cache and Workers means one dashboard and no extra origin to configure.
  • 🧹 Lots of short-lived files — Build artifacts or temporary exports deleted within days still cost 90 days on Wasabi. R2 Standard has no minimum duration.

Method 1: Download from Wasabi, Upload Through the R2 Dashboard

Both consoles have a file browser, which is enough for a handful of objects. They're built for browsing, though, not for moving whole buckets.

  1. 📥 Download from Wasabi — Sign in to the Wasabi console, open the bucket, select the objects and download them to a folder on your Mac.
  2. 📤 Upload to R2 — In the Cloudflare dashboard, go to R2, create the destination bucket (or open an existing one) and drag the files in.

Everything passes through your disk, nothing resumes if a tab closes, and the R2 dashboard is meant for smaller uploads — large files are better sent through the S3 API, which is what the next two methods use.

Method 2: Transfer Wasabi to Cloudflare R2 with OurClone

OurClone connects to both services with their S3 keys and copies objects from one bucket to the other on your Mac, with live progress. Data flows through your own internet connection — there's no third-party relay — so a wired connection helps for big buckets.

Before you start, create the destination bucket in the R2 dashboard, and give your R2 API token Object Read & Write access to it.

  • 🔑 Step 1: Add Wasabi as the Source — In the Wasabi console, open Access Keys and create a new key pair. In OurClone, go to the Add tab, search for wasabi and pick Wasabi. Enter a Remote Name (here wasabi), the Access Key ID and Secret Access Key, then choose the Endpoint that matches the region your bucket lives in — s3.wasabisys.com is us-east-1, and a bucket in Amsterdam uses s3.eu-central-1.wasabisys.com. Click Confirm.
  • The Authorize Access to your Wasabi dialog in OurClone with the remote name wasabi and the s3.eu-central-1.wasabisys.com endpoint selected
  • 🔐 Step 2: Add Cloudflare R2 as the Destination — In the Cloudflare dashboard, open R2 → Manage R2 API Tokens and create a token; Cloudflare shows the Access Key ID and Secret Access Key once. Back on OurClone's Add tab, pick Cloudflare R2, enter a Remote Name (here cloudflare-r2) and both keys, and replace <accountid> in the Endpoint with your Account ID: https://<Account ID>.r2.cloudflarestorage.com. Click Confirm.
  • The Authorize Access to your Cloudflare R2 dialog in OurClone with access keys and the account endpoint filled in
  • 🔀 Step 3: Choose the Buckets and a Mode — Open the Migrate tab. In the Source panel, select wasabi and the bucket or folder to move (here studio-assets); in the Destination panel, select cloudflare-r2 and the target bucket. Then pick a mode:
    • Copy — copies the objects to R2; nothing is deleted from Wasabi.
    • Move — copies the objects, then deletes them from the Wasabi bucket.
    • Sync — makes the R2 bucket match the Wasabi one; objects that exist only in R2 are deleted, Wasabi is never changed.
    Click Start Transfer. With Pro, Preview lists what would be copied, overwritten or deleted before anything runs.
  • OurClone Migrate page with wasabi:/studio-assets as the source, cloudflare-r2:/studio-assets as the destination and Copy selected
  • 📊 Check the Task Center — The Task tab shows how many files have been transferred and the speed, then Completed. If some objects fail, they're listed on the task; Run again retries and skips what's already in R2.
  • OurClone Task Center showing the copy from wasabi:/studio-assets to cloudflare-r2:/studio-assets completed with 139 of 139 files transferred

OurClone doesn't test the keys when you click Confirm — a wrong key or endpoint shows up as an error once you open the bucket on the Migrate page. If that happens, delete the connection and add it again with the right values.

Method 3: Transfer Wasabi to Cloudflare R2 with rclone

OurClone runs rclone under the hood, so the same copy works from the Terminal — useful on a server close to both providers, or in a script.

Install rclone

Get it from the rclone downloads page, or run brew install rclone on a Mac.

Set up both remotes

Run rclone config and create two remotes of type s3. The Wasabi remote uses provider Wasabi and your region's endpoint, such as s3.eu-central-1.wasabisys.com. The R2 remote uses provider Cloudflare, region auto and the endpoint https://<Account ID>.r2.cloudflarestorage.com. The rclone S3 docs walk through both.

Run the transfer

# Copy: Wasabi keeps every object
rclone copy wasabi:studio-assets r2:studio-assets --progress

# Move: delete from Wasabi after the copy
rclone move wasabi:studio-assets r2:studio-assets --progress

# Sync: make the R2 bucket match Wasabi (deletes extras in R2)
rclone sync wasabi:studio-assets r2:studio-assets --progress
  • ⚠️ Run move or sync with --dry-run first to see what would change.
  • ⚠️ If your R2 token is limited to one bucket, add --s3-no-check-bucket so rclone doesn't try to create the bucket.
  • ⚠️ Both sets of keys sit in your rclone config file, and errors only appear in the Terminal.

Before You Delete Anything from Wasabi

  • 📅 The 90-day minimum still applies — Moving or deleting objects that are younger than 90 days doesn't stop the bill: Wasabi charges the remaining days as deleted storage. Copy first, and delete the newest data last.
  • 💳 The 1 TB minimum stays until you close the account — Emptying a bucket doesn't drop the bill below 1 TB of storage. Close the Wasabi account once R2 is confirmed.
  • 📶 Watch the egress rule on repeat runs — Wasabi expects monthly downloads to stay at or below what you store. One full copy is that much; copying everything several times in the same month goes beyond it.
  • 🔁 Overwrites count as deletes — Running Sync against a Wasabi bucket that's still being written to replaces objects, and replaced objects fall under the same minimum duration.
  • 🌍 "Access denied" or a wrong-region error — Usually the Wasabi endpoint doesn't match the bucket's region, or the R2 Endpoint still contains <accountid>. Fix the endpoint and add the connection again.

Will Copy or Sync delete my Wasabi data?

No. Only Move deletes from Wasabi. Copy changes nothing there, and Sync only removes extra objects on the R2 side.

Does the transfer go directly from Wasabi to R2?

No — with OurClone or rclone on your Mac, each object is downloaded from Wasabi and uploaded to R2 over your connection. Nothing is stored on your disk, but your bandwidth sets the pace.

Can I keep copying new files across while I switch over?

With Pro, you can save the transfer as a schedule that runs one time, weekly or monthly at a time you pick. Your Mac has to be on when it runs; it isn't continuous sync.

Coming from Amazon S3 or Backblaze B2 instead?

The steps are nearly the same — see Amazon S3 to Cloudflare R2 and Backblaze B2 to Cloudflare R2. To use the bucket like a folder in Finder afterwards, see how to mount Cloudflare R2 on macOS.

Summary

You can move data from Wasabi to Cloudflare R2 by downloading and re-uploading it, with OurClone's Migrate page, or with rclone. OurClone runs the copy on your own Mac with live progress: Copy leaves your Wasabi bucket alone, Move deletes the objects from Wasabi after the transfer, and Sync makes the R2 bucket mirror the Wasabi one. Copy first, check R2, and keep Wasabi's 90-day minimum storage duration in mind before deleting.

Try OurClone free

Connect your clouds, transfer across them, mount remotes as local folders, and create encrypted restic backups from one desktop app.

The macOS download is for Apple Silicon (M1 or later). Using an Intel Mac? Download the Intel version

See Free vs Pro plans →