这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
为什么把文件从业务服务拆出去
业务服务器不该当存储
基础上传阶段,业务服务既接收请求,又保存文件。这在早期很方便,但文件量一增长,业务服务就要承担不该承担的职责:
- 磁盘扩容、文件备份、多副本。
- 下载带宽被静态文件占满。
- 跨机房同步与容灾。
对象存储的价值,是把二进制文件从业务服务里拆出去。 业务服务继续负责鉴权、元数据和业务规则;文件内容交给专门的存储系统。
两种方案放一起看
本地磁盘和对象存储的取舍,用一张表看得最清楚:
方案对比
本地磁盘 vs 对象存储
| 维度 | 本地磁盘 | 对象存储 |
|---|---|---|
容量扩展 | 弱磁盘扩容需停机、受单机限制 | 优弹性扩容,按需购买 |
备份与容灾 | 弱需要自己搭备份、多副本 | 优默认多副本 + 跨区容灾 |
下载带宽 | 弱占用业务服务器带宽 | 优由存储平台承载,业务服务只走控制面 |
跨地域访问 | 弱本地盘只在单机房可见 | 优天然支持多地域、就近访问 |
成本模型 | 优提前采购,闲置浪费 | 弱按量计费,但需管理生命周期 |
结论:早期本地存储实现快,但文件量增长后,对象存储在扩展、备份、带宽、地域上的优势是决定性的;代价是引入签名、回调、一致性与生命周期管理。
控制面与数据面
迁移到对象存储后,系统自然地分成两个面:
控制面(业务服务):鉴权、配额、元数据、签名、状态、审计
数据面(对象存储):文件本体、分片合并、容量、备份、跨地域
- 控制面需要理解用户、租户、权限和状态,留在业务服务。
- 数据面适合处理大文件、大带宽、耗时任务,交给对象存储。
- 两端通过签名 / 回调 / 事件衔接。
迁移的收益与代价
| 收益 | 代价 |
|---|---|
| 业务服务不再承载文件流量 | 引入签名、回调、事件机制 |
| 存储弹性扩容、自带容灾 | 元数据与对象的一致性问题 |
| 天然支持跨地域访问 | 生命周期、成本需要主动管理 |
一句话
对象存储解决了「文件放哪里」的扩展问题,代价是你要管理好「业务服务与存储之间」的信任与一致性。下一节看最关键的落地方式:客户端直传与签名。
发现内容有问题?
告诉我们哪里需要改进。
