博文

目前显示的是标签为“KV-woker”的博文

KV-woker 纯练手项目 保护 _ 开头的 Key VS code 重构 JS 代码 提取代码为函数

图片
KV-woker 项目准备实现的功能列表见此: https://zelikk.blogspot.com/2024/12/kv-woker-1.html 今天实现: 保护 _ 开头的 KV对. 因为我们的目标是把配置项都放到 KV 中保存. 按目前的设计, 需要把理更多的配置项的 KV 放到 protect_keylist 中. 如果未来系统有配置项的扩充, 那么就要记得在 protect_keylist 中添加, 这是不优雅的.  我们可以约定, 配置项在 KV 中都以 _ 开头保存. 这一点和自动生成短链的方法也不冲突, 自动生成短链的字符中不含有 _ 符号. 本项目目前保护两个KV, _admin_pwd_ 和 _user_pwd_ , 不允许用户 修改, 删除, 查询. 目前的实现, 是设置了一个数组 protect_keylist 在业务逻辑中, 使用判断数组中是否有元素的方式 List.includes(key) , 来判断是否是属于需要保护的key. if (protect_keylist.includes(req_key)) 这一功能的效果就是: https://newkvdb.crazypeace.workers.dev/_user_pwd_ 显示404 https://newkvdb.crazypeace.workers.dev/_admin_pwd_  显示404 而且在  https://newkvdb.crazypeace.workers.dev/kvdbkvdb LoadKV, 是查询不到 _admin_pwd_ 和 _user_pwd_ 的 value 的 第 1 步 先将 if (protect_keylist.includes(req_key)) 这个判断重构为一个函数 鼠标拖选 "protect_keylist.includes(req_key)" , 右键, "Refactor...", "Extract to function in global scope",  输入新函数的名字, "checkProtectKey" 回车Enter确认 你会发现, 之前选中的文字被替换为了一个函数调用 而文件的末尾, 新增了一个函数, 函数内容就是你之前选中的语句...

KV-woker 纯练手项目 把worker.js 里的配置项改为在 KV 中保存

图片
KV-woker 项目准备实现的功能列表见此: https://zelikk.blogspot.com/2024/12/kv-woker-1.html 今天实现: 把worker.js 里的配置项改为在 KV 中保存 第 1 步 在 KV 中把配置都添加进去, 前后都加上 _ 第 2 步 把 worker.js 里面的值当作默认值, 当KV中没有设置时, 维持程序运转.  从 KV 中读取配置值, 我们观察分为两类, 布尔值  Boolen 和 字符串 String. 所以做两个函数分别用于读取 布尔值  Boolen 和 字符串 String, 方便重复使用. 然后我们把这个构造配置值的函数, 放到访问worker时的调用函数的一开头. 测试发现有问题, 显示的不是 pastebin 页面. 检视代码, 发现 index_html, result_html, response_header, 这3个变量, 是和配置项有关系的. 所以把这3个也放到一个函数中, 同样的, 在访问worker时的调用函数的一开头就调用一下. 测试  https://newkvdb.crazypeace.workers.dev/kvdbadmin 功能正常, 而且可以通过页面直接改写配置项的值, 并生效. 比如, 控制 能否 读取全部KV *** 提交修改记录  https://github.com/crazypeace/KV-woker/commit/26752fc

KV-woker 纯练手项目 2个密码 对应不同的权限

图片
KV-woker 项目准备实现的功能列表见此: https://zelikk.blogspot.com/2024/12/kv-woker-1.html 今天实现: 2个权限和对应的密码. 管理员权限 和 用户权限 第 1 步 用 _admin_pwd_ 和 _user_pwd_ 实现原来 password 的控制访问的功能 在 KV 中, 添加记录 Key: _user_pwd_   Value:  (我随便定的示例) kvdbkvdb Key: _admin_pwd_ Value:  (我随便定的示例) kvdbadmin 原项目 Url-Shorten-Worker 中, 是在 KV 库中保存 password 来 控制访问权限的. 代码中, 在这里从KV库中获取  password 对应的 value, 作为校验密码. 后续的逻辑, 都是使用这个变量 password_value 与JSON中的password字段比较, 或者是与浏览器访问的path比较. 我们这么修改,  代码的最开头, 增加一个数组 const user_key_list = [   " _admin_pwd_ ",   " _user_pwd_ " ] 在代码原来从 KV库 查询 password 的地方, 改为 将每个 user_key_list 的成员, 从KV库查询, 并将结果保存到 user_password_value_list const user_password_value_list = await Promise.all(   user_key_list.map(async key => await KVDB.get(key) || null) ); * JS的语法是比较奇怪, 我们拿人类语言去问 GPT 就好了. 在校验权限的地方, 原来是判断 password_value 是否等于 XXXX.  改为 判断 user_password_value_list 是否包含 XXXX 测试 https://newkvdb.crazypeace.workers.dev/ kvdbkvdb https://newkvdb.crazypeace.w...

KV-woker 纯练手项目

图片
书接上文 当初我在 KV 中设置一个 password 的思路是, 我希望把 KV 看作是一个存储库, 那么使用权限密码也是保存的数据之一. 我知道目前有很多worker的项目, 是直接在 Variables and Secrets 变量和机密 中直接设置使用密码, 来控制不公开使用.  但我的思路不一样. 打个比方, 为了修改VPS的root密码,  一个是, 必须登录VPS厂商的后台管理面板中修改;  一个是, root登录成功后, 在命令行就可以修改.  我的思路是后者. 我准备在原短链项目上做一些增强开发. 进一步把当初的设想做完整. 也算是一个练习. 我能预期到, 这样的实现可能不实用. 因为每次访问worker, 都要从KV中读取一下password. 简单地说, 本来每天能转换100次短链, 这一下子只能转换50个了. (当然了, 本身KV的读取操作是每天10万次, 个人使用打个半折也足够用, 哈哈) ======== 我准备实现的功能包括: 2个权限和对应的密码. 管理员权限 和 用户权限 把worker.js 里的配置项都在 KV 中保存 为了不和原项目冲突, 以免直接使用原项目的一些用户被影响, 新开一个项目, 名称也更通用.  KV-woker 因为项目本身的定位更通用, 所以: 绑定 Bindings 用 KVDB 指向 KV 库 KV 库中设2个密码 _admin_pwd_ _user_pwd_ _user_pwd_ 用于控制能否访问管理页面, 增删改 KV 对. 相当于是普通用户. _admin_pwd_ 除了 _user_pwd_ 的权限以外, 还能增删改 _ 开头的 KV 对. 相当于是管理员. ======== 今天实现: 新建 github 项目 绑定 Bindings -  KVDB 用原来的 Url-Shorten-Worker 项目代码, 新建一个 Github 项目 KV-woker 在项目里搜索 Url-Shorten-Worker, 替换为 KV-woker * 如果你想跟随本教程实践, 记得搜索 crazypeace 替换为你自己的 Github 用户名. 搭一个 pastebin 系统. 测试 https:/...

The Hot3 in Last 30 Days

强行重装 233boy的sing-box脚本 取消脚本报错退出的逻辑

更自由地使用 各种一键脚本(未裁剪)

RackNerd VPS搭Hysteria2 HY2梯子 年付 $10.98 1G端口 3T流量 17G存储 1GB内存