对象存储的主要存储对象是图片、视频、文本、安装包、备份或者js文件。存储的数据主要为静态类型,不适用经常更改或者在某个文件后进行追加操作的文件,比如商品订单,缓存记录,在线编辑文件,大数据计算中间结果或者频繁更新的钱包余额。 对象存储呈现出来的是一个“桶”(bucket),你可以往“桶”里面放“对象(Object)”。这个对象包括三个部分:Key、Data、Metadata。- Key可以理解文件名,是该对象的全局唯一标识符(UID)。 Key是用于检索对象,服务器和用户不需要知道数据的物理地址,也能通过它找到对象。这种方法极大地简化了数据存储。- Data也就是用户数据本体。这个不用解释了。- MetadataMetadata叫做元数据,它是对象存储一个非常独特的概念。 元数据有点类似数据的标签,标签的条目类型和数量是没有限制的,可以是对象的各种描述信息。 TOS对象使用Restful接口进行数据的CRUD操作,具体使用http协议,URL为{bucket}/{object key}进行某个文件对象的获取。(URL+method+header+body) 大对象上传时使用的是Multiupload接口,解决断点上传问题,防止上传99%网络中断问题,具体是文件分p,然后根据id进行控制,共三个方法:
InitUpload:
参数: Bucket,Key返回: UploadId
UploadPart:
参数: UploadId,PartId,Part内容返回: 成功/失败
CompleteUpload:
参数: UploadId,PartId Array成功/失败
抖音将视频的后端处理消费队列分为下面几个模块,我们主要关注生产消费队列。
而生产消费队列能够再进行细分,又可以分为转码、抽帧审核两个流程: