首页 / 专利库 / 集成电路 / 集成电路卡 / 微控制器 / 存储器 / 一种实现S3标准对象存储接口的方法及装置

一种实现S3标准对象存储接口的方法及装置

阅读:3发布:2020-06-26

专利汇可以提供一种实现S3标准对象存储接口的方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 的方面涉及数据存储领域,提供一种实现S3标准对象存储 接口 的方法及装置,解决对象存储系统利用可移植 操作系统 接口的实现方案,文件存储或读取效率低的问题,一种实现S3标准对象存储接口的方法包括:接收用户端调用接口 请求 ,用户端调用对象存储系统提供的接口;上传用户端调用接口请求至有序键值对存储引擎;基于用户端调用接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端调用接口请求。用户端需要存储或读取数据时,调用对象存储系统的接口,对象存储系统将用户端调用接口请求发送至有序键值对存储引擎,通过上述方式,将数据以键值对的形式存储在有序键值对存储引擎中,提高了数据存储、读取的效率。,下面是一种实现S3标准对象存储接口的方法及装置专利的具体信息内容。

1.一种实现S3标准对象存储接口的方法,应用于对象存储系统,其中,包括:
接收用户端调用接口请求,其中,所述用户端调用所述对象存储系统提供的接口,所述对象存储系统提供的接口包括:基础接口、分片接口、罗列接口;
上传所述用户端调用接口请求至有序键值对存储引擎;
基于所述用户端调用接口请求,调用所述有序键值对存储引擎的接口,通过所述有序键值对存储引擎的接口,实现用户端调用接口请求,其中,所述有序键值对存储引擎的接口包括:基础接口、扫描接口。
2.根据权利要求1所述的方法,其中,所述方法还包括:
基于所述用户端调用接口请求,生成文件的文件信息,其中,所述文件信息包括:所述文件对应的键、所述文件对应的ID,所述文件为所述用户端请求存储的文件,所述文件对应的键为所述文件名称,所述文件对应的ID为所述文件的唯一身份标识;
返回所述文件信息至所述用户端。
3.根据权利要求1所述的方法,其中,采用如下方式实现基于所述用户端调用基础接口请求,调用有序键值对存储引擎的接口,通过所述有序键值对存储引擎的接口,实现用户端调用基础接口请求:
直接调用所述有序键值对存储引擎的基础接口;
基于所述有序键值对存储引擎的基础接口,实现用户端调用基础接口请求,其中,所述有序键值对存储引擎的基础接口包括:提交接口、获取接口及删除接口。
4.根据权利要求2所述的方法,其中,所述对象存储系统的分片接口包括:上传片段接口、终止分段上传接口及完成分段上传接口;
采用如下方式实现所述基于所述用户端调用上传片段接口请求,调用有序键值对存储引擎的接口,通过所述有序键值对存储引擎的接口,实现用户端调用上传片段接口请求:
基于所述用户端调用上传片段接口请求,接收所述用户端上传的所述文件的文件片段信息,其中,所述文件片段信息包括:所述文件片段对应的键、所述文件片段对应的值及所述文件片段在文件中的编号,所述文件片段对应的键为所述文件片段名称,所述文件片段对应的值所述文件片段的数据;
拼接所述文件片段对应的键、所述文件对应的ID及所述文件片段在文件中的编号,作为第一键;
调用所述有序键值对存储引擎的提交接口;
基于所述有序键值对存储引擎的提交接口,保存所述第一键、所述文件片段对应的值至所述有序键值对存储引擎。
5.根据权利要求4所述的方法,其中,基础接口采用如下方式实现所述基于所述用户端调用基础接口的获取接口请求,调用有序键值对存储引擎的接口,通过所述有序键值对存储引擎的接口,实现用户端调用基础接口的获取接口请求:
获取所述文件对应的键;
调用所述有序键值对存储引擎的获取接口;
基于所述有序键值对存储引擎的获取接口,查找所述文件对应的键的值;
基于所述有序键值对存储引擎的获取接口,判断所述文件对应的键的值,是否为分段上传产生的数据,若是,拆解得到所述第一键的所述文件片段对应的键;
调用所述有序键值对存储引擎的获取接口;
基于所述有序键值对存储引擎的获取接口,获取每个所述文件片段对应的键中的数据。
6.根据权利要求4所述的方法,其中,采用如下方式实现所述基于所述用户端调用终止分段上传接口请求,调用有序键值对存储引擎的接口,通过所述有序键值对存储引擎的接口,实现用户端终止分段上传请求:
基于所述用户端上传的终止分段上传请求,调用所述有序键值对存储引擎的扫描接口;
基于所述有序键值对存储引擎的扫描接口、所述文件片段对应的键和所述文件对应的ID,获取已经上传的所述文件片段对应的值;
调用所述有序键值对存储引擎的删除接口;
基于所述有序键值对的删除接口,删除已上传的所述文件片段对应的值。
7.根据权利要求4所述的方法,其中,采样如下方式实现所述基于所述用户端调用完成分段上传接口请求,调用有序键值对存储引擎的接口,通过所述有序键值对存储引擎的接口,实现用户端完成分段上传请求:
基于所述用户端调用完成分段上传接口请求,调用所述键值对存储引擎的扫描接口;
基于所述有序键值对存储引擎的扫描接口、所述文件对应的键和所述文件对应的ID,获取已上传的所述文件片段对应的键;
拼接已上传的所述文件片段对应的键,作为第二键;
调用所述有序键值对存储引擎的提交接口;
基于所述有序键值对存储引擎的提交接口,保存所述文件对应的键及所述第二键至所述有序键值对存储引擎。
8.根据权利要求4所述的方法,其中,所述对象存储系统的罗列接口包括非递归罗列接口;
采用如下方式实现所述基于所述用户端调用非罗列递归接口请求,调用有序键值对存储引擎的接口,通过所述有序键值对存储引擎的接口,实现用户端调用非罗列递归请求:
基于所述用户端调用非罗列递归接口请求,提取所述文件对应的键的前缀;
调用所述有序键值对存储引擎的扫描接口;
基于所述有序键值对存储引擎的扫描接口,扫描是否满足连续预设数值的包含所述前缀的所述文件片段对应的键,若是,停止扫描,基于包含所述前缀的所述文件片段对应的键,确定所述文件对应的键的直接子键,若否,执行所述基于所述有序键值对存储引擎的扫描接口,扫描是否满足连续预设数值的包含所述前缀的所述文件片段对应的键的步骤。
9.一种实现S3标准对象存储接口的装置,应用于对象存储系统,其中,装置包括:
接收单元,用于接收用户端调用接口请求,其中,所述用户端调用所述对象存储系统提供的接口,所述对象存储系统提供的接口包括:基础接口、分片接口、罗列接口;
上传单元,用于上传所述用户端调用接口请求至有序键值对存储引擎;
调用单元,用于基于所述用户端调用接口请求,调用所述有序键值对存储引擎的接口,通过所述有序键值对存储引擎的接口,实现用户端调用接口请求,其中,所述有序键值对存储引擎的接口包括:基础接口、扫描接口。
10.一种电子设备,其中,所述电子设备包括:
存储器,用于存储指令;以及
处理器,用于调用所述存储器存储的指令执行权利要求1-8中任一项所述的一种实现S3标准对象存储接口的方法。
11.一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在由处理器执行时,执行权利要求1-8中任一项所述的一种实现S3标准对象存储接口的方法。

说明书全文

一种实现S3标准对象存储接口的方法及装置

技术领域

[0001] 本发明一般地涉及数据存储技术领域,特别是涉及一种实现S3标准对象存储接口的方法及装置。

背景技术

[0002] 对象存储系统,是一种常用的大规模数据存储系统。对象存储系统基于S3对象存储标准、可移植操作系统接口标准实现数据存储、数据读取。
[0003] 但是,基于可移植操作系统接口标准的对象存储系统实现数据存储及数据读取中,具有目录节点概念,即每个目录对应一个节点,每个子目录对应一个子节点,其中,每个目录代表一个文件的名称、每个子目录代表一个子文件的名称。当用户调用一个简单接口存储或调用数据时,对象存储系统利用可移植操作系统接口标准实现数据存储及数据读取方案需要沿着每个目录节点依次存储或查找,使文件存储或读取效率低。

发明内容

[0004] 为了解决现有技术中存在的上述问题,本发明提供一种实现S3标准对象存储接口的方法及装置。
[0005] 第一方面,本发明实施例提供一种实现S3标准对象存储接口的方法,应用于对象存储系统,方法包括:接收用户端调用接口请求,其中,用户端调用对象存储系统提供的接口,对象存储系统提供的接口包括:基础接口、分片接口、罗列接口;上传用户端调用接口请求至有序键值对存储引擎;基于用户端调用接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端调用接口请求,其中,有序键值对存储引擎的接口包括:基础接口、扫描接口。
[0006] 在一例中,第一方面所述的方法还包括:基于用户端调用接口请求,生成文件的文件信息,其中,文件信息包括:文件对应的键、文件对应的ID,文件为用户端请求存储的文件,文件对应的键为文件名称,文件对应的ID为文件的唯一身份标识;返回文件信息至所述用户端。
[0007] 在一例中,采用如下方式实现基于用户端调用基础接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端调用基础接口请求:直接调用有序键值对存储引擎的基础接口;基于有序键值对存储引擎的基础接口,实现用户端调用基础接口请求,其中,有序键值对存储引擎的基础接口包括:提交接口、获取接口及删除接口。
[0008] 在一例中,对象存储系统的分片接口包括:终止分段上传接口及完成分段上传接口;采用如下方式实现所基于所述用户端调用上传片段接口请求,调用有序键值对存储引擎的接口,通过所述有序键值对存储引擎的接口,实现用户端调用上传片段接口请求:基于用户端调用上传片段接口请求,接收用户端上传的文件的文件片段信息,其中,文件片段信息包括:文件片段对应的键、文件片段对应的值及文件片段在文件中的编号,所述文件片段对应的键为所述文件片段名称,所述文件片段对应的值所述文件片段的数据;拼接文件片段对应的键、文件对应的ID及文件片段在文件中的编号,作为第一键;调用有序键值对存储引擎的提交接口;基于有序键值对存储引擎的提交接口,保存第一键、文件片段对应的值至有序键值对存储引擎。
[0009] 在一例中,采用如下方式实现基于所述用户端调用基础接口的获取接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端调用基础接口的获取接口请求:获取文件对应的键;调用有序键值对存储引擎的获取接口;基于有序键值对存储引擎的获取接口,查找文件对应的键的值;基于有序键值对存储引擎的获取接口,判断文件对应的键的值,是否为分段上传产生的数据,若是,拆解第一键为多个所述文件片段对应的键;依次调用有序键值对存储引擎的获取接口;基于有序键值对存储引擎的获取接口,获取每个文件片段对应的键中的数据。
[0010] 在一例中,采用如下方式实现基于所述用户端调用终止分段上传接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端终止分段上传请求:基于用户端上传的终止分段上传请求,调用有序键值对存储引擎的扫描接口;基于有序键值对存储引擎的扫描接口、文件片段对应的键和所述文件对应的ID,获取已经上传的文件片段对应的值;调用有序键值对存储引擎的删除接口;基于有序键值对的删除接口,删除已上传的文件片段对应的值。
[0011] 在一例中,采样如下方式实现基于用户端调用完成分段上传接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端完成分段上传请求:基于用户端调用完成分段上传接口请求,调用键值对存储引擎的扫描接口;基于有序键值对存储引擎的扫描接口、文件对应的键和文件对应的ID,获取已上传的文件片段对应的键;
拼接已上传的文件片段对应的键,作为第二键;调用有序键值对存储引擎的提交接口;基于有序键值对存储引擎的提交接口,保存文件对应的键及第二键至有序键值对存储引擎。
[0012] 在一例中,对象存储系统的罗列接口包括非递归罗列接口;采用如下方式实现基于用户端调用非罗列递归接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端调用非罗列递归请求:基于用户端调用非罗列递归接口请求,提取文件对应的键的前缀;调用有序键值对存储引擎的扫描接口;基于有序键值对存储引擎的扫描接口,扫描是否满足连续预设数值的包含前缀的所述文件片段对应的键,若是,停止扫描,基于包含前缀的所述文件片段对应的键,确定文件对应的键的直接子键,若否,执行基于有序键值对存储引擎的扫描接口,扫描是否满足连续预设数值的包含前缀的所述文件片段对应的键的步骤。
[0013] 第二方面,本发明实施例提供一种实现S3标准对象存储接口的装置,装置包括:接收单元,用于接收用户端调用接口请求,其中,用户端调用对象存储系统提供的接口,对象存储系统提供的接口包括:基础接口、分片接口、罗列接口;上传单元,用于上传用户端调用接口请求至有序键值对存储引擎;调用单元,用于基于用户端调用接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端调用接口请求,其中,有序键值对存储引擎的接口包括:基础接口、扫描接口。
[0014] 在一例中,第二方面所述的装置,还包括:生成单元,用于基于用户端调用接口请求,生成文件的文件信息,其中,文件信息包括:文件对应的键、文件对应的ID,文件为用户端请求存储的文件,文件对应的键为文件名称,文件对应的ID为文件的唯一身份标;返回单元,用于返回文件信息至所述用户端。
[0015] 在一例中,调用单元采用如下方式实现基于用户端调用基础接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端调用基础接口请求:直接调用有序键值对存储引擎的基础接口;基于有序键值对存储引擎的基础接口,实现用户端调用基础接口请求,其中,有序键值对存储引擎的基础接口包括:提交接口、获取接口及删除接口。
[0016] 在一例中,对象存储系统的分片接口包括:初始化分片上传接口上传片段接口、终止分段上传接口及完成分段上传接口;调用单元采用如下方式实现所基于所述用户端调用上传片段接口请求,调用有序键值对存储引擎的接口,通过所述有序键值对存储引擎的接口,实现用户端调用上传片段接口请求:基于用户端调用上传片段接口请求,接收用户端上传的文件的文件片段信息,其中,文件片段信息包括:文件片段对应的键、文件片段对应的值及文件片段在文件中的编号,所述文件片段对应的键为所述文件片段名称,所述文件片段对应的值所述文件片段的数据;拼接文件片段对应的键、文件对应的ID及文件片段在文件中的编号,作为第一键;调用有序键值对存储引擎的提交接口;基于有序键值对存储引擎的提交接口,保存第一键、文件片段对应的值至有序键值对存储引擎。
[0017] 在一例中,调用单元采用如下方式实现基于所述用户端调用基础接口的获取接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端调用基础接口的获取接口请求:获取文件对应的键;调用有序键值对存储引擎的获取接口;基于有序键值对存储引擎的获取接口,查找文件对应的键的值;基于有序键值对存储引擎的获取接口,判断文件对应的键的值,是否为分段上传产生的数据,若是,拆解第一键为多个所述文件片段对应的键;依次调用有序键值对存储引擎的获取接口;基于有序键值对存储引擎的获取接口,获取每个文件片段对应的键中的数据。
[0018] 在一例中,调用单元采用如下方式实现基于所述用户端调用终止分段上传接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端终止分段上传请求:基于用户端上传的终止分段上传请求,调用有序键值对存储引擎的扫描接口;基于有序键值对存储引擎的扫描接口、文件片段对应的键和所述文件对应的ID,获取已经上传的文件片段对应的值;调用有序键值对存储引擎的删除接口;基于有序键值对的删除接口,删除已上传的文件片段对应的值。
[0019] 在一例中,调用单元采样如下方式实现基于用户端调用完成分段上传接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端完成分段上传请求:基于用户端调用完成分段上传接口请求,调用键值对存储引擎的扫描接口;基于有序键值对存储引擎的扫描接口、文件对应的键和文件对应的ID,获取已上传的文件片段对应的键;拼接已上传的文件片段对应的键,作为第二键;调用有序键值对存储引擎的提交接口;基于有序键值对存储引擎的提交接口,保存文件对应的键及第二键至有序键值对存储引擎。
[0020] 在一例中,对象存储系统的罗列接口包括非递归罗列接口;调用单元采用如下方式实现基于用户端调用非罗列递归接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端调用非罗列递归请求:基于用户端调用非罗列递归接口请求,提取文件对应的键的前缀;调用有序键值对存储引擎的扫描接口;基于有序键值对存储引擎的扫描接口,扫描是否满足连续预设数值的包含前缀的所述文件片段对应的键,若是,停止扫描,基于包含前缀的所述文件片段对应的键,确定文件对应的键的直接子键,若否,执行基于有序键值对存储引擎的扫描接口,扫描是否满足连续预设数值的包含前缀的所述文件片段对应的键的步骤。
[0021] 第三方面,本发明实施例提供一种电子设备,其中,电子设备包括:存储器,用于存储指令;以及处理器,用于调用存储器存储的指令执行第一方面的方法。
[0022] 第四方面,本发明实施例提供一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在由处理器执行时,执行第一方面的方法。
[0023] 本发明提供的一种实现S3标准对象存储接口的方法及装置,用户端若需要存储或读取数据时,调用对象存储系统的接口,对象存储系统将用户端调用接口请求发送至有序键值对存储引擎,基于有序键值对存储引擎的获取接口、提交接口、删除接口、扫描接口,实现用户端调用接口请求。通过上述方式,将数据以键值对的形式存储在有序键值对存储引擎中,用户端读取文件时,可按照文件的文件片段对应的键的顺序扫描键值对,确定读取的内容即可,而无需根据目录节点依次储或读取数据,提高了数据存储、读取的效率。附图说明
[0024] 通过参考附图阅读下文的详细描述,本发明实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
[0025] 图1示出了本发明实施例提供的一种实现S3标准对象存储接口的方法示意图;
[0026] 图2示出了本发明实施例提供的另一种实现S3标准对象存储接口的方法示意图;
[0027] 图3示出了本发明实施例提供的又一种实现S3标准对象存储接口的方法示意图;
[0028] 图4示出了本发明实施例提供的一种实现S3标准对象存储接口的装置示意图;
[0029] 图5示出了本发明实施例提供的另一种实现S3标准对象存储接口的装置示意图;
[0030] 图6示出了本发明实施例提供的一种电子设备示意图;
[0031] 在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

[0032] 下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。
[0033] 需要注意,虽然本文中使用“第一”、“第二”等表述来描述本发明的实施方式的不同模、步骤和数据等,但是“第一”、“第二”等表述仅是为了在不同的模块、步骤和数据等之间进行区分,而并不表示特定的顺序或者重要程度。实际上,“第一”、“第二”等表述完全可以互换使用。
[0034] 目前的对象存储系统利用可移植操作系统接口标准实现数据存储及数据读取方案,具有目标节点概念,每个目录对应一个节点,每个子目录对应一个子节点,其中,每个目录代表一个文件的名称、每个子目录代表一个子文件的名称。当用户调用一个简单接口存储或调用数据时,对象存储系统利用可移植操作系统接口标准实现数据存储及数据读取方案需要沿着每个目录节点依次存储或查找。当存储或读取文件数量较大时,用户请求存储或读取文件,需要逐个文件依次存储文件目录节点或根据已存储的文件目录节点依次查找文件,使文件存储或读取效率低。其中,文件中存储数据。
[0035] 可移植操作系统接口标准,定义了操作系统应该为应用程序提供的接口标准。与一个可移植操作系统接口标准兼容的操作系统编写的符合可移植操作系统接口标准的应用程序,可以直接在其他可移植操作系统接口标准支持的操作系统中,无需修改而能够直接编译运行。
[0036] 目前的对象存储系统的接口包括:基础接口:用于处理小文件的获取接口、提交接口、删除接口等接口。分片接口:用于处理大文件的分片上传相关接口,包括:初始化分片上传接口、上传接口、中止分片上传接口、完成分片上传接口等接口。罗列接口,包括类似文件系统目录的非递归接口和类似文件系统目录的递归接口,其中,大文件为10GB-TB级别的文件。
[0037] 目前的有序键值对存储引擎通常提供四种基本接口:获取接口,用于获取一个键对应的内容。提交接口,用于插入或覆盖一个键对应的内容。删除接口,用于删除一个键对应的内容。扫描接口,用于从第一个键开始至最后一个键结束,扫描键值对。其中,键以字典序排序,最后一个键可以为空。
[0038] 本公开实施例提供的一种实现S3标准对象存储接口的方法,用户端若需要存储或读取数据时,调用对象存储系统的接口,对象存储系统将用户端调用接口请求发送至有序键值对存储引擎,基于有序键值对存储引擎的获取接口、提交接口、删除接口、扫描接口,实现用户端调用接口请求。通过上述方式,将数据以键值对的形式存储在有序键值对存储引擎中,当用户端读取文件时,可按照文件的文件片段对应的键的顺序扫描键值对,确定读取的内容即可,而无需根据目录节点依次存储或读取数据,提高了数据存储、读取的效率。
[0039] 图1为本公开实施例提供的一种实现S3标准对象存储接口的方法的示意图。如图1所示,本公开实施例提供的一种实现S3标准对象存储接口的方法,应用于对象存储系统,包括步骤S101至步骤S103。
[0040] 在步骤S101中,接收用户端调用接口请求。
[0041] 在一例中,对象存储系统接收用户端调用接口的请求。
[0042] 在一例中,用户端调用对象存储系统提供的接口,对象存储系统提供的接口包括:基础接口、分片接口、罗列接口。
[0043] 在步骤S102中,上传用户端调用接口请求至有序键值对存储引擎。
[0044] 在一例中,对象存储系统上传用户端调用接口请求至有序键值对存储引擎。
[0045] 在一例中,有序键值对存储引擎是数据库底层软件组织,数据库管理系统使用有序键值对存储引擎进行创建、查询、更新和删除数据。
[0046] 在步骤S103中,基于用户端调用接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端调用接口请求。
[0047] 在一例中,对象存储系统基于用户端调用接口请求,调用有序键值对存储引擎的相应接口。对象存储系统通过有序键值对存储引擎的接口,实现用户端调用接口请求。
[0048] 在一例中,有序键值对存储引擎的接口包括:基础接口、扫描接口。
[0049] 本公开实施例提供的一种实现S3标准对象存储接口的方法,用户端若需要存储或读取数据时,调用对象存储系统的接口,对象存储系统将用户端调用接口请求发送至有序键值对存储引擎,基于有序键值对存储引擎的获取接口、提交接口、删除接口、扫描接口,实现用户端调用接口请求。通过上述方式,将数据以键值对的形式存储在有序键值对存储引擎中,用户端读取文件时,可按照文件的文件片段对应的键的顺序扫描键值对,确定读取的内容即可,而无需根据目录节点依次存储或读取数据,提高了数据存储、读取的效率。
[0050] 图2为本公开实施例提供的另一种实现S3标准对象存储接口的方法的示意图。如图2所示,本公开实施例提供的一种实现S3标准对象存储接口的方法,应用于对象存储系统,包括步骤S201至步骤S205。其中,步骤S201、步骤S202、步骤S203,与图1中的步骤S101、步骤S102、步骤S103相同,此处不再赘述。
[0051] 在步骤S204中,基于用户端调用接口请求,生成文件的文件信息。
[0052] 在一例中,对象存储系统的服务端,基于用户调用接口请求,服务端可直接在对象存储系统的内存中生成文件信息。
[0053] 在一例中,文件信息包括:文件对应的键、文件对应的ID,文件为用户端请求存储的文件。
[0054] 在一例中,用户端请求存储的文件对应的键可为用户端请求存储文件的名称。
[0055] 在一例中,用户端请求存储文件对应的ID,为用户端请求存储文件的唯一身份标记,唯一身份标记可为一个保证全局唯一性的随机字符串,只要保证用户端请求存储文件身份的唯一性即可。
[0056] 在步骤S205中,返回文件信息至用户端。
[0057] 在一例中,对象存储系统的服务端返回文件信息至用户端。
[0058] 基于本公开实施例提供的一种实现S3标准对象存储接口的方法,能够生成用户端需要存储文件对应的键、用户端需要存储文件对应的ID,方便用户端读取已存储的文件。也为用户端调用对象存储系统的接口,对象存储系统将用户端调用接口请求发送至有序键值对存储引擎,基于有序键值对存储引擎接口,实现用户端调用接口请求做准备工作。
[0059] 由于有序键值对存储引擎通常包括获取接口、提交接口、删除接口、扫描接口四个接口,而对象存储系统通常包括:基础接口、分片接口、罗列接口三类接口。其中,对象存储系统的基础接口包括获取接口、提交接口、删除接口等接口。对象存储系统的分片接口包括:初始化分片上传接口、上传接口、中止分片上传接口、完成分片上传接口等接口。罗列接口包括类似文件系统目录的非递归接口和类似文件系统目录的递归接口等接口。因此若实现将用户调用对象存储系统接口的请求发送至有序键值对存储引擎接口中,并基于有序键值对存储引擎接口实现用户端调用接口请求,不同的接口实现用户端请求过程不同。接下来介绍用户端调用不同接口时,有序键值对存储引擎实现用户端请求的过程。
[0060] 在一种实施方式中,采用如下方式实现基于用户端调用基础接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端调用基础接口请求:直接调用有序键值对存储引擎的基础接口。基于有序键值对存储引擎的基础接口,实现用户端调用基础接口请求。
[0061] 在一例中,对象存储系统直接调用有序键值对存储引擎的基础接口。对象存储系统基于有序键值对存储引擎的基础接口,实现用户端调用基础接口请求。
[0062] 由于有序键值对存储引擎提供的接口,与对象存储系统中的基础接口相对应。而为了实现基于有序键值对存储引擎处理用户端调用对象存储系统接口请求,因此,将用户端调用的对象存储系统的获取接口、提交接口、删除接口请求,直接转发至有序键值对存储引擎中提供的获取接口、提交接口、删除接口,利用有序键值对存储引擎中的获取接口、提交接口、删除接口,完成用户端调用获取接口、提交接口、删除接口请求对应的工作。可提高对象存储系统处理用户端调用基础接口请求的工作效率。
[0063] 在一种实施方式中,采用如下方式实现基于用户端调用上传片段接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端调用上传片段接口请求:基于用户端调用上传片段接口请求,接收用户端上传的文件的文件片段信息。基于有序键值对存储引擎拼接文件片段信息中的文件片段对应的键、文件对应的ID及文件片段在文件中的编号,作为第一键。调用有序键值对存储引擎的提交接口。基于有序键值对存储引擎的提交接口,保存第一键、文件片段对应的值至有序键值对存储引擎。
[0064] 在一例中,对象存储系统基于用户端调用上传片段接口请求,接收用户端上传的文件的文件片段信息。对象存储系统的服务端拼接文件片段信息中的文件片段对应的键、文件对应的ID及文件片段在文件中的编号,作为第一键。对象存储系统调用有序键值对存储引擎的提交接口,并基于有序键值对存储引擎的提交接口,保存第一键、文件片段对应的值至有序键值对存储引擎。
[0065] 在一例中,文件片段信息包括:文件片段对应的键、文件片段对应的值、文件片段在文件中的编号及文件对应的ID。
[0066] 在一例中,用户端选择将需要存储的文件分成几个片段,并通过对象存储系统的服务端为每个文件片段编号、为每个文件片段生成一个名称,即文件片段对应的键,而文件片段对应的值为文件片段中的数据。此时,文件片段的名称与文件片段中的数据为一个键值对。
[0067] 在一例中,文件片段对应的键、文件片段对应的值、文件片段在文件中的编号由对象存储系统的服务端生成,并返回至用户端。
[0068] 将用户端调用的对象存储系统的上传片段接口请求,直接转发至有序键值对存储引擎中提供的获取接口,利用有序键值对存储引擎中的获取接口,完成用户端调用上传片段接口请求对应的工作。可提高对象存储系统处理用户端调用上传片段接口请求的工作效率。
[0069] 在一种实施方式中,采用如下方式实现基于用户端调用终止分段上传接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端终止分段上传请求:基于用户端上传的终止分段上传请求,调用有序键值对存储引擎的浏览接口。基于有序键值对存储引擎的浏览接口、文件片段对应的键和文件对应的ID,获取已经上传的文件片段对应的值。调用有序键值对存储引擎的删除接口。基于有序键值对的删除接口,删除已上传的文件片段对应的值。
[0070] 在一例中,对象存储系统的服务端在接收到用户端上传的终止分段上传请求后,调用有序键值对存储引擎的浏览接口。对象存储系统基于有序键值对存储引擎的浏览接口、文件片段对应的键和文件对应的ID,获取已经上传的文件片段对应的值。对象存储系统的服务端调用有序键值对存储引擎的删除接口。对象存储系统基于有序键值对的删除接口,删除已上传的文件片段对应的值。
[0071] 将用户端调用的对象存储系统的终止分段上传请求,直接转发至有序键值对存储引擎中提供的获取接口,利用有序键值对存储引擎中的删除接口,完成用户端调用终止分段上传请求对应的工作。可提高对象存储系统处理终止分段上传请求的回收有序键值对存储引擎的存储空间效率。
[0072] 在一种实施方式中,采用如下方式实现基于用户端调用基础接口的获取接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端调用基础接口的获取接口请求:获取文件对应的键。调用有序键值对存储引擎的获取接口。基于有序键值对存储引擎的获取接口,查找文件对应的键的值。基于有序键值对存储引擎的获取接口,判断文件对应的键的值,是否为分段上传产生的数据,若是,拆解第一键为多个文件片段对应的键。依次调用有序键值对存储引擎的获取接口。基于有序键值对存储引擎的获取接口,获取每个文件片段对应的键中的数据。
[0073] 在一例中,对象存储系统的服务端获取文件对应的键。对象存储系统调用有序键值对存储引擎的获取接口。对象存储系统基于有序键值对存储引擎的获取接口,查找文件对应的键的值。对象存储系统基于有序键值对存储引擎的获取接口,判断文件对应的键的值,是否为分段上传产生的数据,若是,拆解第一键为多个文件片段对应的键。对象存储系统依次调用有序键值对存储引擎的获取接口。对象存储系统基于有序键值对存储引擎的获取接口,获取每个文件片段对应的键中的数据。
[0074] 在一例中,有序键值对存储引擎的获取接口,若用户端调用对象存储系统获取接口请求,可直接转发用户端调用获取接口请求至有序键值对存储引擎。若用户端调用获取接口读取已经存储的数据,则需求本公开实施例提供的对象存储系统将用户端调用获取接口请求转发至有序键值对存储引擎的获取接口,进而获取已存储的数据。
[0075] 一种实施方式中,在采样如下方式实现基于用户端调用完成分段上传接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端完成分段上传请求:基于用户端调用完成分段上传接口请求,调用键值对存储引擎的扫描接口。基于有序键值对存储引擎的扫描接口、文件对应的键和文件对应的ID,获取已上传的文件片段对应的键。拼接已上传的文件片段对应的键,作为第一键。调用有序键值对存储引擎的提交接口。基于有序键值对存储引擎的提交接口,保存文件对应的键及第一键至有序键值对存储引擎。
[0076] 在一例中,对象存储系统的服务端基于用户端调用完成分段上传接口请求,调用键值对存储引擎的扫描接口。对象存储系统基于有序键值对存储引擎的扫描接口、文件对应的键和文件对应的ID,获取已上传的文件片段对应的键。对象存储系统基于有序键值对存储引擎的扫描接口,拼接已上传的文件片段对应的键,作为第一键。对象存储系统基于有序键值对存储引擎的扫描接口,调用有序键值对存储引擎的提交接口。对象存储系统基于有序键值对存储引擎的提交接口,保存文件对应的键及第一键至有序键值对存储引擎。
[0077] 将用户端调用的对象存储系统的完成分段上传接口请求,直接转发至有序键值对存储引擎中提供的扫描接口、提交接口,利用有序键值对存储引擎中的扫描接口,完成用户端调用完成分段上传接口请求对应的工作。可提高对象存储系统处理完成分段上传接口请求的保存完整的分段文件中包含信息的效率。
[0078] 在有序键值对存储引擎中只包括扫描接口,而有序键值对存储引擎的扫描接口的功能,相当于对象存储系统中的递归罗列接口的作用,而无法实现对象存储系统中非递归罗列接口的作用。因此,下面的实施例中,对象存储系统基于有序键值对存储引擎的扫描接口,提供了高效率的非递归罗列接口的实现,从而使基于有序键值对存储引擎的对象存储系统实现实现数据存储及数据读取方案的整体效果,优于基于可移植操作系统接口标准的对象存储系统实现数据存储及数据读取方案。
[0079] 在一种实施方式中,对象存储系统的罗列接口包括非递归罗列接口。
[0080] 采用如下方式实现基于所述用户端调用非罗列递归接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端调用非罗列递归请求:基于用户端调用非罗列递归接口请求,提取文件对应的键的前缀。调用有序键值对存储引擎的扫描接口。基于有序键值对存储引擎的扫描接口,扫描是否满足连续预设数值的包含前缀的文件片段对应的键,若是,停止扫描,基于包含前缀的文件片段对应的键,确定文件对应的键的直接子键,若否,执行基于有序键值对存储引擎的扫描接口,扫描是否满足连续预设数值的包含前缀的文件片段对应的键的步骤。
[0081] 在一例中,对象存储系统基于用户端调用非罗列递归接口请求,提供对象存储系统的服务端提取需要存储文件对应的键的前缀。对象存储系统的服务端调用有序键值对存储引擎的扫描接口。对象存储系统基于有序键值对存储引擎的扫描接口,扫描是否满足连续预设数值的包含前缀的文件片段对应的键,若是,停止扫描,利用包含前缀的需要存储文件片段对应的键,确定文件对应的键的直接子键,若否,执行对象存储系统基于有序键值对存储引擎的扫描接口,扫描是否满足连续预设数值的包含前缀的文件片段对应的键的步骤。
[0082] 在一例中,本实施例中的处理过程为执行一次扫描接口实现非罗列递归过程,进而找出文件对应的键的前缀的直接子键。若需多次基于提取文件对应的键的前缀,扫描是否满足连续预设数值的包含前缀的文件片段对应的键,进而确定用户端存储文件对应的键的直接子键,可执行多次上述执行一次扫描接口实现非罗列递归过程。
[0083] 在一例中,直接子键为紧邻文件对应的键的文件片段对应的键。例如,若需要存储文件对应的键的前缀为a,存储在有序键值对存储引擎中的、需要存储文件对应的键的前缀为a四条键分别为:a/b/c、a/b/d、a/c、a/e/g,则非递归罗列需要存储文件对应的键的前缀,返回结果为[‘b’,‘c’,‘e’]。
[0084] 在一例中,预设数值为人为预先设定的调用一次有序键值对存储引擎的扫描接口,连续扫描预设数值的有序键值对存储引擎中存储的键值对的键的扫描次数。例如,预设数值根据所存储的文件大小而设定,例如,若文件包含100万个文件片段,可将预设数值设置为1万,那么在调用一次有序键值对存储引擎时,只需扫描前1万个文件片段对应的键,即可提前终止调用一次有序键值对存储引擎的调用过程,基于已扫描出的文件片段对应的键,得出需要存储文件对应的键的前缀的直接子键,即可得出需要存储文件对应的键的前缀的直接子键所在路径。
[0085] 基于需要存储的文件的文件片段数量,合理设置预设数值,可使得用户端调用对象存储系统的非递归罗列接口,基于有序键值对存储引擎的扫描接口满足用户端请求的扫描接口工作效率提高。
[0086] 图3为本公开实施例提供的又一种实现S3标准对象存储接口的方法的示意图。如图3所示,本公开实施例提供的一种实现S3标准对象存储接口的方法,展示了用户端向对象存储系统发送调用接口请求、对象存储系统转发用户端调用接口请求至有序键值对存储引擎的完整过程,包括:
[0087] 在步骤S301中,接收用户端发送的调用获取接口请求,获取数据;
[0088] 在步骤S302中,接收用户端发送的调用获取接口请求,判断请求获取的数据是否为分段上传数据,若是,调用有序键值对存储引擎,若否,返回用户端;
[0089] 在步骤S303中,接收用户端发送的调用删除或提交接口,直接转发至有序键值对存储引擎的删除或提交接口;
[0090] 在步骤S304中,接收用户端调用初始化分片上传接口,返回需要存储文件的ID;
[0091] 在步骤S305中,接收用户端调用上传片段接口,转发至有序键值对存储引擎的提交接口;
[0092] 在步骤S306中,接收用户端调用终止分段上传接口,转发至有序键值对存储引擎的扫描接口,获取已上传的文件片段;
[0093] 在步骤S307中,接收用户端调用终止分段上传接口,转发至有序键值对存储引擎的删除接口,删除已上传的文件片段;
[0094] 在步骤S308中,接收用户端调用完成分段上传接口,转发至有序键值对存储引擎的扫描接口,获取已上传的文件片段;
[0095] 在步骤S309中,接收用户端调用完成分段上传接口,转发至有序键值对存储引擎的提交接口,保存完整的已上传的文件片段;
[0096] 在步骤S310中,接收用户端调用递归罗列接口,直接转发至有序键值对存储引擎的扫描接口;
[0097] 在步骤S311中,接收用户端调用非递归罗列接口,直接转发至有序键值对存储引擎的扫描接口。
[0098] 基于与一种实现S3标准对象存储接口的方法相同的发明构思,本公开是实施例提供一种实现S3标准对象存储接口的装置。
[0099] 图4为本公开实施例提供的一种实现S3标准对象存储接口的装置示意图。如图4所示,本公开实施例提供的一种实现S3标准对象存储接口的装置,包括:
[0100] 接收单元110,用于接收用户端调用接口请求,其中,用户端调用对象存储系统提供的接口,对象存储系统提供的接口包括:基础接口、分片接口、罗列接口。
[0101] 上传单元120,用于上传用户端调用接口请求至有序键值对存储引擎。
[0102] 调用单元130,用于基于用户端调用接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端调用接口请求,其中,有序键值对存储引擎的接口包括:基础接口、扫描接口。
[0103] 图5为本公开实施例提供的另一种实现S3标准对象存储接口的装置示意图。如图5所示,本公开实施例提供的另一种实现S3标准对象存储接口的装置,还包括:
[0104] 生成单元140,用于基于用户端调用接口请求,生成文件的文件信息,其中,文件信息包括:文件对应的键、文件对应的ID,文件为用户端请求存储的文件,文件对应的键为文件名称,文件对应的ID为文件的唯一身份标。
[0105] 返回单元150,用于返回文件信息至所述用户端。
[0106] 在一种实施方式中,调用单元130采用如下方式实现基于用户端调用基础接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端调用基础接口请求:直接调用有序键值对存储引擎的基础接口。基于有序键值对存储引擎的基础接口,实现用户端调用基础接口请求,其中,有序键值对存储引擎的基础接口包括:提交接口、获取接口及删除接口。
[0107] 在一种实施方式中,对象存储系统的分片接口包括:初始化分片上传接口上传片段接口、终止分段上传接口及完成分段上传接口。调用单元130采用如下方式实现所基于所述用户端调用上传片段接口请求,调用有序键值对存储引擎的接口,通过所述有序键值对存储引擎的接口,实现用户端调用上传片段接口请求:基于用户端调用上传片段接口请求,接收用户端上传的文件的文件片段信息,其中,文件片段信息包括:文件片段对应的键、文件片段对应的值及文件片段在文件中的编号,文件片段对应的键为文件片段名称,文件片段对应的值文件片段的数据。拼接文件片段对应的键、文件对应的ID及文件片段在文件中的编号,作为第一键。调用有序键值对存储引擎的提交接口。基于有序键值对存储引擎的提交接口,保存第一键、文件片段对应的值至有序键值对存储引擎。
[0108] 在一种实施方式中,调用单元130采用如下方式实现基于所述用户端调用基础接口的获取接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端调用基础接口的获取接口请求:获取文件对应的键。调用有序键值对存储引擎的获取接口。基于有序键值对存储引擎的获取接口,查找文件对应的键的值。基于有序键值对存储引擎的获取接口,判断文件对应的键的值,是否为分段上传产生的数据,若是,拆解第一键为多个所述文件片段对应的键。依次调用有序键值对存储引擎的获取接口。基于有序键值对存储引擎的获取接口,获取每个文件片段对应的键中的数据。
[0109] 在一种实施方式中,调用单元130采用如下方式实现基于所述用户端调用终止分段上传接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端终止分段上传请求:基于用户端上传的终止分段上传请求,调用有序键值对存储引擎的扫描接口。基于有序键值对存储引擎的扫描接口、文件片段对应的键和所述文件对应的ID,获取已经上传的文件片段对应的值。调用有序键值对存储引擎的删除接口。基于有序键值对的删除接口,删除已上传的文件片段对应的值。
[0110] 在一种实施方式中,调用单元130采样如下方式实现基于用户端调用完成分段上传接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端完成分段上传请求:基于用户端调用完成分段上传接口请求,调用键值对存储引擎的扫描接口。基于有序键值对存储引擎的扫描接口、文件对应的键和文件对应的ID,获取已上传的文件片段对应的键。拼接已上传的文件片段对应的键,作为第二键。调用有序键值对存储引擎的提交接口。基于有序键值对存储引擎的提交接口,保存文件对应的键及第二键至有序键值对存储引擎。
[0111] 在一种实施方式中,对象存储系统的罗列接口包括非递归罗列接口;调用单元130采用如下方式实现基于用户端调用非罗列递归接口请求,调用有序键值对存储引擎的接口,通过有序键值对存储引擎的接口,实现用户端调用非罗列递归请求:基于用户端调用非罗列递归接口请求,提取文件对应的键的前缀。调用有序键值对存储引擎的扫描接口。基于有序键值对存储引擎的扫描接口,扫描是否满足连续预设数值的包含前缀的所述文件片段对应的键,若是,停止扫描,基于包含前缀的所述文件片段对应的键,确定文件对应的键的直接子键,若否,执行基于有序键值对存储引擎的扫描接口,扫描是否满足连续预设数值的包含前缀的所述文件片段对应的键的步骤。
[0112] 装置中的各个模块所实现的功能与上文描述的方法中的步骤相对应,其具体实现和技术效果请参见上文对于方法步骤的描述,在此不再赘述。
[0113] 如图6所示,本发明的一个实施方式提供了一种电子设备40。其中,该电子设备40包括存储器410、处理器420、输入/输出(Input/Output,I/O)接口430。其中,存储器410,用于存储指令。处理器420,用于调用存储器410存储的指令执行本发明实施例的用于一种实现S3标准对象存储接口的方法。其中,处理器420分别与存储器410、I/O接口430连接,例如可通过总线系统和/或其他形式的连接机构(未示出)进行连接。存储器410可用于存储程序和数据,包括本发明实施例中涉及的用于一种实现S3标准对象存储接口的方法的程序,处理器420通过运行存储在存储器410的程序从而执行电子设备40的各种功能应用以及数据处理
[0114] 本发明实施例中处理器420可以采用数字信号处理器(Digital  Signal Processing,DSP)、现场可编程阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现,所述处理器420可以是中央处理单元(Central Processing Unit,CPU)或者具有数据处理能和/或指令执行能力的其他形式的处理单元中的一种或几种的组合。
[0115] 本发明实施例中的存储器410可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(Random Access Memory,RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD)等。
[0116] 本发明实施例中,I/O接口430可用于接收输入的指令(例如数字或字符信息,以及产生与电子设备40的用户设置以及功能控制有关的键信号输入等),也可向外部输出各种信息(例如,图像或声音等)。本发明实施例中I/O接口430可包括物理键盘、功能按键(比如音量控制按键、开关按键等)、鼠标、操作杆、轨迹球、麦克、扬声器、和触控面板等中的一个或多个。
[0117] 在一些实施方式中,本发明提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在由处理器执行时,执行上文所述的任何方法。
[0118] 尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。
[0119] 本发明的方法和装置能够利用标准编程技术来完成,利用基于规则的逻辑或者其他逻辑来实现各种方法步骤。还应当注意的是,此处以及权利要求书中使用的词语“装置”和“模块”意在包括使用一行或者多行软件代码的实现和/或硬件实现和/或用于接收输入的设备。
[0120] 此处描述的任何步骤、操作或程序可以使用单独的或与其他设备组合的一个或多个硬件或软件模块来执行或实现。在一个实施方式中,软件模块使用包括包含计算机程序代码的计算机可读介质的计算机程序产品实现,其能够由计算机处理器执行用于执行任何或全部的所描述的步骤、操作或程序。
[0121] 出于示例和描述的目的,已经给出了本发明实施的前述说明。前述说明并非是穷举性的也并非要将本发明限制到所公开的确切形式,根据上述教导还可能存在各种变形和修改,或者是可能从本发明的实践中得到各种变形和修改。选择和描述这些实施例是为了说明本发明的原理及其实际应用,以使得本领域的技术人员能够以适合于构思的特定用途来以各种实施方式和各种修改而利用本发明。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈