r2-upload
r2-upload is a TypeScript MCP skill for uploading files to Cloudflare R2, AWS S3, or any S3-compatible storage service. It automatically generates secure, time-limited presigned URLs for downloads with customizable expiration—defaulting to 5 minutes—and supports multiple bucket configurations with automatic content-type detection.
r2-upload lets you upload files to cloud storage and instantly get secure temporary download links.
AI-generated summary based on this skill's SKILL.md
Install
zebbern/claude-code-guide/r2-upload · repository language: Python
git clone https://github.com/zebbern/claude-code-guide
cp -r claude-code-guide/skills/r2-upload ~/.claude/skills/r2-uploadFrequently asked questions
AI-generated answers based on this skill's SKILL.md and metadata
How do I upload a file to an R2 bucket?
r2-upload handles file uploads to Cloudflare R2, AWS S3, or any S3-compatible storage service. You provide the file content, specify your bucket and object key, and r2-upload manages the upload automatically. The skill supports multiple bucket configurations, so you can switch between different storage endpoints as needed for your workflow.
Can r2-upload create presigned URLs for S3?
Yes, r2-upload generates secure presigned URLs for S3 and S3-compatible services like Cloudflare R2 and MinIO. These URLs grant temporary download access without requiring permanent credentials. You can customize the expiration time for each URL; r2-upload defaults to 5 minutes if you don't specify otherwise.
What is a temporary download link and how does r2-upload generate one?
r2-upload creates time-limited download links by generating presigned URLs with configurable expiration periods. These secure temporary links allow you to share files without exposing your storage credentials. The skill automatically handles URL generation and expiration management, making it easy to share files that self-destruct after a set time.
Does r2-upload support uploading to MinIO storage?
r2-upload supports any S3-compatible storage service, including MinIO. You configure the storage endpoint, access credentials, and bucket details, and r2-upload handles uploads and presigned URL generation the same way it does for AWS S3 and Cloudflare R2. This flexibility lets you use r2-upload across multiple storage backends.
How does r2-upload handle file sharing with expiration time?
r2-upload combines file uploads with automatic presigned URL generation to enable secure temporary file sharing. After uploading your file, it generates a download link with your chosen expiration window. The skill detects content types automatically and manages all credential handling, so shared links work immediately without additional configuration.
What license does r2-upload use?
r2-upload is released under the MIT license, allowing free use, modification, and distribution in both open-source and commercial projects with minimal restrictions.
SKILL.md
rendered from the published skill — quoted content, verbatim
Send Me My Files - R2 Upload with Short Lived Signed URLs
Upload files to Cloudflare R2 or any S3-compatible storage and generate presigned download links.
Features
- Upload files to R2/S3 buckets
- Generate presigned download URLs (configurable expiration)
- Support for any S3-compatible storage (R2, AWS S3, MinIO, etc.)
- Multiple bucket configurations
- Automatic content-type detection
Configuration
Create ~/.r2-upload.yml (or set R2_UPLOAD_CONFIG env var):
```yaml
Default bucket (used when no bucket specified)
default: my-bucket
Bucket
(truncated - see the full file via the links below)
Read as markdown · JSON record · Browse the source repository
File tree — 11 files
skills/r2-upload/CLAWDHUB.md
skills/r2-upload/README.md
skills/r2-upload/SECURITY.md
skills/r2-upload/SKILL.md
skills/r2-upload/_meta.json
skills/r2-upload/example-config.yml
skills/r2-upload/package.json
skills/r2-upload/pnpm-lock.yaml
skills/r2-upload/src/index.ts
skills/r2-upload/src/onboard.ts
skills/r2-upload/tsconfig.json