白嫖 worker 自建短链服务 Url-Shorten-Worker 增加读取 Cloudflare KV 中全部记录的功能
需求
饮食健康 2024
年 1 月 2 日 GMT+8 03:52:00 希望能添加从
cloudflare 查询以往添加的短链接的功能,不然如果清除了浏览器缓存或在另一台电脑上想要查询和管理短链接的话必须登录 cloudflare 才行,比较麻烦。
我一开始设计这个短链系统的时候, 是作为可以和熟悉的人共同使用的, 所以我使用浏览器的
但是, 既然有人特别提出来了, 那么我再想想, 如果这个系统是只给我自己一个人用呢, 那么这个读取
思路
参考官方文档 https://developers.cloudflare.com/kv/api/list-keys/
list() 可以返回全部的 key 的列表
设计数据结构
前端发给后端的
{cmd: 'qryall',password: 'bodongshouqulveweifengci'}
后端返回给前端的
{"status":200,"error":"","kvlist":[{"key":"mtSzm6","value":"https://1way.eu.org/bodongshouqulveweifengci"},.... etc ...]}
编写代码
前端页面用到的
========
完
Github: https://github.com/crazypeace/Url-Shorten-Worker
加了一个开关, 默认关闭.
演示站是打开此功能的. https://1way.eu.org/mtSzm6
* 不排除未来因为功能互相之间冲突
========
update
重要提醒! list() 每天只能免费 1000 次
赞赞赞
回复删除点击后会显示所有的 KV 值,于是我加了个简单的判断。
if 合并成一行的,但不起作用。
回复删除for (var i = 0; i < keyList.keys.length; i++) {
if (keyList.keys[i].name.includes("-count") == false)
if (keyList.keys[i].name.includes("password") == false) {
let item = keyList.keys[i];
let url = await LINKS.get(item.name);
let newElement = { "key": item.name, "value": url };
// 填充要返回的列表 Fill the return list
jsonObjectRetrun.kvlist.push(newElement);
}
}
}
我本来想把两个
不知道为什么,我只懂简单的代码。
哇, 你太棒了! 开源的世界就应该是这样, 有想法就自己动手! 代码的世界里就是 talk is cheap, show me the code!
虽然你的代码能力不足, 但是你愿意 show 出你的 code, 与我交流, 我非常开心!
建议你注册一个 Github 账户, fork 我的项目, 然后在你自己的项目里实施你的修改.
代码方面, 我会协助你的.
-
如果你不愿意实施你自己的项目, 也请告诉我. 我们可以在本文的评论里交流修改思路.
https://zelikk.blogspot.com/2024/01/url-shorten-worker-password-protect-keylist.html
https://zelikk.blogspot.com/2024/01/url-shorten-worker-count.html