pub async fn comment_upload_image(
connect_info: Option<Extension<ConnectInfo<SocketAddr>>>,
headers: HeaderMap,
multipart: Multipart,
) -> Result<Json<Value>, (StatusCode, Json<Value>)>Expand description
评论图片上传的 Axum handler(评论区用,允许匿名)。
与 admin upload_image 的区别:
- 不做会话/角色校验——匿名访客也能为评论传图;
- 限流用独立的 comment_upload 双层桶(每秒突发 + 每日总额),与 admin 的 upload 桶隔离,匿名滥用不会挤占 admin 额度;
- 入库流水线与响应契约完全一致(magic bytes 检 MIME、5MiB、尺寸/像素校验、 SHA-256 去重、转码、assets 登记)。
未引用素材由 tasks::orphan_asset_purge 定期回收(评论未提交、评论被删等
场景产生的孤儿图)。