上线检查清单

上线前逐项自查

文件系统上线前,把下面每一项都过一遍。它来自前面所有章节踩过的坑。

传输

  • 上传失败是否能恢复(分片 + 断点续传)?
  • 未完成分片是否会自动清理,不过期堆积?
  • 分片合并前是否校验数量、大小、hash?
  • 服务端是否按用户、文件、IP 限流?

存储

  • 文件是否从业务服务拆到对象存储(控制面 / 数据面分离)?
  • 对象 key 是否包含业务、日期、随机 ID,不暴露原始文件名?
  • 对象与元数据是否通过状态机 + 补偿任务保持一致?
  • 是否有生命周期策略(临时清理、软删、冷热分层)?

分发

  • 业务服务是否避免承载大文件下载流量(走 CDN)?
  • 私有文件是否只能通过短期签名 URL 访问?
  • CDN 缓存是否有版本化 / 刷新 / 回源保护策略?
  • 大文件是否支持 Range 与断点下载?

安全与审计

  • 文件 hash、大小、类型是否在服务端校验(不只信扩展名)?
  • 文件是否先 scanning 再 available,风险文件不进可访问区?
  • 访问级别(公开 / 私有 / 临时 / 隔离)是否明确并由服务端控制?
  • 审核失败 / 删除后,CDN 缓存与已发签名是否被失效?
  • 审计日志是否覆盖上传、下载、删除、审核和风险处置?

成本与治理

  • 回源率、上传成功率、存储成本是否有监控与告警?
  • 临时分片 / 孤儿对象是否有清理与对账?
  • 下载是否有并发 / 速率限制,防恶意拖库?

上线后的持续动作

检查清单不是一次性的。上线后还要:

  • 监控:上传成功率、首字节时间、回源率、存储成本。
  • 告警:扫描积压、回源异常、成本超支、风险文件激增。
  • 演练:定期模拟大文件上传失败、CDN 回源风暴、风险文件处置。
  • 复盘:每次安全事件后更新校验与扫描规则。

课程收束

文件上传系统的难点,不在「接收一个文件」,而在持续处理增长带来的复杂度:文件越来越大、用户越来越多、访问越来越分散、风险越来越多。

当你下次设计上传功能时,先问三个问题:

  • 这个文件系统现在处于哪个阶段?
  • 当前最大的瓶颈是上传成功率、下载延迟、存储成本,还是安全风险?
  • 今天的方案会不会阻碍明天接入分片、对象存储、CDN 和审计?

能回答这些问题,你就已经从「写上传接口」进入了「设计文件平台」的视角。回顾与总结页会把这套方法沉淀成可复用的设计原则。

发现内容有问题?

告诉我们哪里需要改进。