Cloudflare Worker 实战:给豆瓣数据做一个自己的同步服务
博客的「书影音」页面数据来自一个部署在 Cloudflare Worker 上的豆瓣同步服务,本文记录部署与踩坑。
为什么需要它
豆瓣没有公开 API,个人标记数据想在自己的站点展示,需要解决两个问题:
- 数据获取——带着登录态请求豆瓣页面并解析
- 图片防盗链——豆瓣图片直接外链会被拦截
Worker 方案用 KV/R2 做了这两件事:定时同步标记数据,封面转存到 R2。
部署
git clone https://github.com/bigfa/douban-cf-worker
cd douban-cf-worker
npx wrangler deploy配置 DOUBAN_COOKIE 与 TOKEN 后,访问 /init 触发首次同步:
curl -H "Authorization: Bearer <TOKEN>" "https://your-worker.example.com/init?paged=0&type=movie&status=done"前端接入要点
- 列表接口
/list?type=&status=&paged=无需鉴权,服务端拉取后缓存一小时 - 封面优先用 R2 缓存域,404 时回落 worker 域(触发转存),再不行显示生成式封面
- worker 冷启动单请求可达数秒,务必做 stale-while-revalidate,别让访客等同步
整套链路零服务器、零数据库(R2/KV 白嫖额度内),个人站点够用了。