用途:将文件上传至 Cloudflare R2、AWS S3 或任意兼容 S3 的对象存储(如 MinIO),并生成安全的限时预签名下载链接。
主要能力:上传文件到 R2/S3 存储桶;生成可配置有效期的预签名下载 URL;支持任意 S3 兼容存储;支持多存储桶配置;自动检测 Content-Type;上传时文件名前自动添加 UUID 前缀以防止冲突;默认返回带签名链接,也可生成不带签名的公开链接。
配置:创建 ~/.r2-upload.yml,或通过 R2_UPLOAD_CONFIG 环境变量指定配置文件路径。配置包含 default 默认存储桶及 buckets 下的各存储桶(endpoint、access_key_id、secret_access_key、bucket_name、可选的 public_url 自定义域名、region;R2 使用 region: auto)。Cloudflare R2 需在控制台创建存储桶与 R2 API Token(权限为 Object Read & Write,限定指定存储桶),使用 https://<account_id>.r2.cloudflarestorage.com 格式的 endpoint。AWS S3 使用对应区域 endpoint 与区域名。
使用方式:r2-upload /path/to/file.pdf 上传文件;--key 指定路径;--bucket 指定存储桶;--expires 设置有效期(默认 5 分钟,支持 24h、1d、300 等格式);--public 生成无签名公开链接。另提供 r2_upload(上传并获取预签名 URL)、r2_list(列出最近上传)、r2_delete(删除文件)等工具。环境变量包括 R2_UPLOAD_CONFIG、R2_DEFAULT_BUCKET、R2_DEFAULT_EXPIRES。
适用场景:需要将文件上传到对象存储并临时分享下载链接的场合,例如临时分发文件、配合自动化流程获取带时效的下载地址。
限制:预签名 URL 在设定的有效期后失效;除文中说明外,未提供其他定价、平台或权限细节。