r2-upload

GitHub

支持上传文件至 Cloudflare R2、AWS S3 等兼容存储,并生成带过期时间的预签名下载链接。提供多桶配置及文件管理工具。

skills/r2-upload/SKILL.md zebbern/claude-code-guide

触发场景

需要上传文件到云存储 请求生成临时分享链接或预签名 URL 提及 R2、S3、MinIO 或文件过期链接

安装

npx skills add zebbern/claude-code-guide --skill r2-upload -g -y
更多选项

不安装直接使用

npx skills use zebbern/claude-code-guide@r2-upload

指定 Agent (Claude Code)

npx skills add zebbern/claude-code-guide --skill r2-upload -a claude-code -g -y

安装 repo 全部 skill

npx skills add zebbern/claude-code-guide --all -g -y

预览 repo 内 skill

npx skills add zebbern/claude-code-guide --list

SKILL.md

Frontmatter
{
    "name": "r2-upload",
    "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.",
    "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."
}

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):

# 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

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

Setup

This skill is a stdio MCP server, not a shell command (there is no r2-upload binary). Build it once and register it with Claude Code:

cd "${CLAUDE_SKILL_DIR}" && npm install && npm run build
claude mcp add r2-upload -- node "${CLAUDE_SKILL_DIR}/dist/index.js"

Run npm run onboard in the same folder to create ~/.r2-upload.yml interactively.

Tools

  • r2_upload - Upload file_path and return a presigned URL. Optional: key (custom object path), bucket, expires (300, 24h, 1d; default 5m), public (unsigned URL, needs a public bucket), content_type
  • r2_list - List files in a bucket (bucket, prefix, max_keys)
  • r2_delete - Delete a file by key
  • r2_generate_url - Generate a new presigned URL for an existing key

Environment Variables

  • R2_UPLOAD_CONFIG - Path to config file (default: ~/.r2-upload.yml)
  • R2_DEFAULT_BUCKET - Override default bucket

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

版本历史

  • 2b927dd 当前 2026-11-03 00:58

    修复损坏的引用,移除不可再分发的文件,更新 r2-upload 说明以修正从其他平台复制的错误指令。

  • 1ed99ef 2026-07-25 05:53

同 Skill 集合

skills/academic-paper-reviewer/SKILL.md
skills/active-directory-attacks/SKILL.md
skills/api-fuzzing-bug-bounty/SKILL.md
skills/api-shape-explorer/SKILL.md
skills/audit-flow/SKILL.md
skills/authentication-patterns/SKILL.md
skills/aws-penetration-testing/SKILL.md
skills/broken-authentication/SKILL.md
skills/burp-suite-testing/SKILL.md
skills/caching/SKILL.md
skills/chart-image/SKILL.md
skills/cloud-penetration-testing/SKILL.md
skills/code-documenter/SKILL.md
skills/code-to-diagram/SKILL.md
skills/composition-patterns/SKILL.md
skills/cross-examine/SKILL.md
skills/cv-tailor/SKILL.md
skills/data-viz-renderer/SKILL.md
skills/database-optimizer/SKILL.md
skills/database-scout/SKILL.md
skills/dataset-quality-audit/SKILL.md
skills/deep-module-refactor/SKILL.md
skills/design-system-builder/SKILL.md
skills/dev-guide-generator/SKILL.md
skills/ethical-hacking-methodology/SKILL.md
skills/file-path-traversal/SKILL.md
skills/html-injection-testing/SKILL.md
skills/http-load-profiler/SKILL.md
skills/idor-testing/SKILL.md
skills/linux-privilege-escalation/SKILL.md
skills/linux-shell-scripting/SKILL.md
skills/localization-toolkit/SKILL.md
skills/log-error-digest/SKILL.md
skills/metasploit-framework/SKILL.md
skills/network-101/SKILL.md
skills/nextjs-developer/SKILL.md
skills/pdf/SKILL.md
skills/pentest-checklist/SKILL.md
skills/pentest-commands/SKILL.md
skills/pipeline-blueprint/SKILL.md
skills/playwright/ci/SKILL.md
skills/playwright/core/SKILL.md
skills/playwright/migration/SKILL.md
skills/playwright/playwright-cli/SKILL.md
skills/playwright/pom/SKILL.md
skills/playwright/SKILL.md
skills/privilege-escalation-methods/SKILL.md
skills/project-sizing-guide/SKILL.md
skills/r3f-animation/SKILL.md

元信息

文件数
0
版本
2b927dd
Hash
86114a0a
收录时间
2026-07-25 05:53

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-11-03 16:54
浙ICP备14020137号-1