Skip to content

Repository files navigation

fileproxy

MIT License GitHub stars

⚠️ 本项目代码由 AI 重构。仅作技术参考与学习用途,生产使用前请务必自行审计与测试。

本项目基于 hunshcn/gh-proxy(MIT 协议)重构,感谢原作者。


简介

一个运行在 Cloudflare Workers 上的文件代理。

可以代理所有网站的文件资源(只要目标网站不使用 Cloudflare CDN 作为文件分发),不限于 GitHub。你可以用它下载任意文件地址,并自动获得 CORS 支持。

适用场景

  • GitHub 文件下载加速 / CORS 代理(release、archive、blob、raw 等)
  • 任意网站的文件资源代理(非 Cloudflare CDN 站点均可)
  • 前端跨域获取远程文件
  • 通过极简首页快速提交链接并跳转代理

快速开始

pnpm install
pnpm dev        # 本地开发(wrangler dev)
pnpm deploy     # 部署到 Cloudflare
pnpm test       # 运行单元测试

使用方式

将目标 URL 直接拼在 Worker 域名之后:

https://your-worker.dev/<目标 URL>

例如:

# GitHub 文件
https://your-worker.dev/https://github.com/user/repo/releases/download/v1/file.zip

# 任意网站文件
https://your-worker.dev/https://example.com/path/to/file.bin

访问 Worker 根路径(/)会返回首页,内置输入框和按钮,粘贴链接后点击跳转即可命中代理。

代理限制

以下情况无法代理:

  • 目标网站使用了 Cloudflare CDN / Bot Management(请求会被拦截,返回 403 或 JS Challenge)
  • 目标文件需要 Cookie / 登录态才能访问(Worker 无法携带上游会话)
  • 目标返回 Content-Security-Policy 阻止嵌入(已自动剥离,但部分站点仍可能拦截)

架构

src/
├── index.ts                   # Worker 入口
├── routes/
│   └── handler.ts             # fetch 入口:根→首页 / 其他→代理 / 预检
├── proxy/
│   ├── proxy.ts               # 核心代理:fetch 并流式回传
│   └── normalize.ts           # /blob/ → /raw/
├── middleware/
│   ├── headers.ts             # 请求头处理、Referer 裁剪
│   └── response.ts            # 响应改写、Location 重写、CORS、预检
└── lib/
    └── config.ts              # 全局常量(PREFIX 等)

关键设计

特性 说明
流式透传 new Response(response.body, ...) 直接转发上游流,不缓冲
重定向改写 上游 3xx 的 Location 被重写为仍走本代理,保证重定向链不中断
首页内联 根路径直接返回 text/html,输入框 + 按钮,支持回车提交
CORS 注入 自动添加 Access-Control-Allow-Origin,反射来源域名
安全头剥离 移除 CSP / CORP / clear-site-data 等阻碍嵌入的响应头
无状态 不依赖 D1 / KV / R2,配置仅 src/lib/config.ts 中的 PREFIX

单元测试

pnpm test

覆盖 normalizeTarget、rewriteLocation、CORS 头、预检、代理链路(含上游 3xx 改写),共 16 个用例,不依赖外网。

配置

路由前缀在 src/lib/config.ts 中:

export const PREFIX = "/";
// 若自定义路由为 example.com/gh/*,改为 "/gh/"(注意结尾斜杠)

归档

archive/legacy_workerproxy.js 为早期经典 Service Worker 语法脚本,已弃用,仅供参考,请勿部署。

License

MIT · 基于 hunshcn/gh-proxy 重构

About

代理下载所有的网站资源(除CF CDN外)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages