缓存策略
GoEdge CDN 缓存配置、签名窗口对齐与缓存效率
缓存层级
| 层级 | 位置 | 说明 |
|---|---|---|
| CDN 边缘缓存 | GoEdge 节点 | 命中后直接返回,不回源 |
| 客户端缓存 | 浏览器 / App 本地 | 通过 Cache-Control 头控制 |
| 源站 | R2 / B2 | 永久存储,不存在过期概念 |
URL 签名与缓存的关系
CDN URL 带有 sign 和 t 参数。不同的 t 值会生成不同的 URL,导致缓存无法命中。为此 sd-image-url 的签名时间戳采用了窗口对齐策略:
timestamp = Math.floor(Date.now() / 3000) * 3000同一个 3 秒窗口内,相同路径生成的签名完全一致,CDN 可以正常缓存。vip-image-url 使用秒级时间戳,缓存命中率相对较低,但高清资源的请求量也较小。
缓存 TTL
| 资源类型 | CDN 缓存 TTL | 说明 |
|---|---|---|
| 漫画图片(/res/、/web-res/) | 由 GoEdge 配置 | 图片内容不变,可长期缓存 |
| URL 有效期 | 约 50 分钟(expiresIn: 3000s) | 签名过期后需重新获取 URL |
漫画图片一旦上传就不会修改(只会新增章节),天然适合长 TTL 缓存。缓存失效主要由 URL 签名过期驱动,而非内容变更。