在进行 AI 模型开发时,Hugging Face 是绕不开的资源库。然而,直接访问 huggingface.co 及其 CDN 资源有时会遇到速度缓慢甚至连接失败的问题。
为了解决这个问题,我开发了一个基于 Cloudflare Workers 的轻量级反向代理项目 —— HuggingfaceProxy。
🌟 项目介绍
HuggingfaceProxy 是一个开源项目,利用 Cloudflare 全球边缘网络,为 Hugging Face 提供快速、稳定的访问代理。
项目地址:https://github.com/AinzRimuru/HuggingfaceProxy
核心特性
- 零配置使用:直接访问即可,所有请求自动转发到 Hugging Face
- 智能重定向:自动处理 CDN 重定向,无需多域名配置
- 下载器脚本:提供 Python 下载器,支持并行下载、断点续传
- 模块化架构:代码结构清晰,易于维护和扩展
🛠️ 原理简析
核心逻辑在 _worker.js 中实现。当请求到达 Cloudflare Worker 时:
- 解析请求路径,判断目标资源
- 将请求转发到
huggingface.co - 拦截重定向响应,自动改写
Location头
当 Hugging Face 返回重定向到 CDN 时,Worker 会自动改写:
1 | 原始: Location: https://cdn-lfs.hf.co/path/to/file |
这样所有请求都只需经过单一代理域名,无需配置泛域名。
🚀 如何部署
推荐使用 Cloudflare Pages 进行部署,配置简单且免费额度充裕。
方法一:Fork & Deploy(推荐)
Fork 项目
访问 GitHub 仓库,点击Fork创建 Cloudflare Pages
登录 Cloudflare Dashboard →Workers & Pages→Create→Pages→Connect to Git选择仓库
选择你 Fork 的仓库,Framework preset 选择None,直接部署绑定域名(可选)
部署完成后,可在Custom Domains设置中绑定自定义域名
方法二:使用 Wrangler CLI
1 | # 克隆项目 |
📖 如何使用
假设你的代理域名是 your-proxy.pages.dev。
直接访问
1 | # 访问模型页面 |
使用下载器脚本
1 | # 下载脚本 |
⚠️ 注意: 不推荐使用
huggingface-cli或snapshot_download搭配本代理。由于 Cloudflare 的缓存机制会丢失Content-Length等关键头信息,会导致这些客户端下载失败。请使用本项目自带的下载脚本。
结语
通过这个 Cloudflare Worker 脚本,可以轻松搭建属于自己的 Hugging Face 加速通道。既解决了访问难题,又利用了 Serverless 架构的低成本优势。
如果你觉得这个项目有帮助,欢迎在 GitHub 上点个 Star!🌟
常见问题
Hugging Face 国内打不开怎么办?
可以自建 Hugging Face 镜像代理:把开源项目部署到 Cloudflare Workers,利用 Cloudflare 全球边缘网络转发请求,无需科学上网即可访问模型页面、下载模型文件和调用 API。
Python 怎么通过镜像下载模型?
项目提供专用 Python 下载器,支持并行下载与断点续传,适合大模型文件;huggingface_hub、transformers 等工具链也可以通过设置 HF_ENDPOINT 环境变量指向镜像地址来使用。
部署要花钱吗?
不用。Workers 免费额度对个人下载模型的流量完全够用,推荐 Fork 仓库后一键部署,也支持 Wrangler CLI 方式。