这是我参与「第三届青训营 -后端场」笔记创作活动的的第5篇笔记。
0. 什么是对象存储
TOS,意为顶级的对象存储(Top Object Storage),是字节跳动自主研发的一款云原生对象存储系统。 课程目录:
- 为什么需要对象存储
- TOS的使用方式
- TOS的高级特性
1. 为什么对象存储
-
抖音作为现象级的短视频软件,每一分每一秒都在产生大量数据,对数据存储容量大小是以PB乃至EB为计的
-
传统的分布式文件系统对视频,图片等资源支持较差
-
传统分布式文件系统开发,维护较繁杂
-
超大赢
-
易用性:接口对比
- 弱Posix文件系统语义
- 目录/文件
- Append写
- 无法直接HTTP访问
- Bucket/Object语义
- Bucket:存储对象的桶,可类比一个云上的Map
- Object:对象,包含三个部分:
- Key:对象名字,类似Map的key
- Data:对象的内容。例如视频/图片
- MetaData:对象的一些元信息
- Http接口
- 任何时间、地点、互联网设备上传下载数据
- 支持Http协议的各种客户端都可访问
- 弱Posix文件系统语义
对象存储TOS
海量:
支持>EB海量存储 对象数量无限制
易用:
Restful HTTP接口,开发极简单
云原生,按需申请使用 视频/图片相关生态丰富
便宜:
使用普通X86服务器
具备冷热数据分级存储能力,成本更低
使用场景
静态、Immutable : 视频、图片、文本、安装包、备份、前端js文件
结构化、Mutable::关系型数据库、KV、随机写、Append写、更新频繁
2. 对象存储怎么用
- 申请Bucket
- Restful接口
- MultiUpload接口:解决上传大视频,网络卡壳场景
- 分页列举接口:ListPrefix