GitHub 文件服务器部署文档

GitHub 文件服务器部署文档
雨天狂奔GitHub 文件服务器部署文档
功能概述
- 通过 GitHub API 上传文件到 GitHub 仓库或 Gist
- 提供文件直链生成功能
- 支持文件管理界面查看上传记录
- 支持删除数据库记录
部署步骤
1. 准备工作
- 一个 GitHub 账号
- 一个 Cloudflare 账号
- 一个有效的 GitHub Personal Access Token (需要
gist
和repo
权限)
2. 创建 Cloudflare Worker
- 登录 Cloudflare 控制台
- 进入 “Workers & Pages” 部分
- 点击 “Create application” → “Create Worker”
- 将 此仓库
gitfiles-plus.js
中的代码全部复制粘贴到 Worker 编辑器中
3. 配置环境变量
在 Worker 的 “Settings” → “Variables” 中添加以下环境变量:
变量名 | 描述 | 示例值 |
---|---|---|
GH_TOKEN | GitHub Personal Access Token | ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
GH_DB | D1 数据库绑定名称 (可选) | DB |
RAW_DOMAIN | 私有仓库文件直链域名 (可选) | raw.yourdomain.com |
4. 初始化数据库 (可选)
如果需要使用数据库记录上传历史:
- 在 Cloudflare 控制台创建 D1 数据库
- 将数据库绑定到 Worker (GH_DB 变量)
- 首次访问 Worker 会自动创建所需表结构
5. 部署
点击 “Save and Deploy” 按钮完成部署
API 文档
1. 上传文件
端点: POST /api/upload
请求格式: multipart/form-data
参数:
upload-type
: 上传类型 (gist
或github
)files
: 要上传的文件 (多文件)
Gist 上传额外参数
gist-public
: 可见性 (on
为公开,否则私有)existing-gist
: 现有 Gist ID (可选,用于追加文件)
GitHub 上传额外参数
gh-username
: GitHub 用户名 (必填)gh-repo
: 仓库名 (必填)gh-branch
: 分支 (默认main
)gh-path
: 仓库内路径 (默认/
)
响应示例:
1 | [ |
2. 查询文件列表
端点: GET /api/qry
参数:
page
: 页码 (默认 1)
响应示例:
1 | [ |
3. 删除记录
端点: DELETE /api/rec/{id}
响应示例 (成功):
1 | { |
前端界面
1. 主界面 (/
)
- 文件上传表单
- 支持拖放上传
- 可选择上传到 Gist 或 GitHub
- 显示上传结果
2. 文件管理界面 (/list
)
- 显示上传历史记录
- 支持搜索和分页
- 可删除记录
注意事项
- GitHub API 有速率限制,请合理使用
- 私有仓库需要配置 RAW_DOMAIN 环境变量才能生成直链
- 上传到 GitHub 仓库需要确保 Token 有对应仓库的写入权限
- 文件大小限制取决于 Cloudflare Worker 的限制 (默认约 10MB)
- 暂未添加鉴权功能,切勿用于公益访问,待后期增加 api 鉴权
常见问题
Q: 上传失败显示 “Token 无效或权限不足 “
A: 检查 GH_TOKEN 是否有正确的权限 (gist 和 repo),并确保对目标仓库有写入权限
Q: 私有仓库直链无法访问
A: 需要先部署 cmliu/CF-Workers-Raw 项目,绑定自定义域名,然后在本项目设置 RAW_DOMAIN
环境变量,指向 raw 项目绑定的自定义域名
Q: 数据库记录不显示
A: 检查是否已正确绑定 D1 数据库到 Worker,并确保 GH_DB 变量名称匹配
#cloudflare #github
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果