CF-Workers-Raw:轻松访问GitHub私有仓库中的原始文件

CF-Workers-Raw:轻松访问GitHub私有仓库中的原始文件

背景与核心痛点:在实际开发与运维过程中,我们常常需要直接通过 HTTP URL 访问 GitHub 私有仓库中的原始文件(如配置、密钥模板或自动化脚本)。但若直接在 URL 中拼接 GitHub Personal Access Token (PAT),极易发生密钥泄露与滥用。CF-Workers-Raw 利用 Cloudflare Workers 作为轻量级边缘安全中继,在边缘节点安全注入 Token 并支持自定义访问密钥鉴权,兼顾安全性与极致访问速度。

目录

核心特性与优势

  • 安全隐匿:无需在客户端或终端脚本中暴露真实 GitHub Token。
  • 边缘加速:依托 Cloudflare 全球 Anycast 边缘网络,大幅改善国内及跨境访问私有 raw 文件的延迟。
  • 轻量无门槛:单个 _worker.js 脚本即可运行,免费套餐每日 10 万次请求额度充裕。
  • 灵活鉴权:支持通过自定义 Header 或 URL Query Parameter 进行二次访问保护。

准备工作:创建 GitHub 访问令牌

  1. 登录 GitHub,点击右上角头像进入 Settings。
  2. 依次选择 Developer settings -> Personal access tokens -> Tokens (classic)。
  3. 点击 Generate new token (classic):
    • Note:填入备注(如 cf-workers-raw)
    • Expiration:选择过期时间(推荐长期或根据策略设置)
    • Select scopes:勾选 repo 权限(允许访问私有仓库内容)
  4. 点击 Generate token 生成并妥善保存 Token,该密钥仅显示一次。

部署 Cloudflare Workers

  1. 访问开源仓库:cmliu/CF-Workers-Raw。
  2. 支持两种部署方式:
    • Workers 部署:在 Cloudflare Dashboard 新建 Worker,将仓库 _worker.js 复制并粘贴保存部署。
    • Pages 部署:直接连接 GitHub 仓库自动 CI 部署。

环境变量配置说明

在 Cloudflare Workers 后台 Settings -> Variables 中可配置以下环境变量:

变量名 示例值 必填 说明
GH_TOKEN ghp_xxxxxxxxxxxx 否 GitHub 官方个人访问令牌,用于后端鉴权
TOKEN myCustomKey2026 否 自定义访问密钥,与 GH_TOKEN 配合实现双重保护
URL302 https://t.me/yourchannel 否 访问 Worker 根目录时的 302 重定向目标
URL https://github.com/cmliu/CF-Workers-Raw 否 根目录页面伪装反代目标

安全访问与鉴权实操

假设你的 Worker 绑定域名为 raw.yourdomain.com,目标私有文件为 https://raw.githubusercontent.com/user/private-repo/main/config.yaml。

模式一:URL 动态传递令牌

未在 Workers 中配置 GH_TOKEN 时,可在请求 URL 中临时追加参数:

https://raw.yourdomain.com/user/private-repo/main/config.yaml?token=ghp_xxxxxxxxxxxx

或直接粘贴完整 Raw 地址:

https://raw.yourdomain.com/https://raw.githubusercontent.com/user/private-repo/main/config.yaml?token=ghp_xxxxxxxxxxxx

模式二:Workers 注入全局令牌

在 Workers 环境变量中设置 GH_TOKEN 后,请求无需附带任何参数,Workers 会自动在边缘节点补全 Authorization 头部:

https://raw.yourdomain.com/user/private-repo/main/config.yaml

模式三:双重自定义访问控制(推荐)

在 Workers 环境变量中同时设置:

  • GH_TOKEN = ghp_xxxxxxxxxxxx
  • TOKEN = myCustomKey2026

此时外部必须提供正确的自定义密钥才能获取文件,彻底杜绝泄露真实 GitHub Token:

https://raw.yourdomain.com/user/private-repo/main/config.yaml?token=myCustomKey2026

即使自定义密钥泄露,他人也无法通过该密钥直接访问你 GitHub 上的其他私有仓库,安全性极大提升。