 Geekertao-botandGeekertao-bot
|
d18983e23d
|
feat: 支持代理 GitHub 资源 CDN 直链(release-assets / codeload / objects / media) (#1)
* feat: 支持代理 GitHub 资源 CDN 直链(release-assets / codeload / objects / media)
与 CF 版 hubporg/CF-GitHub-Proxy#3 同一套逻辑:GitHub 域名链接仍在服务端内部
跟随跳转并返回文件内容,新增的 CDN 主机直链则直接代理。
改动要点:
1. exps 拆分为 entryExps(入口链接)与 assetExps(资源 CDN),exps 为二者拼接
2. handler 中 exps[1] 改为显式引用 entryExps[1],避免拼接后索引语义漂移
3. proxy 的 Location 分支改用 isEntryURL:只有入口链接才重写为代理地址,
CDN 跳转在服务端内部跟随,客户端不会看到真实文件地址
4. 新增 isEntryURL
修复前:资源 CDN 直链(release-assets / codeload 等)返回 404。
* test: 补充 CDN 主机匹配与入口判定的单元测试
覆盖两处关键行为:
- checkURL 命中新增的 CDN 主机(release-assets / objects / github-releases /
codeload / media),并拒绝非 GitHub 域名与形似域名(如 github.com.evil.com)
- isEntryURL 只命中入口链接,CDN 主机一律不命中——这是避免 302 被重写、
从而把真实文件地址暴露给客户端的关键约束
(可选提交,如不需要可直接丢弃。)
---------
Co-authored-by: Geekertao-bot <254965144+Geekertao-bot@users.noreply.github.com>
|
2026-09-12 01:41:54 +08:00 |
|