对象存储批量读取及写入方法、客户端、存储网关及介质技术

技术编号:29296711 阅读:19 留言:0更新日期:2021-07-17 00:58
本发明专利技术实施例涉及一种对象存储批量读取及写入方法、客户端和存储网关,所述读取方法应用于客户端、存储网关,所述读取方法使得客户端可以从存储网关读取至少一个指定对象的指定范围的分片数据,实现批量读取,避免客户端与存储网关的多次交互;所述写入方法应用于客户端、存储网关,所述写入方法能够实现至少一个对象及分片数据的全部写入或部分写入,实现海量对象的写入,能有效降低客户端与存储网关的交互次数。本发明专利技术实施例,通过提供基于POST请求的批量读写接口,减少客户端与存储网关间的请求交互次数,提高读写效率,降低客户端资源消耗。端资源消耗。端资源消耗。

Object storage batch read and write method, client, storage gateway and media

【技术实现步骤摘要】
对象存储批量读取及写入方法、客户端、存储网关及介质


[0001]本专利技术实施例涉及对象存储领域,尤其涉及一种对象存储批量读取及写入方法、客户端、存储网关及介质。

技术介绍

[0002]对象存储(Object Storage)最早是亚马逊2006年推出的S3(Simple Storage Service)。对象存储是面向对象/文件的、海量的互联网存储,它也可以直接被称为“云存储”。对象尽管是文件,它是已被封装的文件(编程中的对象就有封装性的特点),也就是说,在对象存储系统里,不能直接打开/修改文件,但可以像ftp一样上传文件,下载文件等。
[0003]以分布式对象存储为例,在实现http类型应用客户端在读写时是基于S3 REST API标准。然而,现有的S3类型存储接口,不管是AWS还是公有云等产品,如果要写多个文件,一次请求只能写一个文件,客户端需要分别封装多个文件的PUT写入请求,然后以一定并发发送请求,交互非常耗用客户端资源和网络资源。读取文件时,有时只需要读取文件的部分分片,即部分范围数据,通常的做法是使用GET读取请求来指定多本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种对象存储批量读取方法,其特征在于,应用于客户端,所述方法还包括:在接收到针对目标桶信息对应的至少一个指定对象的读取操作指令时,封装读取POST请求;所述读取PSOT请求包括读取请求头、位于读取请求头或读取请求行的目标桶信息、位于读取请求体的待读取分片范围;将所述读取POST请求发送给所述存储网关,以供所述存储网关在接收到所述读取POST请求后,根据所述读取POST请求进行回应;根据所述存储网关的回应读取所述指定对象的待读取分片范围的多个分片数据。2.根据权利要求1所述的方法,其特征在于,所述封装读取POST请求,包括:在读取请求行中确定请求方法为读取;将所述目标桶信息放入读取请求头中;在读取请求体的正文中添加多级标签,以标识所述指定对象及所述指定对象的指定范围的分片数据,其中,所述指定对象的数量为1。3.根据权利要求1所述的方法,其特征在于,所述封装读取POST请求,还包括:按照存储定义的API接口规范封装读取POST请求,其中,所述API接口基于S3 REST API协议标准。4.根据权利要求1所述的方法,其特征在于,若所述指定对象的数量大于1,则所述在请求体的正文中添加多级标签,以标识所述指定对象及所述指定对象的指定范围的分片数据,包括:在读取请求体的正文中添加多级标签,且对不同的指定对象增加不同的标识,以标识所述指定对象及所述指定对象的指定范围的分片数据。5.根据权利要求1

4中任一项所述的方法,其特征在于,所述方法还包括:若所述读取POST请求包含至少两个指定对象,则所述指定对象的数量至多200个,且每个所述指定对象的分片数据至多200个;若所述读取POST请求仅包含一个指定对象,则所述指定对象的分片数据的数量至多1000个。6.一种对象存储批量写入方法,其特征在于,应用于客户端,所述方法包括:创建写入POST请求,所述写入POST请求包括写入请求头、位于请求头或请求行的目标桶信息、位于请求体的至少两个待处理对象及所述待处理对象的分片数据;将所述写入POST请求发送给存储网关,以供所述存储网关在接收到所述写入POST请求后,解析所述写入请求头,以对所述目标桶信息、所述待处理对象以及分片数据进行请求响应,得到响应结果,根据响应结果写入所述目标桶信息、所述待处理对象以及所述分片数据,且将所述响应结果返回至所述客户端;在接收到所述响应结果后,若所述响应结果中存在请求通过的待处理对象,则解析所述响应结果中每个所述请求通过的待处理对象的处理结果。7.根据权利要求6所述的方法,其特征在于,所述创建写入POST请求,所述写入POST请求包括写入请求头、位于请求头或请求行的目标桶信息、位于请求体的至少两个待处理对象及所述待处理对象的分片数据,包括:在写入请求行中确定请求方法为写入;将所述目标桶信息放入写入请求头或写入请求行中;在所述写入请求头中设置对象分割线;
在写入请求体的正文中,以对象分割线开始;封装第一个待处理对象,其中所述待处理对象包括对象名,待处理对象的分片数据以及附加属性;继续封装第二个待处理对象,且通过所述对象分割线将所述第一个待处理对象与所述第二个待处理对象分隔,直至完成所有待处理对象的封装;添加结束分割线,完成所述写入POST请求的封装。8.根据权利要求6所述的方法,其特征在于,所述创建写入POST请求,还包括:按照存储定义的API接口规范封装写入POST请求,其中,所述API接口基于S3 REST API协议标准。9.根据权利要求8所述的方法,其特征在于,所述方法还包括:若所述响应结果中存在请求未通过的待处理对象,则接收所述存储网关发送的请求未通过的待处理对象的错误码;根据所述错误码判断未通过原因,并根据未通过原因修正所述未通过的待处理对象,以重新根据修正后的待处理对象创建写入POST请求。10.一种对象存储批量读取方法,其特征在于,应用于存储网关,所述方法包括:在接收到所述客户端发送的读取POST请求后,根据所述读取POST请求进行回应,其中,所述读取POST请求包括读取请求头、位于读取请求头或请求行的目标桶信息、位于读取请求体的至少一个指定对象及所述指定对象的分片数据,且所述指定对象为请求通过的待处理对象。11.根据权利要求10所述的方法,其特征在于,所述根据所述读取POST请求进行回应,包括:对所述读取POST请求进行合法性校验;在所述读取POST请求通过所述合法性校验时,解析所述读取请求体的正文,获得所述指定对象及所述指定对象的指定范围;在已存储的分片数据中查找所述指定范围对应的位置;根据所述位置对所述已存储的分片数据的存储顺序进行整合和/或排序...

【专利技术属性】
技术研发人员:陈坚匡浩马四文刘飞
申请(专利权)人:深圳市杉岩数据技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1