浏览知识库目录

后端相关

使用对象存储的优势

使用对象存储的优势,核心可以概括为:

为了存储海量非结构化数据而设计,具有高扩展、高可靠、低成本、易访问的特点。

相比传统文件系统、数据库存文件,对象存储在很多场景下更有优势。


1. 海量数据扩展能力强

这是对象存储最大的优势之一。

传统文件系统:

服务器
 |
硬盘
 |
文件系统
 |
文件

当数据增长到:

  • 几 TB
  • 几百 TB
  • 几 PB

管理会越来越复杂。

对象存储:

对象存储集群

Node1
Node2
Node3
Node4
...
Node100

可以通过增加节点扩容:

10TB
 ↓
100TB
 ↓
1PB
 ↓
10PB

应用基本不用改变。

例如:

  • 视频网站
  • 云盘
  • 图片平台
  • AI 数据集

都需要这种能力。


2. 高可靠性

对象存储通常不是简单保存一份文件。例如:上传video.mp4。系统可能:

数据块A → 节点1
数据块B → 节点2
校验块 → 节点3、4

或者:

副本1
副本2
副本3

即使:

  • 硬盘损坏
  • 服务器宕机
  • 某个节点故障

数据仍然可恢复。


3. 成本低

对象存储特别适合“大量、不经常修改”的数据。例如:视频网站每天产生:

100TB 视频

如果全部放数据库,成本非常高。

对象存储:

廉价硬盘
+
分布式管理
+
自动冗余

单位存储成本低很多。


4. 非结构化数据管理方便

现在互联网产生大量数据:图片/视频/音频/PDF/压缩包/日志/AI模型,这些数据没有固定表结构。

数据库:

表
 |
字段
 |
记录

不适合存大文件。

对象存储:

Bucket

 |
 +-- image001.jpg
 +-- video001.mp4
 +-- model.bin

天然适合。


5. 接口简单,适合互联网访问

对象存储通常通过 HTTP API:

上传:

PUT /bucket/photo.jpg

下载:

GET /bucket/photo.jpg

删除:

DELETE /bucket/photo.jpg

所以:

  • Web 应用容易接入
  • 移动 App 容易访问
  • 跨语言支持好

6. 与 CDN 天然结合

这是实际项目非常常见的架构:

用户
 |
 CDN
 |
对象存储
 |
文件

例如,用户请求:

https://img.xxx.com/a.jpg

流程:

1. CDN 查询缓存
2. 有 → 直接返回
3. 没有 → 从对象存储读取
4. CDN 缓存

优势:

  • 降低对象存储压力
  • 加快访问速度
  • 节省带宽

7. 支持数据生命周期管理

对象存储可以自动管理文件生命周期。例如,照片:

0~30天
热数据
 ↓
SSD存储

30天~1年
温数据
 ↓
普通存储

1年以上
冷数据
 ↓
低成本归档存储

自动迁移。

适合:

  • 备份
  • 日志
  • 录像

8. 支持版本管理

例如,文件:

report.pdf

修改:

v1
 |
v2
 |
v3

对象存储可以保存历史版本。误删除,恢复旧版本。


9. 数据权限管理方便

对象存储一般支持:

  • 用户权限
  • Bucket权限
  • 临时访问链接

例如,生成一个:

https://xxx.com/video.mp4?token=xxxx

有效期:

10分钟

用户可以下载。

常用于:

  • 网盘
  • 文件分享
  • 视频播放

10. 与云服务生态结合好

例如,上传图片:

用户上传
 ↓
对象存储
 ↓
触发事件
 ↓
图片处理服务
 ↓
生成缩略图

类似:

文件上传
    |
    |
触发函数
    |
    |
自动处理

对比一下

对象存储 传统文件系统 数据库存文件
海量文件 ⭐⭐⭐⭐⭐ ⭐⭐
扩展性 ⭐⭐⭐⭐⭐ ⭐⭐
可靠性 ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐
成本
随机修改 较弱
大文件 优秀 一般 较差
互联网访问 优秀 一般 一般

什么时候应该使用对象存储?

适合:

  • ✅ 图片服务器
  • ✅ 视频网站
  • ✅ 文件上传系统
  • ✅ 企业网盘
  • ✅ 数据备份
  • ✅ 日志归档
  • ✅ AI训练数据
  • ✅ 静态网站资源

不适合:

  • ❌ 高频随机修改的小数据
  • ❌ 事务型数据
  • ❌ 需要复杂查询的数据

例如,用户信息:

MySQL

商品库存:

MySQL / Redis

用户头像:

对象存储

视频:

对象存储 + CDN

一个典型互联网应用的文件存储架构就是:

                用户
                  |
                  v
                CDN
                  |
                  v
               Nginx
                  |
                  v
              后端服务
              /      \
             /        \
        MySQL       MinIO
        (数据)      (文件)

这也是现在很多中大型 Web 系统常用的架构。