Skip to content
Back to skills

Upload Files Cloudflare R2

BSecurity

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\".

  • 19 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 19, 2026
ai-agentsgobashapi

Works with

  • cli
  • api

Security analysis

B80/100
  • criticalSends environment variables or credentials to an external URL
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 2 files and shows the line behind each finding

Scanned September 19, 2026

npx -y skills add rondoflow/rondoflow --skill upload-files-cloudflare-r2 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Upload Files Cloudflare R2?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Upload Files Cloudflare R2
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/rondoflow-upload-files-cloudflare-r2/badge)](https://www.skillsdirectory.com/skills/rondoflow-upload-files-cloudflare-r2)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: upload-files-cloudflare-r2
description: "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\"."
category: "Media"
author: community
version: "1.0.0"
icon: image
---

# 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:
```
https://<publicDomain>/<remote-path>
```

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

Files in this skill

  • SKILL.md1.5 KB
  • manifest.json458 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…