博客的「书影音」页面数据来自一个部署在 Cloudflare Worker 上的豆瓣同步服务,本文记录部署与踩坑。

为什么需要它

豆瓣没有公开 API,个人标记数据想在自己的站点展示,需要解决两个问题:

  1. 数据获取——带着登录态请求豆瓣页面并解析
  2. 图片防盗链——豆瓣图片直接外链会被拦截

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 白嫖额度内),个人站点够用了。

标签: Docker, API, 豆瓣, Cloudflare

添加新评论