pub async fn serve_image(
connect_info: Option<Extension<ConnectInfo<SocketAddr>>>,
__arg1: Path<String>,
__arg2: Query<ImageParams>,
headers: HeaderMap,
) -> ResponseExpand description
图片访问与动态处理的 Axum handler。
依次执行:路径安全校验 → 参数校验 → 分支:
- 无参数原图直返:限流(每次真实读盘,防带宽滥用)→ 读盘返回;
- 处理路径:内存缓存 → 磁盘缓存(命中即返回,本质是静态文件服务, 不计费)→ 限流(只有穿透到「读盘 + 解码处理」的 miss 才扣令牌)→ 处理并发排队 → 读取并解码 → 处理 → 写入两级缓存 → 返回。
按 miss 计费的原因:素材页/长文首刷单页可产生上百个缩略图请求, 若缓存命中也扣令牌,burst 配额会被正常浏览耗尽,批量 429 误杀。