这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
上传后的异步扫描
为什么不能一传就可访问
很多风险只有拿到完整文件后才能判断:病毒、违规图片、敏感文档。如果文件一上传就变成「可访问」,风险文件会在扫描完成前就被下载出去。
所以上传完成后,文件应该进入扫描流程,而不是立刻可用。
状态流转
uploaded -> scanning -> available
-> rejected
-> manual_review
scanning:正在扫描,下载接口返回「处理中」或仅管理员可访问。available:扫描通过,正常访问。rejected:命中风险,禁止访问。manual_review:机器无法判断,转人工。
为什么必须异步
扫描任务(病毒检测、内容审核、格式解析、缩略图生成)通常很耗时。如果同步处理,上传接口会被拖到几十秒甚至更久。
正确姿势:业务服务写入状态 → 投递任务到队列 → 扫描服务异步消费。这样上传接口保持轻快,扫描在后台完成。
扫描任务的健壮性
- 任务可重试、可追踪(失败自动重投)。
- 扫描结果幂等(重复结果不重复处理)。
- 超时未扫描的文件要告警(可能队列积压)。
- 扫描服务故障时,不能把所有文件都卡死在
scanning——要有降级策略。
异步处理的收益
| 收益 | 说明 |
|---|---|
| 上传接口快 | 不等待耗时扫描 |
| 可扩展 | 扫描服务独立扩容 |
| 可治理 | 队列积压、失败都可观测 |
一句话
文件上传后先进 scanning,异步扫描通过才 available——这是「风险文件不进可访问区」的关键设计。
下一节看文件权限控制,明确谁可以访问什么。
发现内容有问题?
告诉我们哪里需要改进。
