Send Me My Files - R2 upload with short lived signed urls

☁️ 一键上传,秒级生成安全分享链接

支持 Cloudflare R2 及各类 S3 兼容存储的文件上传工具,可生成限时预签名下载链接,适合开发者快速搭建文件托管服务。

收藏
11.4k
安装
3k
版本
1.0.0
CLS 安全性认证2026-07-01
点击查看完整报告 >

使用说明

核心功能

R2/S3 Upload Skill 是一款面向开发者的命令行文件上传工具,支持将文件上传至 Cloudflare R2、AWS S3、MinIO 等任何 S3 兼容对象存储,并自动生成预签名下载 URL。

主要用法

  • 基础上传r2-upload /path/to/file.pdf 自动上传并返回带签名的临时下载链接
  • 自定义路径:通过 --key 参数指定存储路径,如 uploads/2026/file.pdf
  • 多桶管理:支持在配置文件中定义多个 bucket,用 --bucket 切换
  • 过期控制:链接有效期支持秒、分钟、小时、天等多种格式(默认5分钟)
  • 公开链接--public 生成无签名的永久访问 URL(需存储桶已配置公共访问)

配置特点

采用 YAML 配置文件管理多桶凭证,支持环境变量覆盖默认路径,内置 UUID 前缀防重名冲突,自动识别文件 MIME 类型。

显著优点

  • 厂商兼容性强:一套工具覆盖 R2、S3、MinIO、Wasabi 等主流存储
  • 临时链接安全:预签名 URL 避免文件长期暴露,适合分享敏感内容
  • Cloudflare 生态整合:R2 无出口流量费,成本优势明显
  • 命令简洁:单条命令完成上传+链接生成,适合脚本集成

潜在局限

  • 依赖本地明文存储的访问密钥,存在凭证泄露风险
  • 预签名链接一旦分享即可能扩散,缺乏访问审计能力
  • 不支持上传前压缩、加密等预处理
  • 无 Web 管理界面,纯命令行操作对非技术用户门槛较高

适合人群

开发者、DevOps 工程师、需要自建文件托管服务的中小企业技术团队,尤其已使用 Cloudflare 生态的用户。

常规风险

  • 凭证安全:配置文件若权限设置不当,可能导致密钥被其他用户读取
  • 链接泄露:预签名 URL 在有效期内可被任意持有方下载,无撤回机制
  • 成本失控:误配置为公开桶或长过期时间可能导致意外流量消耗
  • 区域延迟:未配置自定义域名时,R2 默认端点可能非最优 CDN 节点

安全解读

核心用法

R2/S3 Upload Skill 是一个 MCP (Model Context Protocol) 服务器工具,主要实现三个核心功能:

1. 文件上传 (r2_upload): 读取本地文件并上传至配置的 R2/S3 bucket,自动检测 MIME 类型,使用 UUID 前缀防止文件名冲突
2. 预签名链接生成: 基于 AWS SDK 的 getSignedUrl 生成带签名的临时下载链接,默认 5 分钟有效期,支持自定义过期时间(秒/h/d 单位)

3. 文件管理 (r2_list, r2_delete): 列出 bucket 文件列表、删除指定对象

配置采用 YAML 文件(默认 ~/.r2-upload.yml),支持多 bucket 管理,每个 bucket 可独立配置 endpoint、凭证、region、可选的自定义域名。通过环境变量 R2_UPLOAD_CONFIG 可覆盖配置路径,R2_DEFAULT_BUCKETR2_DEFAULT_EXPIRES 可调整默认行为。

显著优点

  • 云厂商中立: 兼容 Cloudflare R2、AWS S3、MinIO 等任意 S3 兼容存储
  • 安全设计: 凭证与代码分离存储,预签名 URL 避免凭证泄露,UUID 前缀防覆盖
  • 灵活配置: 多 bucket 支持、自定义路径 (--key)、公开/私有 URL 切换、过期时间灵活设置
  • 自动化: 自动检测 Content-Type,自动处理路径前缀,降低使用门槛
  • MCP 原生: 作为 MCP Server 运行,与 Claude Desktop 等客户端无缝集成

潜在缺点与局限性

  • 本地文件依赖: 需读取本地文件系统权限,无法直接处理内存/流式数据
  • 配置管理负担: YAML 配置文件需手动维护,凭证泄露风险由用户承担(建议文件权限 600)
  • 无服务端缓存: 每次上传直传云端,大文件受限于本地带宽
  • 功能边界清晰但有限: 无图片处理、无 CDN 刷新、无生命周期管理等高级功能
  • 预签名 URL 限制: 过期后需重新生成,无永久公开链接的自动化管理

适合人群

  • 需要临时文件托管的开发者(分享日志、截图、小文件)
  • 使用 Cloudflare R2 替代 S3 以降低 egress 成本的个人/团队
  • 已搭建 MinIO 私有存储且希望 MCP 工具集成的自建用户
  • 需要在 AI 对话中快速生成可分享链接的场景(Claude Desktop + R2 组合)

常规风险

| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| 凭证泄露 | YAML 配置文件含 Access Key/Secret Key | 文件权限 600,不提交 Git,使用专用最小权限令牌 |
| 意外公开 | `--public` 标志生成无签名 URL | 确认 bucket 访问策略,避免敏感文件误公开 |
| 预签名 URL 过期 | 默认 5 分钟,接收方可能错过窗口 | 合理设置 `--expires`,重要文件考虑 bucket 公开策略 |
| 配置错误上传至错误 bucket | 多 bucket 场景下 `--bucket` 参数误用 | 明确 default bucket,生产环境禁用测试 bucket |
| 依赖供应链 | AWS SDK、MCP SDK 需持续更新 | 关注 CVE,定期执行 `pnpm update` |

安全认证显示该 Skill 获得 S 级 评分(95 分),无恶意代码、无硬编码密钥、依赖包无已知漏洞,属于可信组织 (T2) 维护的开源工具。

Send Me My Files - R2 upload with short lived signed urls 内容

src文件夹
手动下载zip · 33.9 kB
index.tstext/plain
请选择文件