Why Mounting Cloudflare R2 on macOS Is a Smart Move
Working directly on Cloudflare R2 buckets through Finder beats fighting with curl, the Wrangler CLI, or third-party S3 browsers. A mounted drive streams objects on demand, so you can browse a multi-terabyte R2 bucket without filling your Mac's SSD. And because the mount is just a folder, every macOS app — Preview, Pages, VS Code, Photoshop — sees R2 as a native location.
- 🧩 Native Finder Integration — Your Cloudflare R2 bucket shows up as a regular folder and a mounted Finder volume, so any macOS app can open and save into it without Wrangler or a third-party S3 browser.
- 💾 No SSD Hostage Situation — R2 buckets often hold large archives or media libraries. Mounting streams files on demand, so even a multi-TB bucket only spends Mac disk space on the files you actually open.
- ⚡ Real-Time Access to Cloud Files — Objects uploaded from a Worker, another teammate, or your CI pipeline appear in your mounted folder after the next poll cycle.
- 🛡️ Read-Only Mode for Safety — R2 is often used as a CDN origin or content archive. Mount read-only and Finder will block any accidental writes or deletes outright.
- 💸 Zero Egress Fees and a 10 GB Free Tier — Cloudflare R2 famously charges $0 for egress, with Standard storage at $0.015 per GB-month and 10 GB-month free. That makes R2 one of the cheapest clouds to mount and actually use.
How Mounting a Cloud Drive Works (and Why It's Different from Sync)
Traditional sync tools — including rclone sync — copy every object in your R2 bucket down to your hard disk and keep both sides matched. That's fine for tiny buckets, but it's a non-starter when you have hundreds of gigabytes or files you only open once a quarter.
Mounting flips the model. OurClone presents your Cloudflare R2 bucket as a virtual filesystem — the object key hierarchy is visible right away, but file contents are only fetched when you actually open something. Frequently used objects are cached locally for instant repeat access, and writes are pushed back to R2 in the background using standard S3-compatible PUTs.
OurClone makes both the polling interval (how often it checks Cloudflare R2 for remote changes) and the maximum cache size configurable, plus a read-only switch for extra safety on production CDN origins.
- 🚀 Stream files on demand — no need to download the whole drive
- 💾 Saves Mac disk space by caching only what you actually open
- 🔁 Two-way sync — edits in the mounted folder push back to Cloudflare R2
- 🛡️ Read-only mode prevents accidental writes when you only need to browse
What to Know Before You Mount Cloudflare R2
A little planning before you click Mount will save you from cleaning up a messy mount point later.
- 📁 Pick the Right Mount Source — You can mount a specific R2 prefix (say
/images/2026) for focused access, or mount the entire bucket for full Finder browsing. A narrower prefix usually feels snappier. - 🖥️ Choose a Sensible Local Mount Point — Use a dedicated, empty folder like
~/CloudMounts/R2. Don't aim it at your Desktop or any folder that already has files — the mount will hide whatever was there. - 🔒 Read-Only vs Read-Write — Read-only is the safer pick when R2 is serving a public site or CDN origin. Pick read-write if you need to upload or edit. Remember: read-only mode literally cannot upload — Save dialogs will fail.
- ⏱️ Set a Reasonable Polling Interval — Lower intervals catch remote changes faster but ring up more Class A operations (LIST). For Cloudflare R2, a 30–60 second interval is usually a good balance, especially since R2 charges per-operation.
- 💽 Plan Your Cache Size — A bigger cache makes repeat opens snappy and avoids paying Class B (GET) operation costs over and over. A few GB is plenty for documents; bump it up if you regularly reopen large media.
How to Mount Cloudflare R2 on macOS with OurClone
OurClone makes mounting Cloudflare R2 on macOS refreshingly painless. Step 1 uses R2 API tokens (Cloudflare's flavor of S3 access keys) plus your account-specific endpoint — and from there you're four clicks away from a Finder-ready volume.
- 🔐 Connect to Cloudflare R2 via Access Keys — Open OurClone and go to
Add Storage. Choose the Cloudflare R2 provider from the S3 list, then fill in your Remote Name, Access Key ID and Secret Access Key (create these in the Cloudflare R2 dashboard under Manage R2 API Tokens). You'll also need to enter your account-specific Endpoint, in the formathttps://<Account ID>.r2.cloudflarestorage.com— your Account ID is in the right sidebar of the Cloudflare dashboard. Once entered, OurClone will verify your credentials and Cloudflare R2 will appear as a connected storage backend. - 📂 Open the Mount Tab and Click New Mount — Once Cloudflare R2 is connected, go to the
Mounttab in OurClone. Click the New Mount button in the top-right corner to open the mount configuration dialog. - ⚙️ Configure the Mount Settings — In the dialog, pick Cloudflare R2 as the authorized source. Choose what to mount — a specific bucket prefix (e.g.,
/images/2026) or the entire bucket. Then pick a local folder as the mount point (something like~/CloudMounts/R2). Choose Read-only if you just want to browse, or Read-write if you need to upload and edit. Optionally tweak the polling interval (how often OurClone checks R2 for changes) and max cache size. Click Mount to finish. - 🗂️ Use Your Cloudflare R2 Mount Like a Local Folder — Open the local folder you picked as the mount point. macOS now treats it as a mounted volume — you can browse, open, create folders, drag in files, and delete items just like any local folder. For example, create a new
backupfolder inside and drop in a few photos. OurClone uploads them to your R2 bucket in the background as standard S3-compatible objects. - ✅ Confirm the Sync on Cloudflare R2 — Switch back to OurClone and open your Cloudflare R2 storage from the file browser — your new
backupfolder and uploaded photos should already be listed. For extra peace of mind, log in to the Cloudflare R2 dashboard and confirm the objects appeared in your bucket too.
The combination of R2's S3-compatible API and OurClone's mount engine gives you a Cloudflare R2 bucket that genuinely feels like a local volume on macOS — no Wrangler, no full-bucket sync, and crucially, no egress bills.
Getting the Most Out of Your Cloudflare R2 Mount
A live mount is convenient, but R2 charges per-operation, so a little tuning pays off. Keep these in mind once your Cloudflare R2 mount is up and running.
- 🔁 Edits Sync Both Ways — Anything you add, rename, or delete in the mounted folder propagates to Cloudflare R2. Changes uploaded from other clients appear after the next poll cycle.
- 🛑 Read-Only Means Read-Only — If you mounted with read-only permissions, drag-and-drop uploads and Save dialogs will fail silently or with a permissions error. Remount as read-write to enable uploads.
- 💽 Cache Lives on Your Mac — Recently opened files are cached locally to avoid repeated R2 GET operations. If your Mac is low on disk space, reduce the max cache size in the mount settings.
- ⏱️ Polling Interval Affects Freshness (and Cost) — A short polling interval picks up remote changes faster but rings up more Class A LIST operations. For Cloudflare R2, a 30–60 second interval is usually a good balance.
- 🔌 Unmount Cleanly Before Sleep — If you put your Mac to sleep with the mount active, OurClone will reconnect automatically on wake. For long absences, click Unmount in the Mount tab to release the volume.
When Your Mount Stops Working
Most mount failures trace back to one of a few causes: a rotated or revoked R2 API token (Cloudflare lets you scope and rotate tokens freely, but the old ones stop working immediately), a wrong account-specific endpoint, a typo in the Account ID, or a mount point that's no longer empty. If your Cloudflare R2 mount returns 403 or signature errors, regenerate the token in the R2 API tokens dashboard, update the credentials and endpoint under Add Storage, and remount.
Verify the Sync Anytime
Any time you're unsure whether an object made it up, you have two easy checks: open the Cloudflare R2 storage view inside OurClone's file browser, or log straight into the Cloudflare R2 dashboard. Whatever Finder shows in your mount point should match — and if it doesn't, give it a poll cycle and check again.