突然想建个短链接服务,于是找到了Cloudflare Worker的方案,但是开源的js总归是不能完美和我的主题契合,于是自己从零写了一个cloudflare-worker-url-shortner
演示
特性
- 😀 简单干净的风格
- 🗄️ 使用 Cloudflare KV 进行持久存储
- 🔗 支持自定义短 URL
- 📡 简单的 API 用于创建短链接
先决条件
- 🌐 一个 Cloudflare 账户
- 🗄️ 安装 Wrangler 并登录
npm install -g wranglerwrangler login
安装
- 创建 KV 命名空间
- 记住 KV 命名空间 ID
- 克隆此仓库
git clone https://github.com/coderxi1/cloudflare-worker-url-shortner
- 安装依赖
pnpm install
- 在
wrangler.jsonc
中更改PASSWORD
和 KV 命名空间的ID
{"vars": {"PASSWORD": "<YOUR_PASSWORD>", //自定义你的密码},"kv_namespaces": [{"binding": "URLS","id": "<YOUR_KV_NAMESPACE_ID>" //更改为你的 KV 命名空间 ID}]} - 部署到 Cloudflare
pnpm run deploy
环境变量
键 | 默认值 | 描述 |
---|---|---|
PASSWORD | <YOUR_PASSWORD> | 密码 |
PASSWORD_REQUIRE | true | 如果设置为 true ,则必须输入密码才能使用所有功能 |
HOST_WHITELIST | ["example.com", "coderxi.com"] | 域名白名单,只有来自这些域名的请求才会被接受,除非提供了有效的密码 |
KEY_MIN_LENGTH | 6 | Key的最小长度要求 |
KEY_REMOVE | false | 如果设置为 true ,URL记录将在过期时被删除。如果为 false ,URL将仅标记为过期 |
MANUAL_DOMAINS | ["github.com"] | 匹配这些域的 URL 将不会自动重定向而是显示一个页面,要求用户手动点击继续 |
API 使用
创建短 URL
请求:
POST /Content-Type: application/json{ "url": "https://coderxi.com/url-shortener-with-cloudflare-worker", "password": "<YOUR_PASSWORD>", "key": "doc", "expireDay": 1}
响应:
{ "key": "doc"}
评论