Cloudflare R2

Upload files to Cloudflare R2 storage using wrangler CLI. Use when needing to upload images, videos, or files to R2 for CDN hosting, or manage R2 bucket contents. Triggers on "upload to R2", "upload to Cloudflare", "上传到R2", "存到CDN".

kbarbel640-del Updated 1 repo stars

File contents

Cloudflare R2

Upload and manage files in Cloudflare R2 storage buckets.

Prerequisites

  • wrangler CLI: npm install -g wrangler
  • R2 config at ~/.config/cloudflare/r2.json

Config Format

{
  "bucket": "your-bucket-name",
  "accountId": "your-account-id",
  "publicDomain": "pub-xxx.r2.dev",
  "apiToken": "your-api-token"
}

Quick Upload

Single file:

scripts/r2-upload.sh <local-file> [remote-path]

Batch upload:

scripts/r2-upload.sh <directory> <remote-prefix>

Manual Commands

# Set credentials
export CLOUDFLARE_ACCOUNT_ID="$(jq -r .accountId ~/.config/cloudflare/r2.json)"
export CLOUDFLARE_API_TOKEN="$(jq -r .apiToken ~/.config/cloudflare/r2.json)"
BUCKET=$(jq -r .bucket ~/.config/cloudflare/r2.json)

# Upload
wrangler r2 object put "$BUCKET/path/to/file.png" --file local.png --remote

# List objects
wrangler r2 object list $BUCKET --prefix "path/" --remote

# Delete
wrangler r2 object delete "$BUCKET/path/to/file.png" --remote

Public URL

After upload, files are accessible at:

https://<publicDomain>/<remote-path>

Example: https://pub-xxx.r2.dev/article/image.png

kbarbel640-del/skills/tree/main/skills/dongsjoa-byte/cloudflare-r2 commit 2c9a95a60c

Frequently asked questions

npx skillmds@latest add kbarbel640-del/cloudflare-r2