r2-upload SKILL.md skillA
r2-upload from zebbern/claude-code-guide is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add zebbern/claude-code-guide/r2-upload@git:20261030.b4ce602Pins git:20261030.b4ce602 in mdr.lock. Pin the fingerprint instead.
- Audit grade
- A, 17 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- zebbern/claude-code-guide
- Path
skills/r2-upload/SKILL.md- Versions recorded
- 2
- Latest version
- git:20261030.b4ce602, committed Oct 30, 2026
- First version recorded
- May 31, 2026
- Size
- 3,523 bytes
- Repository stars
- 4,700
- License
- MIT
Upload files to Cloudflare R2, AWS S3, or any S3-compatible storage (like MinIO) and generate secure, time-limited presigned download links with configurable expiration, typically set to 5 minutes. Use when the user needs to upload a file to cloud storage and get a shareable link, or mentions R2, S3, presigned URLs, temporary links, or file uploads with expiration.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# 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 configurations
buckets:
my-bucket:
endpoint: https://abc123.r2.cloudflarestorage.com
access_key_id: your_access_key
secret_access_key: your_secret_key
bucket_name: my-bucket
public_url: https://files.example.com # Optional: custom domain
region: auto # For R2, use "auto"
# Additional buckets
personal:
endpoint: https://xyz789.r2.cloudflarestorage.com
access_key_id: ...
secret_access_key: ...
bucket_name: personal-files
region: auto
```
### Cloudflare R2 Setup
1. Go to Cloudflare Dashboard → R2
2. Create a bucket
…Read the whole file at its exact version.
How to install
mdr add zebbern/claude-code-guide/r2-upload@sha256:86114a0a76c0e49cThe line at the top of this page pins the label git:20261030.b4ce602, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_rk5qf7ukvmwozugv)
5 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 2 versions of this file, between May 31, 2026 and Oct 30, 2026, about one every 151 days.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20261030.b4ce602 latest | 2026-10-30 | b4ce602 | 3,523 B | A | view · diff |
| git:20260531.164971d | 2026-05-31 | 164971d | 3,546 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (3523 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
zebbern/claude-code-guide · 4,700 stars · license MIT · pushed 2026-11-07 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_rk5qf7ukvmwozugv GET https://markdownregistry.com/api/v1/resolve?ref=zebbern/claude-code-guide/r2-upload GET https://markdownregistry.com/api/v1/blob/86114a0a76c0e49c73ab6bf037f46cd5bbe40e533f242d0cff811ef639541713
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.