Back up Android photos to Cloudflare R2 — step-by-step

Updated May 2026 · ~10 minutes

TL;DR.

Enable R2 on your Cloudflare account, create a bucket, mint a scoped R2 API token, paste the access key, secret, account ID, and bucket name into Breazzy. Cost: $1.50 per 100 GB per month; egress is free forever. First 10 GB per month are free.

What you need

Step 1 — Enable R2 on your account

  1. Log into the Cloudflare dashboard.
  2. In the left sidebar, click R2 Object Storage.
  3. If this is the first time, you will see a banner asking you to enable R2. Click Purchase R2 (the wording is misleading — you only pay if you exceed the free tier) and add a payment method.

Step 2 — Create an R2 bucket

  1. On the R2 overview page, click Create bucket.
  2. Pick a bucket name. R2 names are scoped to your account, so photos or breazzy is fine.
  3. Under Location, choose Automatic (Cloudflare places it close to your traffic) or pin a jurisdiction (EU / FedRAMP) if you have a compliance reason.
  4. Click Create bucket.

Step 3 — Find your account ID and endpoint

On the R2 overview page (the top-level R2 page, not the bucket details), look for the Account ID in the right-hand sidebar. It is a 32-character hex string. The S3-compatible endpoint Breazzy needs is constructed from it:

https://<account-id>.r2.cloudflarestorage.com

Breazzy will build the full URL from the account ID you paste, so you only need to copy the ID itself.

Step 4 — Create a scoped R2 API token

  1. On the R2 overview page, click Manage R2 API Tokens (top right).
  2. Click Create API token.
  3. Token name: breazzy-phone.
  4. Under Permissions, choose Object Read & Write.
  5. Under Specify bucket(s), choose Apply to specific buckets only and select the bucket you created. Do not grant account-wide access.
  6. Leave TTL empty (or set one if you want the token to auto-expire).
  7. Click Create API Token.

Cloudflare shows the Access Key ID and Secret Access Key exactly once. Copy both before leaving the page. The Account ID is shown again on this same screen for convenience.

Step 5 — Configure Breazzy and start syncing

  1. Open Breazzy, tap Add destination.
  2. Pick Cloudflare R2.
  3. Fill in:
    • Account ID — the 32-char hex string from step 3.
    • Access Key — the Access Key ID from the token.
    • Secret Key — the Secret Access Key from the token.
    • Bucket — the bucket name from step 2.
  4. Tap Test connection.
  5. Tap Save, then start your first backup from the Photos tab.

Cloudflare-specific gotchas

Verifying your photos

From the Cloudflare dashboard, click into the bucket — you will see your photos listed as objects with their original filenames. From a desktop, you can use rclone with the R2 backend or any S3 client pointed at https://<account-id>.r2.cloudflarestorage.com with the same access key and secret.

Frequently asked

What does Cloudflare R2 cost for 100 GB of photos?

$1.50 per month for storage, $0 for egress, plus negligible operation fees. The first 10 GB stored per month are free. Verified May 2026.

Can I serve photos from R2 publicly?

Yes — R2 supports public buckets and custom domains. Breazzy itself only needs private access. If you want a public family album, attach a Worker or enable public access on a separate prefix.

Does R2 have a free tier?

Yes: 10 GB storage, 1M Class A operations, 10M Class B operations per month. Enough to test Breazzy on a small album before deciding.

What if I cancel R2?

Download your bucket (egress is free) with rclone or the Cloudflare CLI, then delete the bucket. Your photos do not depend on Breazzy or Cloudflare to remain readable.