为什么对象存储 一 存储对比
| 存储备选 | 海量支持 | 适合数据类型 |
|---|---|---|
| 单机存储 | No | 单机文件/KV |
| 单机数据库 | No | 少量(半)结构化数据 |
| 分布式数据库 | Yes | 大量(半)结构化数据 |
| 分布式存储 | Yes | 大数据计算中间结果/视频/图片等 |
为什么对象存储 一 分布式存储选型
- 分布式文件系统HDFS
- 支持PB->EB海量存储,文件数量受Name Node限制
- 伪Posix文件接口,开发略复杂非云原生,搭建维护较麻烦视频/图片相关生态接入略复杂
- 使用普通X86服务器,成本低
- 对象存储TOS
- 支持>EB海量存储,对象数量无限制
- Restful HTTP接口,开发极简单,云原生,按需申请使用,视频/图片相关生态丰富
- 使用普通X86服务器,具备冷热数据分级存储能力,成本更低
为什么对象存储 一 接口对比
tos:
- http接口:任何时间、任何地点、任何互联网设备上传和下载数据;支持HTTP协议的各种客户端都可访问
- 接口速览
- GET:下载对象
- HEAD: 查看对象元信息
- PUT: 上传对象
- DELETE: 删除对象
为什么对象存储 一 适用场景
适合不可变immutable的类型,比如:
- 视频
- 图片
- 文本
- 安装包
- 备份
- 前端js文件
不适合结构化内容:
- 关系型数据: 商品订单..
- KV: 缓存记录...
- 随机写: 在线编辑文件
- Append写: 大数据计算中间值
- 更新频繁:钱包余额...
对象存储怎么用 - Restful接口
- PUT
- 参数:Bucket,Key,对象内容
- 返回: 成功/失败
- GET
- 参数: Bucket,Key
- 返回:对象内容
- HEAD: Lite版GET
- 参数: Bucket, Key
- 返回: 对象元信息,如大小/Content-Type等
- DELETE
- 参数: Bucket,Key
- 返回: 成功/失败
对象存储怎么用 - MultiUpload接口
- InitUpload:
- 参数: Bucket.Key
- 返回: Uploadld
- UploadPart:
- 参数: Uploadld,Partld,Part内容
- 返回: 成功/失败
- CompleteUpload:
- 参数: Uploadld, Partld Array
- 返回: 成功/失败