r2-upload — скилл для Claude Code: загрузка файлов и установка
Загружает файлы в Cloudflare R2, AWS S3 и совместимые хранилища, затем создаёт временную ссылку на скачивание. Пригодится, когда нужно передать файл по ссылке с ограниченным сроком действия.
npx skills add zebbern/claude-code-guide --skill r2-upload -a claude-codeЧто делает r2-upload
Скилл загружает файл в выбранный бакет и возвращает подписанную ссылку с заданным сроком действия. Можно указать бакет, путь хранения и время жизни ссылки; имя файла по умолчанию сохраняется, а UUID-префикс снижает риск совпадения имён. Тип содержимого определяется по расширению.
В комплекте есть инструменты r2_upload, r2_list и r2_delete: загрузить файл, посмотреть последние загрузки или удалить файл. Настройки хранятся в ~/.r2-upload.yml; путь к конфигурации можно задать через R2_UPLOAD_CONFIG. Для работы нужны endpoint бакета, ключ доступа и секретный ключ: без этих учётных данных загрузка не выполнится. Для Cloudflare R2 в примере конфигурации используется регион auto.
Какие задачи решает
- загрузить файл в бакет Cloudflare R2 или S3
- выдать временную ссылку на скачивание
- сохранить файл по заданному ключу
- посмотреть последние загрузки
- удалить файл из хранилища
Примеры запросов агенту
- Загрузи
report.pdfв бакет и верни временную ссылку на скачивание. - Отправь
build.zipв бакетpersonalи сохрани его под ключомreleases/build.zip. - Покажи последние загруженные файлы, затем удали
old-backup.zip.
Как установить r2-upload
1Через Skills CLI (Vercel)
npx skills add zebbern/claude-code-guide --skill r2-upload -a claude-code2Вручную: положить файлы
~/.claude/skills/r2-upload/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/r2-upload/
1Через Skills CLI (Vercel)
npx skills add zebbern/claude-code-guide --skill r2-upload -a codex2Вручную: положить файлы
.agents/skills/r2-upload/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add zebbern/claude-code-guide --skill r2-upload -a cursor2Вручную: положить файлы
.cursor/skills/r2-upload/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install zebbern/claude-code-guide r2-upload2Вручную: положить файлы
.github/skills/r2-upload/SKILL.md1Через Skills CLI (Vercel)
npx skills add zebbern/claude-code-guide --skill r2-upload -a gemini-cli2Командой платформы
gemini skills install https://github.com/zebbern/claude-code-guide --path skills/r2-uploadВручную: положить файлы
.devin/skills/r2-upload/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add zebbern/claude-code-guide --skill r2-upload -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о r2-upload
Как установить r2-upload в Claude Code?
Выполните npx skills add zebbern/claude-code-guide --skill r2-upload -a claude-code, затем используйте файл ~/.claude/skills/r2-upload/SKILL.md.
Что делает r2-upload?
Загружает файлы в R2, S3 или совместимое хранилище и создаёт подписанные ссылки на скачивание с настраиваемым сроком действия.
Что нужно настроить для работы r2-upload?
Создайте ~/.r2-upload.yml с endpoint, ключом доступа, секретным ключом и именем бакета. Несколько бакетов можно задать в одной конфигурации.
Исходный текст
SKILL.md · MIT
---
name: r2-upload
description: "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."
summary: TypeScript-based MCP skill for uploading files to cloud storage (R2, S3, MinIO) with secure, temporary download links. Features multi-bucket support, interactive onboarding, and 5-minute default expiration.
---
# 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
3. Go to R2 API Tokens: `https://dash.cloudflare.com/<ACCOUNT_ID>/r2/api-tokens`
4. Create a new API token
- **Important:** Apply to specific bucket (select your bucket)
- Permissions: Object Read & Write
5. Copy the Access Key ID and Secret Access Key
6. Use endpoint format: `https://<account_id>.r2.cloudflarestorage.com`
7. Set `region: auto`
### AWS S3 Setup
```yaml
aws-bucket:
endpoint: https://s3.us-east-1.amazonaws.com
access_key_id: ...
secret_access_key: ...
bucket_name: my-aws-bucket
region: us-east-1
```
## Usage
### Upload a file
```bash
r2-upload /path/to/file.pdf
# Returns: https://files.example.com/abc123/file.pdf?signature=...
```
### Upload with custom path
```bash
r2-upload /path/to/file.pdf --key uploads/2026/file.pdf
```
### Upload to specific bucket
```bash
r2-upload /path/to/file.pdf --bucket personal
```
### Custom expiration (default: 5 minutes)
```bash
r2-upload /path/to/file.pdf --expires 24h
r2-upload /path/to/file.pdf --expires 1d
r2-upload /path/to/file.pdf --expires 300 # seconds
```
### Public URL (no signature)
```bash
r2-upload /path/to/file.pdf --public
```
## Tools
- `r2_upload` - Upload file and get presigned URL
- `r2_list` - List recent uploads
- `r2_delete` - Delete a file
## Environment Variables
- `R2_UPLOAD_CONFIG` - Path to config file (default: `~/.r2-upload.yml`)
- `R2_DEFAULT_BUCKET` - Override default bucket
- `R2_DEFAULT_EXPIRES` - Default expiration in seconds (default: 300 = 5 minutes)
## Notes
- Uploaded files are stored with their original filename unless `--key` is specified
- Automatic UUID prefix added to prevent collisions (e.g., `abc123/file.pdf`)
- Content-Type automatically detected from file extension
- Presigned URLs expire after the configured duration
© zebbern · MIT · zebbern/claude-code-guide