搜索
缓存时间14 现在时间14 缓存数据 新版本,我想了很久,把感情别唱那么满了,以旁观者的心态唱,把空间留给大家,我的感情太满了,你们就进不去了,有个感情快要溢出来的demo版本就可以了,这首歌到底是什么感情,什么故事,听这首歌儿的你说了算。
查看: 246|回复: 1

一种使用Cloudflare worker部署的文本(订阅)托管平台

[复制链接]
发表于 2024-12-23 16:59:12 | 显示全部楼层 |阅读模式

厌倦了滚动浏览相同的帖子?当您创建帐户后,您将始终回到您离开的地方。注册帐户,不仅可以享受无广告的清爽界面!

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 kunorikiku 于 2024-12-23 17:01 编辑

Cloudflare Worker 文本托管平台

项目地址
此 Cloudflare Worker 源代码提供通过预定义用户凭据和超级管理员操作安全访问私人 GitHub 存储库中的文件。
闲暇时候写的轻喷

功能

  • 普通用户操作

    • 根据用户名获取文本文件。
    • 针对重复登录失败的 IP 实现封禁机制。
  • 超级管理员操作

    • 添加、列出和移除用户。
    • 列出或清除登录失败的 IP。

推荐实践

  1. 分发有链式代理的订阅
  2. 分发不好订阅转换的订阅
  3. 分发需要经常后台修改、客户端本地同步的文本

环境变量

在 Cloudflare Worker 中设置以下变量:

变量名称 描述
GITHUB_TOKEN 拥有存储库访问权限的 GitHub 精细化令牌。
GITHUB_USERNAME 存储库所有者的 GitHub 用户名。
REPO_NAME GitHub 存储库的名称。
DIRECTORY_PATH 存储库中用于获取文件的目录路径。
BRANCH 存储库的分支名称(例如 mainmaster)。
FAIL_LIMIT IP 在被封禁前允许的失败次数。
BAN_TIME 被封禁 IP 的持续时间(以毫秒为单位)。
SUPER_TOKEN 用于超级管理员操作的密钥。

图形界面设置

  1. 登录到 Cloudflare 仪表板。
  2. 点击 Workers and Pages,选择已创建的 Worker,点击 Settings - Variables and Secrets
  3. 点击 Add,按表格左侧的名称添加条目,值可参考 _wrangler.toml
  4. 推荐使用 Secret 选项存储 GitHub 令牌。

KV 命名空间设置

Wrangler 设置

创建并绑定用于存储用户数据和登录失败记录的 KV 命名空间:

  1. 创建命名空间:

    wrangler kv:namespace create "USER_DATA"
    wrangler kv:namespace create "FAILED_LOGINS"
  2. wrangler.toml 中绑定命名空间:

    kv_namespaces = [
     { binding = "KV", id = "<namespace-id>" }
    ]

图形界面手动设置

  1. 登录到 Cloudflare 仪表板。
  2. 点击 Storage & Databases - KV - Create,输入首选名称。
  3. 回到 Workers and Pages,选择已创建的 Worker,点击 Settings - Bindings
  4. 点击 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 地址。

清除失败 IP

GET /clearFailIP?superToken=XXX

  • 清除登录失败的 IP 列表。

示例用法

获取文件

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 部署

  1. wrangler.toml 中配置环境变量。
  2. 使用 Wrangler CLI 部署 Worker:

    wrangler publish

图形界面部署

  1. 登录到 Cloudflare 仪表板。
  2. 转到 Workers 部分并创建一个新 Worker。
  3. 将 Worker 脚本复制到编辑器中。
  4. 设置所需环境变量并绑定 KV 命名空间(按照上述步骤)。
  5. 保存并部署 Worker。
爱生活,爱奶昔~
发表于 2024-12-24 16:47:32 来自手机 | 显示全部楼层
真是精甚细腻的教程啊,给您精华!
爱生活,爱奶昔~
回复 支持 反对

使用道具 举报

Powered by Nyarime. Licensed

GMT+8, 2025-1-19 14:27 , Processed in 0.043699 second(s), 20 queries , Gzip On, Redis On
发帖际遇 ·手机版 ·小黑屋 ·RSS ·奶昔网 | 沪ICP备13020230号-1 |  沪公网安备 31010702007642号

登录切换风格
快速回复 返回顶部 返回列表