<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>workers on </title>
    <link>/tags/workers/</link>
    <description>Recent content in workers on </description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Tue, 03 Mar 2026 00:00:00 +0800</lastBuildDate><atom:link href="/tags/workers/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>用 Cloudflare Workers 自托管短链服务 Sink：s.meirong.dev 的一次部署记录</title>
      <link>/posts/sink-url-shortener-on-cloudflare-workers/</link>
      <pubDate>Tue, 03 Mar 2026 00:00:00 +0800</pubDate>
      
      <guid>/posts/sink-url-shortener-on-cloudflare-workers/</guid>
      <description>为什么需要短链服务 博客里有时要贴一些很长的 URL——GitHub 链接、Grafana 面板、API 文档之类的。长 URL 在 Markdown 里虽然无所谓，但分享到微信、邮件时看起来乱糟糟的。
另一个场景：跳转(或者外部)链接如果能统一走自己的短域名，更整洁，也方便以后追踪点击数据和做链接的安全检查和处理。
为什么选 Sink Sink 是一个基于 Cloudflare Workers 的无服务器短链服务，核心特性：
功能 说明 自定义 slug 手动指定或 AI 自动生成 Analytics 访客统计（设备类型、地区、来源） 二维码生成 每条短链自带 QR Code 链接过期 可设置有效期 批量导入导出 JSON / CSV AI 辅助 Cloudflare Workers AI 生成 slug 每日备份 R2 Bucket 定时备份 对我来说比较吸引的一点是：Sink 完全运行在 Cloudflare Workers 上，不需要额外维护服务器或数据库。 按我当前的个人使用量，它也还在 Cloudflare 的免费额度范围内。
与其他自托管短链方案（Shlink、YOURLS、Kutt）相比，Sink 在我当前这套环境里不需要额外上 K8s，也不会继续占 Oracle 云的资源。再加上我本来就在用 Cloudflare，这条链路接起来更顺手一些。
架构 用户 → Cloudflare DNS (s.meirong.dev) → Cloudflare Worker (sink) ├── KV Namespace 短链存储（slug → 目标 URL） ├── R2 Bucket 每日 00:00 UTC 自动备份 ├── Analytics Engine 访客点击统计 └── Workers AI AI slug 建议 DNS 解析由 Cloudflare 自动处理，不经过 Cloudflare Tunnel，也不过 K8s 的 Traefik——这是一条独立链路。</description>
    </item>
    
  </channel>
</rss>
