Install
openclaw skills install r2-storageCloudflare R2 Storage management — setup, upload, download, sync via rclone
openclaw skills install r2-storageCloudflare R2 Storage management using rclone.
curl -fsSL https://rclone.org/install.sh | sudo bash
Set R2_CONFIG in dashboard with this JSON format:
{
"access_key_id": "YOUR_ACCESS_KEY_ID",
"secret_access_key": "YOUR_SECRET_ACCESS_KEY",
"endpoint": "https://YOUR_ACCOUNT_ID.r2.cloudflarestorage.com",
"bucket": "your-bucket-name"
}
Get credentials from Cloudflare:
https://<account_id>.r2.cloudflarestorage.com# Quick setup
r2-setup --config '{"access_key_id":"...","secret_access_key":"...","endpoint":"...","bucket":"..."}'
Or run interactively:
./skills/r2/scripts/setup.sh
r2-upload /path/to/file.txt # Upload single file
r2-upload /path/to/folder/ # Upload folder contents
r2-upload /path/to/file.txt --bucket other-bucket # Upload to specific bucket
r2-download file.txt /local/path/ # Download single file
r2-download folder/ /local/ # Download folder
r2-download file.txt # Download to current dir
r2-ls # List bucket contents
r2-ls my-bucket # List specific bucket
r2-ls --long # Long format with sizes
r2-sync /local/folder/ r2:bucket/ # Local → R2
r2-sync r2:bucket/ /local/folder/ # R2 → Local
r2-sync /local/ r2:bucket/ --delete # Mirror (delete extra files on dest)
r2-rm file.txt # Delete single file
r2-rm folder/ # Delete folder contents
r2-purge my-bucket # Delete all files in bucket
./skills/r2/scripts/show-creds.sh # Human-readable
./skills/r2/scripts/show-creds.sh --raw # JSON format for UI
# Copy files
rclone copy /local/file.txt r2:bucket/
# Sync with progress
rclone sync /local/ r2:bucket/ -P
# Check disk usage
rclone size r2:bucket
~/.config/r2/config.json (or dashboard R2_CONFIG)~/.config/rclone/rclone.confr2Token lacks permissions. Update API token in Cloudflare with:
Create the bucket first:
rclone mkdir r2:bucket-name
R2_CONFIGrequired