✓ Verified 💻 Development ✓ Enhanced Data

Cloudflare R2

Upload files to Cloudflare R2 storage using wrangler CLI.

Rating
4.9 (216 reviews)
Downloads
5,008 downloads
Version
1.0.0

Overview

Upload files to Cloudflare R2 storage using wrangler CLI.

Complete Documentation

View Source →

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

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

Quick Upload

Single file:

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

Batch upload:

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

Manual Commands

bash
# 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:

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

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

Installation

Terminal bash

openclaw install cloudflare-r2
    
Copied!

💻Code Examples

}

.txt
## Quick Upload

Single file:

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

wrangler-r2-object-delete-bucketpathtofilepng---remote.txt
## Public URL

After upload, files are accessible at:
example.json
{
  "bucket": "your-bucket-name",
  "accountId": "your-account-id",
  "publicDomain": "pub-xxx.r2.dev",
  "apiToken": "your-api-token"
}
example.sh
# 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

Tags

#coding_agents-and-ides #cli

Quick Info

Category Development
Model Claude 3.5
Complexity One-Click
Author xiaoyaner0201
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install cloudflare-r2