利用Cloudflare Worker自建短链接服务


发表于 修改于 GITHUB项目 430 字 3 分钟

突然想建个短链接服务,于是找到了Cloudflare Worker的方案,但是开源的js总归是不能完美和我的主题契合,于是自己从零写了一个cloudflare-worker-url-shortner

演示

预览

特性

  • 😀 简单干净的风格
  • 🗄️ 使用 Cloudflare KV 进行持久存储
  • 🔗 支持自定义短 URL
  • 📡 简单的 API 用于创建短链接

先决条件

  • 🌐 一个 Cloudflare 账户
  • 🗄️ 安装 Wrangler 并登录
    npm install -g wrangler
    wrangler login

安装

  1. 创建 KV 命名空间 步骤1
  2. 记住 KV 命名空间 ID 步骤2
  3. 克隆此仓库
    git clone https://github.com/coderxi1/cloudflare-worker-url-shortner
  4. 安装依赖
    pnpm install
  5. wrangler.jsonc 中更改 PASSWORD 和 KV 命名空间的 ID
    {
    "vars": {
    "PASSWORD": "<YOUR_PASSWORD>", //自定义你的密码
    },
    "kv_namespaces": [
    {
    "binding": "URLS",
    "id": "<YOUR_KV_NAMESPACE_ID>" //更改为你的 KV 命名空间 ID
    }
    ]
    }
  6. 部署到 Cloudflare
    pnpm run deploy

环境变量

默认值描述
PASSWORD<YOUR_PASSWORD>密码
PASSWORD_REQUIREtrue如果设置为 true,则必须输入密码才能使用所有功能
HOST_WHITELIST["example.com", "coderxi.com"]域名白名单,只有来自这些域名的请求才会被接受,除非提供了有效的密码
KEY_MIN_LENGTH6Key的最小长度要求
KEY_REMOVEfalse如果设置为 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"
}

评论