白嫖worker 自建短链服务 Url-Shorten-Worker 增加读取Cloudflare KV 中全部记录的功能

需求

饮食健康 2024年1月2日 GMT+8 03:52:00
希望能添加从cloudflare查询以往添加的短链接的功能,不然如果清除了浏览器缓存或在另一台电脑上想要查询和管理短链接的话必须登录cloudflare才行,比较麻烦。


我一开始设计这个短链系统的时候, 是作为可以和熟悉的人共同使用的, 所以我使用浏览器的localStorage的好处是, 每个人都只看到自己添加过的短链. 不会互相干扰, 我后来添加了删除短链的功能, 你也不会误删别人的短链.

但是, 既然有人特别提出来了, 那么我再想想, 如果这个系统是只给我自己一个人用呢, 那么这个读取KV的需求是合理的.


思路

参考官方文档 https://developers.cloudflare.com/kv/api/list-keys/

list() 可以返回全部的 key 的列表(也就是短链). 然后再分别查询得到 value (也就是长链), 再拼接为一个JSON结构返回给前端页面.


设计数据结构

前端发给后端的JSON结构, 设计一个命令 qryall

{
  cmd: 'qryall', 
  password: 'bodongshouqulveweifengci'
}

后端返回给前端的JSON结构

{
  "status":200,
  "error":"",
  "kvlist":[
    {
      "key":"mtSzm6",
      "value":"https://1way.eu.org/bodongshouqulveweifengci"
    },
    .... etc ...
  ]
}


编写代码

前端页面用到的main.js增加一个loadKV()函数

前端页面 index.html 增加一个按钮去调用 loadKV()


后端实现 worker.js 增加对 qryall 命令的处理


========

Github: https://github.com/crazypeace/Url-Shorten-Worker

加了一个开关, 默认关闭. 


演示站是打开此功能的. https://1way.eu.org/mtSzm6

* 不排除未来因为功能互相之间冲突(或影响效果), 演示站关闭此功能.


========

update

重要提醒! list() 每天只能免费 1000 次



Comments