这是我参与「第三届青训营 -后端场」笔记创作活动的第4篇笔记。
存储对比
单机存储 不支持海量数据 分布式数据库 分布式数据库只适合存储结构化or半结构化数据 分布式存储 针对海量存储场景特别设计的存储,能够存储海量的大数据 分布式存储分为分布式文件系统和对象存储
分布式文件系统HDFS
支持PB到EB的海量存储
文件数量受Name Node限制
伪Posix文件接口,开发略复杂
非云原生,搭建维护较为麻烦
视频/图片相关生态接入略复杂
使用普通x86服务器,成本低
对象存储TOS
支持大于EB的海量存储
对象数量没有限制
Restful HTTP接口,开发很简单
云原生,按需要申请使用
视频/图片相关生态丰富
使用普通X86服务器
具备冷热数据分级存储能力,存储成本更低
见下图, Bucket/Object语义
Bucket:存储对象的桶,可以类比为云上的Map
Object:对象,包含以下三个部分:
Key: 对象的名字,可以类比Map的Key
Data: 对象的内容,例如视频/图片内容
MetaData:对象的一些元信息,如对象大小,对象Content-Type,也可以存储自定义元信息
HTTP接口
任何时间、任何地点、任何互联网设备上传和下载数据
支持HTTP协议的各种客户端都可以访问
对象存储的用法
申请Bucket 业务逻辑开发(视频上传、视频下载、视频删除、视频查看) 上线测试(拍视频、视频点赞)
上传大容量的视频时候,可以使用MultiUpload接口 查看桶里面有哪些对象: Listprefix接口,它是一个分页接口,循环调用该接口可以遍历桶下面所有的对象。