All Guides
Backup Guide

How to Mount Cloudflare R2 on macOS: Treat Your Cloud Storage Like a Local Folder

Learn how to mount Cloudflare R2 as a local drive on macOS using OurClone — browse, edit and upload cloud files as if they live on your Mac.

Overview

Mounting Cloudflare R2 on macOS turns Cloudflare's zero-egress object storage into a native Finder volume — no AWS CLI tricks, no full-bucket downloads. R2 is S3-compatible, costs $0.015 per GB-month for Standard storage, and charges nothing for egress, and OurClone lets you mount any R2 bucket as a real local folder. This guide walks you through every step, from creating R2 API tokens to dragging files straight into Finder.

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 format https://<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.
  • Add Cloudflare R2 to OurClone
  • 📂 Open the Mount Tab and Click New Mount — Once Cloudflare R2 is connected, go to the Mount tab in OurClone. Click the New Mount button in the top-right corner to open the mount configuration dialog.
  • Open New Mount Dialog in OurClone
  • ⚙️ 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 backup folder inside and drop in a few photos. OurClone uploads them to your R2 bucket in the background as standard S3-compatible objects.
  • Cloudflare R2 Mounted Folder on macOS Finder
  • Confirm the Sync on Cloudflare R2 — Switch back to OurClone and open your Cloudflare R2 storage from the file browser — your new backup folder 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.

Summary

Once you add Cloudflare R2 in OurClone with an Access Key ID, Secret Access Key, and account-specific endpoint, then create a new mount, your R2 bucket shows up as a regular folder on your Mac — drag, drop, edit, and delete just like local files. Pick read-only when you only want to browse, read-write when you want changes to push back to R2, and tune the polling interval and cache size to match how you work. Everything you do in that folder syncs transparently to your Cloudflare R2 bucket.

Questions? [email protected]
↑ Back to Top