OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  Send Me My Files:支持短期签名 URL 的 R2 文件上传工具

Send Me My Files:支持短期签名 URL 的 R2 文件上传工具

 
  desktop ·  2026-02-15 18:05:37 · 3 次点击  · 0 条评论  

名称: 发送我的文件 - 使用短期签名 URL 上传至 R2
描述: 将文件上传至 Cloudflare R2、AWS S3 或任何 S3 兼容存储,并生成可配置过期时间的、安全的预签名下载链接。
摘要: 基于 TypeScript 的 MCP 技能,用于将文件上传至云存储(R2、S3、MinIO),并生成安全的临时下载链接。支持多存储桶配置、交互式引导,默认过期时间为 5 分钟。


发送我的文件 - 使用短期签名 URL 上传至 R2

将文件上传至 Cloudflare R2 或任何 S3 兼容存储,并生成预签名下载链接。

功能特性

  • 上传文件到 R2/S3 存储桶
  • 生成预签名下载 URL(过期时间可配置)
  • 支持任何 S3 兼容存储(R2、AWS S3、MinIO 等)
  • 多存储桶配置
  • 自动检测文件内容类型

配置

创建 ~/.r2-upload.yml 配置文件(或设置 R2_UPLOAD_CONFIG 环境变量):

# 默认存储桶(未指定存储桶时使用)
default: my-bucket

# 存储桶配置
buckets:
  my-bucket:
    endpoint: https://abc123.r2.cloudflarestorage.com
    access_key_id: 你的访问密钥
    secret_access_key: 你的秘密密钥
    bucket_name: my-bucket
    public_url: https://files.example.com  # 可选:自定义域名
    region: auto  # 对于 R2,使用 "auto"

  # 其他存储桶
  personal:
    endpoint: https://xyz789.r2.cloudflarestorage.com
    access_key_id: ...
    secret_access_key: ...
    bucket_name: personal-files
    region: auto

Cloudflare R2 设置步骤

  1. 前往 Cloudflare 控制台 → R2
  2. 创建一个存储桶
  3. 进入 R2 API 令牌页面:https://dash.cloudflare.com/<账户_ID>/r2/api-tokens
  4. 创建一个新的 API 令牌
    • 重要: 应用于特定存储桶(选择你的存储桶)
    • 权限:对象读写
  5. 复制访问密钥 ID 和秘密访问密钥
  6. 使用端点格式:https://<账户_id>.r2.cloudflarestorage.com
  7. 设置 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
# 返回: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  # 单位:秒

生成公开 URL(无需签名)

r2-upload /path/to/file.pdf --public

可用工具

  • r2_upload - 上传文件并获取预签名 URL
  • r2_list - 列出最近上传的文件
  • r2_delete - 删除文件

环境变量

  • R2_UPLOAD_CONFIG - 配置文件路径(默认:~/.r2-upload.yml
  • R2_DEFAULT_BUCKET - 覆盖默认存储桶
  • R2_DEFAULT_EXPIRES - 默认过期时间(秒)(默认:300,即 5 分钟)

注意事项

  • 除非使用 --key 指定,否则上传的文件将以其原始文件名存储。
  • 自动添加 UUID 前缀以防止文件名冲突(例如:abc123/file.pdf)。
  • 根据文件扩展名自动检测内容类型。
  • 预签名 URL 在配置的持续时间后过期。
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor