为 Obtainium 等工具打造的 Cloudflare Workers 版本的 GitHub & Uptodown 加速代理。
- 兼容 Obtainium:完全支持 Obtainium 的
GHReqPrefix配置,可正确代理api.github.com的请求,解决诸如gh-proxy等项目遇到 API 就会返回 404 的问题。 - 突破 GitHub API 速率限制:因为安全限制,Obtainium 在开启代理时会自动清除用户输入的 PAT (Personal Access Token),从而导致代理请求是匿名的并极易触发公共服务的 60次/小时 速率限制。本项目支持在 Cloudflare 后台配置
GITHUB_TOKEN环境变量,自动为您的所有代理请求带上您的个人 Token,享受 5000次/小时 的高额度。 - 支持 Uptodown 代理与搜索:新增
/search接口,支持通过包名或 URL 自动抓取 Uptodown 的最新版本和下载链接,并自动通过 Worker 代理下载。 - 安全与资源管控:支持配置 白名单/黑名单、文件大小限制以及 API 访问令牌 (
PROXY_AUTH_TOKEN)。
推荐使用 Wrangler 进行部署,或者直接在 Cloudflare Workers 后台新建一个 Worker,将 src/index.ts 的代码粘贴进去。
# 如果使用命令行部署:
npm install
npm run deploy在 Obtainium 的 GitHub 设置中,找到 GitHub Release 请求前缀 (GHReqPrefix) 选项,填入您的 Worker 域名,不需要 https://,例如:
your-worker-name.your-subdomain.workers.dev
如果您想在 Obtainium 中通过 HTML Webpage 源添加 Uptodown 应用并自动更新,请按照如下步骤配置:
- 添加应用时选择
HTML Webpage作为来源。 - URL 填入我们的代理搜索接口:
https://<your-worker>/search?source=uptodown&app=<package_id_or_url>(例如app=com.whatsapp或直接填入 Uptodown 页面 URL) - 展开底部的高级设置 (Additional Settings):
- 提取版本号的正则表达式 (Version extraction RegEx) 填入:
v([^/]+)\.apk - 筛选自定义来源的 APK 文件链接 (Custom Link Filter RegEx):留空即可。
- 如果您配置了防滥用的
PROXY_AUTH_TOKEN,请在 Request Header (请求头) 中添加:X-Proxy-Auth: <your_token>
- 提取版本号的正则表达式 (Version extraction RegEx) 填入:
在 Cloudflare Workers 后台 -> Settings (设置) -> Variables and Secrets (变量和机密) 中,您可以添加以下变量:
GITHUB_TOKEN: 填入您的 GitHub Personal Access Token (PAT)。强烈建议配置,这可以彻底解决 Obtainium 在使用代理时的速率限制问题。必须创建为机密而不是变量PROXY_AUTH_TOKEN: (Secret) 设置后,访问/search接口必须带上X-Proxy-Auth请求头。SIZE_LIMIT_MB: 限制允许代理下载的最大文件(单位:MB)。超过此大小的请求将被 302 重定向到原 GitHub 地址。填0或不填表示不限制。WHITELIST: 仓库白名单,多个用逗号分隔。例如username1/repo1,username2/repo2。配置后只允许代理这些仓库。BLACKLIST: 仓库黑名单,多个用逗号分隔。配置后这些仓库将被拒绝访问。
注:
WHITELIST和BLACKLIST不能同时为空以达到部分限制的效果;若只需全开,则保留为空即可。
用于获取应用的最新版本和代理下载链接。
- 参数:
source: 目前仅支持uptodownapp: Uptodown 的应用包名 (如com.whatsapp) 或完整 URL
- 请求头:
X-Proxy-Auth: (可选) 如果配置了PROXY_AUTH_TOKEN则必填Accept: 设置为application/json返回 JSON 格式,否则返回 HTML
- 返回示例 (JSON):
{ "version": "3.4", "downloadUrl": "https://your-worker.dev/https://dw.uptodown.com/dwn/..." }
本项目按照 LICENSE 文件中的条款进行分发。