厌倦了滚动浏览相同的帖子?当您创建帐户后,您将始终回到您离开的地方。注册帐户,不仅可以享受无广告的清爽界面!
您需要 登录 才可以下载或查看,没有账号?注册
×
本帖最后由 kunorikiku 于 2024-12-23 17:01 编辑
Cloudflare Worker 文本托管平台
项目地址
此 Cloudflare Worker 源代码提供通过预定义用户凭据和超级管理员操作安全访问私人 GitHub 存储库中的文件。
闲暇时候写的轻喷
功能
-
普通用户操作:
- 根据用户名获取文本文件。
- 针对重复登录失败的 IP 实现封禁机制。
-
超级管理员操作:
- 添加、列出和移除用户。
- 列出或清除登录失败的 IP。
推荐实践
- 分发有链式代理的订阅
- 分发不好订阅转换的订阅
- 分发需要经常后台修改、客户端本地同步的文本
环境变量
在 Cloudflare Worker 中设置以下变量:
变量名称 |
描述 |
GITHUB_TOKEN |
拥有存储库访问权限的 GitHub 精细化令牌。 |
GITHUB_USERNAME |
存储库所有者的 GitHub 用户名。 |
REPO_NAME |
GitHub 存储库的名称。 |
DIRECTORY_PATH |
存储库中用于获取文件的目录路径。 |
BRANCH |
存储库的分支名称(例如 main 或 master )。 |
FAIL_LIMIT |
IP 在被封禁前允许的失败次数。 |
BAN_TIME |
被封禁 IP 的持续时间(以毫秒为单位)。 |
SUPER_TOKEN |
用于超级管理员操作的密钥。 |
图形界面设置
- 登录到 Cloudflare 仪表板。
- 点击
Workers and Pages ,选择已创建的 Worker,点击 Settings - Variables and Secrets 。
- 点击
Add ,按表格左侧的名称添加条目,值可参考 _wrangler.toml 。
- 推荐使用
Secret 选项存储 GitHub 令牌。
KV 命名空间设置
Wrangler 设置
创建并绑定用于存储用户数据和登录失败记录的 KV 命名空间:
-
创建命名空间:
wrangler kv:namespace create "USER_DATA"
wrangler kv:namespace create "FAILED_LOGINS"
-
在 wrangler.toml 中绑定命名空间:
kv_namespaces = [
{ binding = "KV", id = "<namespace-id>" }
]
图形界面手动设置
- 登录到 Cloudflare 仪表板。
- 点击
Storage & Databases - KV - Create ,输入首选名称。
- 回到
Workers and Pages ,选择已创建的 Worker,点击 Settings - Bindings 。
- 点击
Add ,添加一个名为 KV 的条目,指向刚创建的 KV。
接口
普通用户请求
获取文件
GET /get?username=XXX&password=XXX
- 获取与用户名对应的文本文件(例如
username.txt )。
- 响应:
200 :文件内容以纯文本返回。
403 :凭据错误。
404 :文件不存在。
超级管理员请求
所有请求均需提供有效的 superToken 。
添加用户
GET /addUser?superToken=XXX&username=YYY&password=ZZZ
列出用户
GET /listUser?superToken=XXX
删除用户
GET /removeUser?superToken=XXX&username=YYY
列出失败 IP
GET /listFailIP?superToken=XXX
清除失败 IP
GET /clearFailIP?superToken=XXX
示例用法
获取文件
curl -X GET "https://worker-domain/get?username=johndoe&password=securepassword"
添加用户
curl -X GET "https://worker-domain/addUser?superToken=secret&username=johndoe&password=securepassword"
列出用户
curl -X GET "https://worker-domain/listUser?superToken=secret"
错误处理
- IP 封禁:被封禁的 IP 将收到
403 响应。
- GitHub 错误:返回 GitHub API 错误信息以便调试。
部署
Wrangler 部署
- 在
wrangler.toml 中配置环境变量。
-
使用 Wrangler CLI 部署 Worker:
wrangler publish
图形界面部署
- 登录到 Cloudflare 仪表板。
- 转到 Workers 部分并创建一个新 Worker。
- 将 Worker 脚本复制到编辑器中。
- 设置所需环境变量并绑定 KV 命名空间(按照上述步骤)。
- 保存并部署 Worker。
|