关于 r2-upload
r2-upload 是用于文件上传的命令行工具,可将文件存入 Cloudflare R2 或其他 S3 兼容存储,并生成带有效期的下载链接。它还支持多桶配置及列出、删除文件。
主要功能
- 01上传文件至 R2 或 S3 兼容存储
- 02生成可配置有效期的预签名链接
- 03配置多个存储桶
- 04自动检测内容类型
- 05列出近期上传并删除文件
适用场景
- 01向存储桶上传文件并分享临时下载链接
- 02为不同用途选择已配置的存储桶
- 03设置自定义对象路径或公开链接
- 04查看近期上传并清理文件
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ zebbern/ claude-code-guide --skill r2-upload安装后在 Claude Code 中输入/r2-upload确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
_meta.jsonCLAWDHUB.mdexample-config.ymlpackage.jsonpnpm-lock.yamlREADME.mdSECURITY.mdtsconfig.jsonsrc/index.tsonboard.ts详细介绍
Send Me My Files - 使用短时效签名 URL 上传到 R2
将文件上传到 Cloudflare R2 或任何兼容 S3 的存储,并生成预签名下载链接。
功能
- 将文件上传到 R2/S3 存储桶
- 生成预签名下载 URL(可配置有效期)
- 支持任何兼容 S3 的存储(R2、AWS S3、MinIO 等)
- 支持配置多个存储桶
- 自动检测内容类型
配置
创建 ~/.r2-upload.yml(或设置 R2_UPLOAD_CONFIG 环境变量):
# 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 设置
- 前往 Cloudflare 控制面板 → R2
- 创建存储桶
- 前往 R2 API 令牌:
https://dash.cloudflare.com/<ACCOUNT_ID>/r2/api-tokens - 创建新的 API 令牌
- 重要: 将令牌应用到特定存储桶(选择你的存储桶)
- 权限:对象读写
- 复制 Access Key ID 和 Secret Access Key
- 使用此端点格式:
https://<account_id>.r2.cloudflarestorage.com - 设置
region: auto
AWS S3 设置
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
用法
上传文件
r2-upload /path/to/file.pdf
# Returns: https://files.example.com/abc123/file.pdf?signature=...
使用自定义路径上传
r2-upload /path/to/file.pdf --key uploads/2026/file.pdf
上传到指定存储桶
r2-upload /path/to/file.pdf --bucket personal
自定义有效期(默认:5 分钟)
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
公共 URL(无签名)
r2-upload /path/to/file.pdf --public
工具
r2_upload- 上传文件并获取预签名 URLr2_list- 列出近期上传的文件r2_delete- 删除文件
环境变量
R2_UPLOAD_CONFIG- 配置文件路径(默认:~/.r2-upload.yml)R2_DEFAULT_BUCKET- 覆盖默认存储桶R2_DEFAULT_EXPIRES- 默认有效期,单位为秒(默认:300 = 5 分钟)
注意事项
- 上传的文件会保留原始文件名,除非指定
--key - 自动添加 UUID 前缀以避免冲突(例如:
abc123/file.pdf) - 根据文件扩展名自动检测内容类型
- 预签名 URL 会在配置的有效期后过期
评论
支持 Markdown