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

🔐 安全上传·限时分享·多云兼容

安全可靠的文件上传工具,支持 Cloudflare R2、AWS S3 及兼容存储,自动生成带签名的限时下载链接,默认5分钟过期保障数据安全。

收藏
14.7k
安装
3k
版本
1.0.4
CLS 安全性认证2026-06-04
点击查看完整报告 >

使用说明

核心用法

本技能是一个基于 TypeScript 的 MCP 工具,用于将文件上传至云存储服务并生成安全、有时效限制的下载链接。支持 Cloudflare R2、AWS S3 以及任何 S3 兼容的存储服务(如 MinIO)。用户通过 YAML 配置文件管理多桶配置,执行上传后可获得自动生成的预签名 URL,默认 5 分钟后失效。

主要功能

  • 多平台兼容:原生支持 R2、S3、MinIO 等 S3 兼容存储
  • 智能路径管理:自动添加 UUID 前缀防止文件名冲突,保留原始文件名
  • 灵活过期控制:支持 --expires 参数自定义链接有效期(5分钟到数天)
  • 内容类型自动识别:根据文件扩展名自动设置 Content-Type
  • 多桶管理:通过配置文件支持多个存储桶快速切换

显著优点

1. 安全性设计:预签名 URL 机制确保文件不公开暴露,过期即失效
2. 零运维成本:R2 提供免费出口流量,适合个人和小团队

3. 配置简洁:单 YAML 文件管理所有凭证和桶配置

4. 交互式引导:首次使用提供清晰的 R2/S3 配置指引

潜在局限

  • 依赖凭证安全:Access Key 和 Secret Key 需妥善保管,泄露风险高
  • 无服务端加密说明:文档未提及客户端加密或 SSE 支持
  • 单点故障:配置文件损坏或丢失会导致服务中断
  • 地域限制:R2 目前仅支持 Cloudflare 全球节点,部分区域访问延迟可能较高

适合人群

  • 需要临时安全分享文件的技术团队
  • 使用 Cloudflare 生态的开发者
  • 寻求低成本对象存储替代方案的个人用户
  • 构建内部文件流转系统的运维人员

常规风险

  • 凭证泄露风险:YAML 文件以明文存储密钥,需严格设置文件权限(建议 600)
  • 链接传播风险:虽然有过期时间,但一旦链接被截获,在有效期内仍可下载
  • 配置错误风险:错误的 endpoint 或 region 可能导致上传失败或数据写入非预期位置
  • 无审计日志:内置工具未提供操作审计功能,难以追踪谁上传了哪些文件

安全解读

核心用法

Send Me My Files 是一款基于MCP协议的TypeScript文件上传工具,专为需要安全、临时文件共享的场景设计。核心工作流:

1. 配置存储桶:在 ~/.r2-upload.yml 中配置R2/S3/MinIO等S3兼容存储的访问凭证
2. 执行上传:通过CLI或MCP工具调用,支持自定义路径、指定存储桶、设置过期时间

3. 获取链接:自动生成带签名的临时下载URL(默认5分钟有效期),可选公开永久链接

关键特性

  • 多桶管理:支持default+多个命名桶,通过 --bucket 参数切换
  • 智能防冲突:自动添加UUID前缀(如 abc123/file.pdf)避免覆盖
  • 灵活过期:支持 --expires 24h1d、秒数等多种格式
  • 自动检测:根据文件扩展名推断Content-Type

显著优点

| 维度 | 优势 |
|------|------|
| **安全性** | 预签名URL限时失效(默认5分钟),凭证本地0600权限存储,无硬编码密钥 |
| **兼容性** | 支持Cloudflare R2、AWS S3、MinIO等所有S3兼容存储 |
| **易用性** | 交互式引导配置、多桶支持、CLI与MCP双模式 |
| **可信度** | 官方AWS SDK,零CVE漏洞,T2级可信组织维护 |

潜在缺点与局限性

1. 凭证明文存储:配置文件中access_key/secret_key为明文,虽设0600权限但仍依赖系统安全
2. 无上传大小限制:未内置文件大小校验,超大文件可能导致意外费用

3. 路径遍历风险:用户输入路径未显式验证,存在潜在../../../攻击面(需结合具体调用场景评估)

4. 依赖网络可达:需存储服务端点可访问,内网/隔离环境需自行部署MinIO等

适合人群

  • 开发者/运维:需要临时分享日志、构建产物、配置文件
  • 内容创作者:安全分发大文件素材,避免永久链接泄露风险
  • 企业团队:多桶隔离(开发/生产/个人),统一凭证管理
  • 隐私敏感用户:拒绝第三方网盘,自建R2/S3存储的完全控制

常规风险

| 风险类型 | 说明 | 缓解措施 |
|----------|------|----------|
| **凭证泄露** | 配置文件被窃取 | 设置0600权限,使用R2细粒度令牌(限定单桶),定期轮换 |
| **URL滥用** | 签名URL在有效期内被转发 | 缩短过期时间(如 `--expires 60`),敏感文件用一次性链接 |
| **费用失控** | 超大文件/高频上传 | 配置R2/S3生命周期策略,监控用量,建议添加上传大小限制 |
| **配置错误** | 误用生产桶/公开URL | 明确区分default桶,生产环境禁用 `--public` 选项 |

> 安全认证结论:CLS-Certify v2.1.0 全维度扫描通过,静态分析95分,无危险函数、无硬编码密钥、无遥测行为,综合评分85分(S级)。

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

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