这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
核心指标与演进路线
别只盯着接口 200
设计文件系统时,最容易犯的错是「接口能传上去就行」。但接口 200 回答不了这些问题:用户传大文件成功了吗?打开图片快不快?CDN 真的减轻了源站压力吗?存储成本在失控吗?风险文件拦住了吗?
所以要有核心指标,而且要区分「能衡量」和「真正该衡量」的。
五个关键指标
| 指标 | 含义 | 关心的取舍 |
|---|---|---|
| 上传成功率 | 尤其大文件、移动网络、跨地域 | 分片上传让状态更复杂,但显著提高成功率 |
| 首字节时间 | 打开图片、合同、视频封面的延迟 | 是否需要 CDN / 就近存储 |
| 源站回源率 | CDN 是否真的降低业务压力 | 缓存策略、预热、回源保护 |
| 存储成本 | 热、冷、临时文件的开销 | 生命周期策略是否有效 |
| 安全命中 / 误拦截率 | 拦住了真风险,还是误伤正常用户 | 校验与扫描的平衡 |
这些指标会直接决定架构取舍。例如:
- 上传成功率低 → 引入分片上传 + 断点续传。
- 首字节时间长 → 迁移对象存储 + 接入 CDN。
- 回源率居高不下 → 优化缓存键与预热策略。
- 成本飞涨 → 补生命周期与冷热分层。
演进路线
这门课从最小可用出发,一步步演进。每一步都围绕一个真实瓶颈:
- 基础上传:确认最小链路能跑通(传输 + 元数据)。
- 分片上传:解决大文件弱网络下的失败成本。
- 断点续传:把上传状态变成可查询、可恢复的数据。
- 对象存储:把文件从业务服务拆出去,划清控制面与数据面。
- CDN 加速:把下载流量移出业务服务,降低延迟。
- 安全审计:让文件系统可管理、可追责、可上线。
- 完整系统:串成可演进、可运维、可治理的平台。
演进的原则
每一次演进不是「推翻重来」,而是在现有边界上加一层能力:
- 文件 ID 与物理路径解耦(后面换存储不用改接口)。
- 元数据保留状态字段(支持异步扫描、审核)。
- 下载不暴露本地路径(为签名 URL 留接口)。
- 上传大小、并发、配额从一开始就限。
学完你能得到什么
读完这门课,你应该能:
- 画出一套文件上传系统的核心架构图。
- 解释每个模块为什么出现、解决了什么问题、引入了什么新复杂度。
- 面对一个真实上传需求,判断当前瓶颈并给出演进方案。
下一章,从最简单的「基础上传」开始。
发现内容有问题?
告诉我们哪里需要改进。
