对象存储|青训营笔记

104 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 16 天 一、抖音背后的存储

  1. 短视频生产/消费 : 片源系统→审核系统→推荐系统
  2. 客户端:账号系统→评论系统→公共系统

由于存储量实在太大,需要找一个合适的存储系统。在之前,我们学过存储系统的分类,选定分布式存储系统。 但分布式存储也有分布式文件系统和对象存储,应该选择哪个呢?

  • 分布式文件系统HDFS

    • 海量:支持PB->EB海量存储;文件数量受Name Node限制
    • 易用:伪Posx文件接口,开发略复杂;非云原生,搭建维护较麻烦;视频/图片相关生态接入略复杂
    • 便宜:使用普通X86服务器,成本低
  • 对象存储TOS

    • 海量:支持>EB海量存储;对象数量无限制
    • 易用:Restful HTTP接口,开发极简单;云原生,按需申请使用;视频/图片相关生态丰富;
    • 便宜:使用普通X86服务器;具备冷热数据分级存储能力,成本更低
    • 易用性:
      • Bucket/Objecti语义
        • Bucket:存储对象的桶,可类比一个云上的Map
        • Object:对象,包含如下三个部分
          • Key:对象的名字,可类比Map的Key
          • Data:对象的内容,例如视频/图片内容
          • MetaData:对象的一些元信息,如对象大小,对象Content-Type,也可以存储自定义元信息
      • HTTP接口
        • 任何时间、任何地点、任何互联网设备上传和下载数据
        • 支持HTTP协议的各种客户端都可访问
      • 接口速览
        • GET:下载对象
        • HEAD:查看对象元信息
        • PUT:上传对象
        • DELETE:删除对象

二、对象存储怎么使用?

  • 申请Bucket
    • 申请Bucket
  • 业务逻辑开发视频上传
    • 视频上传
    • 视频下载
    • 视频删除
    • 视频查看
  • 上线测试
    • 拍一条视频,给自己的视频点赞。