对象存储|青训营

64 阅读2分钟

为什么对象存储 一 存储对比

存储备选海量支持适合数据类型
单机存储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
    • 返回: 成功/失败