PRIVATE DOWNLOAD RELAY

R2 Proxy

把远端资源拉到 Cloudflare R2,再以支持断点续传的链接下载。

连接

主 Token 只保存在当前浏览器会话中。

新建任务

支持任意 HTTP(S) URL、重定向和自定义源站请求头。

未连接
文件完成后保留 24 小时。

任务

进度按完成的 R2 分片更新。

连接后创建第一个下载任务。
REFERENCE

使用帮助

通过网页、REST API 或命令行管理临时下载任务。

01

快速开始

设置服务地址和主 Token,然后创建任务。

鉴权 除健康检查和签名下载链接外,所有 API 都需要 Authorization: Bearer <MASTER_TOKEN>
Shell · 创建任务

返回值中的 job.id 是后续查询、签名、取消和删除操作使用的 JOB_ID

02

查询与 CLI 下载

等待状态变成 ready,再生成临时下载链接。

Shell · 查询状态
export JOB_ID="从创建任务响应中取得的 UUID"

curl --fail-with-body --silent \
  -H "Authorization: Bearer $R2_PROXY_TOKEN" \
  "$R2_PROXY_URL/api/jobs/$JOB_ID" | jq

浏览器 / curl

适合小文件或快速测试,使用一个标准 HTTP 下载连接。

Shell · 生成签名并用 aria2c 下载
SIGNED_URL=$(curl --fail-with-body --silent \
  -X POST \
  -H "Authorization: Bearer $R2_PROXY_TOKEN" \
  "$R2_PROXY_URL/api/jobs/$JOB_ID/sign" | jq -r '.url')

aria2c -c -x 8 -s 8 -k 4M \
  --file-allocation=none \
  "$SIGNED_URL"
依赖 macOS 可运行 brew install aria2 jq。签名链接与文件同时 到期;文件剩余多久,链接就最多有效多久。
Shell · 取消或删除
# 取消正在运行的任务
curl --fail-with-body --silent -X POST \
  -H "Authorization: Bearer $R2_PROXY_TOKEN" \
  "$R2_PROXY_URL/api/jobs/$JOB_ID/cancel" | jq

# 删除任务记录、R2 对象和未完成分片
curl --fail-with-body --silent -X DELETE \
  -H "Authorization: Bearer $R2_PROXY_TOKEN" \
  "$R2_PROXY_URL/api/jobs/$JOB_ID"
03

REST API

响应均为 JSON;删除成功时返回空的 204 响应。

方法 路径 用途
GET /health 无需鉴权的健康检查
POST /api/jobs 创建拉取任务,返回 202
GET /api/jobs 列出全部任务摘要
GET /api/jobs/:id 读取任务进度和 Workflow 状态
POST /api/jobs/:id/sign 生成临时签名下载 URL
POST /api/jobs/:id/cancel 终止任务并清理未完成上传
DELETE /api/jobs/:id 删除任务及其 R2 文件
GET /api/files/:id Bearer 或签名鉴权下载,支持单段 Range
HEAD /api/files/:id 读取文件大小、ETag 和下载元数据
queued probing downloading ready

任一步骤失败会进入 error;主动取消会进入 canceled

04

创建任务字段

POST /api/jobs 接收以下 JSON 对象。

字段 类型 说明
url string 必填,任意绝对 HTTP(S) 资源地址
filename string | null 可选;为空时从 URL 或响应头推断
headers object 可选;发往源站的请求头,例如源站 Authorization
forwardSensitiveHeaders boolean 跨域重定向后是否继续发送敏感请求头,默认 false
JSON · 带源站鉴权
{
  "url": "https://example.com/private/model.safetensors",
  "filename": "model.safetensors",
  "headers": {
    "Authorization": "Bearer <SOURCE_TOKEN>"
  },
  "forwardSensitiveHeaders": false
}
05

安全与保留规则

这个服务按私人下载中转设计。

  • 不要把主 Token、源站 Token 或签名下载链接分享给其他人。
  • 主 Token 只保存在当前浏览器的 sessionStorage
  • 跨域重定向默认移除 AuthorizationCookieProxy-Authorization
  • 文件在任务完成 24 小时后自动从 R2 删除。
  • 下载支持断点续传;无效或超出文件范围的 Range 返回 416。