实测推翻了之前的诊断。同一批图: 当天签发的地址 /202610080841/... -> 200,带不带 Referer 都一样 隔天的地址 /202610070837/... -> 403,带不带 Referer 都一样 路径里那段时间戳就是签发时刻。所以这是**过期**,Referer 根本不是那个维度 —— 上一轮加 referrerPolicy 是照着错误结论改的,白改。 修法: - 采集入库时每轮刷新 cover 地址。原先只在首次入库写一次,旧作品的地址烂在库里, 而且再怎么重跑也修不回来 - 新增 api/monitor/covers.py:把图下载落盘。图一旦落盘就与签名无关,永远可读 - 下载放在 runner 的 Phase 5(事务已提交之后),不放 ingest —— ingest 的文档写明 No network,往里塞网络请求会毁掉它可离线测试这一点 - 新增 GET /api/monitor/covers/{note_id} 取图。这条路由带鉴权,封面不会被匿名读走 - service 返回本地地址优先,没有缓存时才退回远程 - 每轮只补一批(60 张):一次跑几百张既慢又会给图床压力,而旧地址本来就在陆续过期, 分摊到几轮反而更稳 顺带修正 NoteCover 的注释 —— 它写着防盗链,而那个结论已被推翻,留个错的注释比没有更糟。