最终上传链路

一次完整上传

把前面所有能力串起来,一次生产级上传可以这样发生:

生产级完整上传链路

客户端发起上传
1 · 动作

申请上传任务

提交文件名、大小、类型、hash
2 · 判断

校验权限 / 配额 / 文件策略

创建 upload_task
3 · 动作

返回分片上传签名

对象存储 multipart 签名
4 · 动作

客户端直传分片

分片进对象存储,不经过业务服务
5 · 动作

提交完成,服务端校验并触发合并

校验分片数量 / 大小 / hash
6 · 动作

文件进入 scanning

异步扫描:病毒、内容审核
7 · 结果

扫描通过,状态 available

文件可访问
上传链路完成,进入访问分发

一次完整下载

上传之后的访问链路同样关键:

生产级下载链路

用户请求访问文件
1 · 判断

校验用户权限与访问级别

公开 / 私有 / 临时 / 隔离
2 · 动作

生成短期 CDN 签名 URL

限定文件、过期时间
3 · 动作

经 CDN 访问

命中缓存直接返回,未命中回源
4 · 结果

记录下载审计

用户、文件、时间、来源
加速与鉴权两不误

这条链路的关键点

  • 大流量(上传内容、下载内容)走数据面,业务服务只走控制面。
  • 权限 / 状态 / 审计全部由控制面掌握。
  • 每步都有状态,可查询、可恢复、可追踪。
  • 每个边界都有校验:上传前、合并前、扫描后、分发前。

链路的一致性兜底

  • 状态卡住(uploading 超时、scanning 积压)→ 补偿任务修复。
  • 对象与元数据不一致 → 定期对账清理。
  • 任务失败、扫描失败 → 重试 + 告警。

下一节是上线前的最后检查清单。

发现内容有问题?

告诉我们哪里需要改进。