一种数据存取方法、装置、设备和计算机可读存储介质与流程

文档序号:31338012发布日期:2022-08-31 09:19阅读:64来源:国知局
一种数据存取方法、装置、设备和计算机可读存储介质与流程

1.本技术涉及分布式存储技术领域,特别是涉及一种数据存取方法、装置、设备和计算机可读存储介质。


背景技术:

2.当前市场有需求需要s3(simple storage service,简单存储服务)和nas(network attached storage,网络附属存储)协议互访互通,即nas写入的文件后续可以通过s3协议操作,s3写入的数据后续通过nas也可以操作。nas可以支持多种类型的协议同时共享一份数据。
3.当前的分布式存储系统支持s3和nas融合互通的实现方式主要有两种。第一种实现方式是以s3对象存储为底座,部署nfs ganesha网关实现nfs文件协议到s3协议的转换;由于底座s3的语义限制,对nas上比较常见的操作比如修改写、删除表结构(truncate)以及重命名(rename)等操作都不支持,且只支持nfs协议不支持cifs协议,这就导致nas协议语义的丢失。
4.第二种实现方式是以分布式文件系统为底座,实现s3和nas互访互通。该方式可以避免nas相关语义丢失,很好的实现多协议互访互通。但是当前的分布式s3-nas融合互通存储存储系统,只支持普通文件的上传和下载,对于s3原有的大对象分段上传是不支持的。因为分段上传的每个分段大小是不固定的,完全由客户端决定,服务端在接收到上传请求时并不知道每个分段的大小。这就导致不能计算出本分段数据的起始位置,就不能把数据准确的写入到一个文件中。并且多个分段上传可以并发执行,并不是按分段号顺序依次上传完成的,这也导致不能根据已上传的数据计算当前分段的起始位置,无法准确的保存数据,导致数据的丢失或者错误。
5.可见,如何使得s3和nas的融合互通存储系统支持数据的分段上传,是本领域技术人员需要解决的问题。


技术实现要素:

6.本技术实施例的目的是提供一种数据存取方法、装置、设备和计算机可读存储介质,可以使得s3和nas的融合互通存储系统支持数据的分段上传。
7.为解决上述技术问题,本技术实施例提供一种数据存取方法,包括:
8.在获取到客户端传输的分段上传请求的情况下,创建文件夹,并按照设定的文件夹命名方式以及所述分段上传请求中携带的对象名,设置所述文件夹的名称;
9.依据所述分段上传请求中携带的分段数据和分段号,在所述文件夹下建立用于存储各分段数据的分段文件,各所述分段文件依据对应的分段号命名;
10.在所有分段数据上传成功后,创建对象文件;在所述对象文件中记录用于表征文件类型以及各所述分段文件存储位置的元数据。
11.可选地,所述按照设定的文件夹命名方式以及所述分段上传请求中携带的对象
名,设置所述文件夹的名称包括:
12.将目录标识符、所述对象名、分段上传标识符以及所述分段上传请求对应的操作标识符拼接作为所述文件夹的名称;其中,所述目录标识符为所述文件夹所属目录的标识符。
13.可选地,所述各所述分段文件依据对应的分段号命名包括:
14.将所述分段上传标识符和目标分段号拼接作为目标分段文件的名称;其中,所述目标分段号为所有所述分段号中的任意一个分段号;所述目标分段文件为所述目标分段号对应的分段文件。
15.可选地,所述在所有分段数据上传成功后,创建对象文件包括:
16.每获取到一个分段数据,则向所述客户端反馈携带所述操作标识符和分段号的响应信息;
17.在接收到所述客户端反馈的传输完成请求的情况下,利用所述传输完成请求中携带的校验信息,对所述文件夹下包含的所有分段文件进行校验;
18.在所述文件夹下包含的所有分段文件均通过校验的情况下,在所述文件夹所属目录下创建对象文件。
19.可选地,在所述利用所述传输完成请求中携带的校验信息,对所述文件夹下包含的所有分段文件进行校验之后还包括:
20.在所述文件夹下存在未通过校验的分段文件的情况下,展示分段文件异常的提示信息。
21.可选地,在所述对象文件中记录用于表征文件类型以及各所述分段文件存储位置的元数据之后还包括:
22.在获取到所述客户端传输的下载请求的情况下,读取与所述下载请求中携带的对象名匹配的目标对象文件;
23.判断所述目标对象文件中是否记录有分段上传标识符;
24.在所述目标对象文件中记录有分段上传标识符的情况下,依据所述目标对象文件中记录的各分段文件存储位置,获取对应的目标分段文件;
25.将各所述目标分段文件按照各自对应的分段号进行拼接,得到目标数据包;
26.将所述目标数据包反馈至所述客户端。
27.可选地,在所述对象文件中记录用于表征文件类型以及各所述分段文件存储位置的元数据之后还包括:
28.在获取到所述客户端传输的删除请求的情况下,判断是否存在与所述删除请求中携带的对象名匹配的目标对象文件;
29.在存在与所述删除请求中携带的对象名匹配的目标对象文件的情况下,判断所述目标对象文件中是否记录有分段上传标识符;
30.在所述目标对象文件中未记录有分段上传标识符的情况下,删除所述目标对象文件;
31.在所述目标对象文件中记录有分段上传标识符的情况下,依据所述目标对象文件中记录的各分段文件存储位置,删除各分段文件及其所属的文件夹,并删除所述目标对象文件。
32.本技术实施例还提供了一种数据存取装置,包括第一创建单元、设置单元、建立单元、第二创建单元和记录单元;
33.所述第一创建单元,用于在获取到客户端传输的分段上传请求的情况下,创建文件夹;
34.所述设置单元,用于按照设定的文件夹命名方式以及所述分段上传请求中携带的对象名,设置所述文件夹的名称;
35.所述建立单元,用于依据所述分段上传请求中携带的分段数据和分段号,在所述文件夹下建立用于存储各分段数据的分段文件,各所述分段文件依据对应的分段号命名;
36.所述第二创建单元,用于在所有分段数据上传成功后,创建对象文件;
37.所述记录单元,用于在所述对象文件中记录用于表征文件类型以及各所述分段文件存储位置的元数据。
38.可选地,所述设置单元用于将目录标识符、所述对象名、分段上传标识符以及所述分段上传请求对应的操作标识符拼接作为所述文件夹的名称;其中,所述目录标识符为所述文件夹所属目录的标识符。
39.可选地,所述建立单元用于将所述分段上传标识符和目标分段号拼接作为目标分段文件的名称;其中,所述目标分段号为所有所述分段号中的任意一个分段号;所述目标分段文件为所述目标分段号对应的分段文件。
40.可选地,所述第二创建单元包括反馈子单元、校验子单元和创建子单元;
41.所述反馈子单元,用于每获取到一个分段数据,则向所述客户端反馈携带所述操作标识符和分段号的响应信息;
42.所述校验子单元,用于在接收到所述客户端反馈的传输完成请求的情况下,利用所述传输完成请求中携带的校验信息,对所述文件夹下包含的所有分段文件进行校验;
43.所述创建子单元,用于在所述文件夹下包含的所有分段文件均通过校验的情况下,在所述文件夹所属目录下创建对象文件。
44.可选地,还包括展示单元;
45.所述展示单元,用于在所述文件夹下存在未通过校验的分段文件的情况下,展示分段文件异常的提示信息。
46.可选地,还包括读取单元、第一判断单元、获取单元、拼接单元和反馈单元;
47.所述读取单元,用于在获取到所述客户端传输的下载请求的情况下,读取与所述下载请求中携带的对象名匹配的目标对象文件;
48.所述第一判断单元,用于判断所述目标对象文件中是否记录有分段上传标识符;
49.所述获取单元,用于在所述目标对象文件中记录有分段上传标识符的情况下,依据所述目标对象文件中记录的各分段文件存储位置,获取对应的目标分段文件;
50.所述拼接单元,用于将各所述目标分段文件按照各自对应的分段号进行拼接,得到目标数据包;
51.所述反馈单元,用于将所述目标数据包反馈至所述客户端。
52.可选地,还包括第二判断单元、第三判断单元、第一删除单元和第二删除单元;
53.所述第二判断单元,用于在获取到所述客户端传输的删除请求的情况下,判断是否存在与所述删除请求中携带的对象名匹配的目标对象文件;
54.所述第三判断单元,用于在存在与所述删除请求中携带的对象名匹配的目标对象文件的情况下,判断所述目标对象文件中是否记录有分段上传标识符;
55.所述第一删除单元,用于在所述目标对象文件中未记录有分段上传标识符的情况下,删除所述目标对象文件;
56.所述第二删除单元,用于在所述目标对象文件中记录有分段上传标识符的情况下,依据所述目标对象文件中记录的各分段文件存储位置,删除各分段文件及其所属的文件夹,并删除所述目标对象文件。
57.本技术实施例还提供了一种电子设备,包括:
58.存储器,用于存储计算机程序;
59.处理器,用于执行所述计算机程序以实现如上述数据存取方法的步骤。
60.本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述数据存取方法的步骤。
61.由上述技术方案可以看出,在获取到客户端传输的分段上传请求的情况下,创建文件夹,并按照设定的文件夹命名方式以及分段上传请求中携带的对象名,设置文件夹的名称;通过设置文件夹可以为分段数据的存储提供支持,并且通过文件夹名称可以区分不同分段上传请求所上传的数据。考虑到不同分段数据的长短不固定,因此为了实现对分段数据的存储,可以依据分段上传请求中携带的分段数据和分段号,在文件夹下建立用于存储各分段数据的分段文件,各分段文件依据对应的分段号命名,分段数据记录在与其分段名相同的分段文件中。为了实现分段数据的调取,在所有分段数据上传成功后,可以创建对象文件,在对象文件中记录用于表征文件类型以及各分段文件存储位置的元数据。在该技术方案中,通过创建支持分段数据存储的文件夹,可以将分段数据以分段文件的形式存储在该文件夹下,并且通过创建记录分段文件存储位置的对象文件,可以支持分段数据的后续调取。解决了s3和nas的融合互通存储系统不支持分段上传的问题,使得融合互通存储系统可以实现对大对象的分段上传,不仅能够准确的保存数据和下载数据,还能够大大提高对象上传性能,给客户带来了良好的用户体验,同时丰富了分布式融合互通存储的功能,提高了分布式存储产品的市场竞争力。
附图说明
62.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
63.图1为本技术实施例提供的一种数据存取方法的流程图;
64.图2为本技术实施例提供的一种数据分段上传的示意图;
65.图3为本技术实施例提供的一种分段数据下载的方法的流程图;
66.图4为本技术实施例提供的一种数据分段下载的示意图;
67.图5为本技术实施例提供的一种分段数据删除的方法的流程图;
68.图6为本技术实施例提供的一种数据分段删除的示意图;
69.图7为本技术实施例提供的一种数据存取装置的结构示意图;
70.图8为本技术实施例提供的一种电子设备的结构图。
具体实施方式
71.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本技术保护范围。
72.本技术的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
73.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。
74.接下来,详细介绍本技术实施例所提供的一种数据存取方法。图1为本技术实施例提供的一种数据存取方法的流程图,该方法包括:
75.s101:在获取到客户端传输的分段上传请求的情况下,创建文件夹。
76.在本技术实施例中,可以将客户端上传的一个完整数据包称作一个对象。考虑到不同对象的数据量有所差异,对于大数据量的对象,为了保证数据上传的性能,往往会将对象进行分段上传。
77.对于同属于一个对象的分段上传请求而言,这些分段上传请求会携带相同的对象名和操作标识符。对于同一个对象而言,其可能存在多次操作,操作标识符可以用于区分每次操作。
78.在获取到客户端传输的分段上传请求之后,为了支持分段数据的存储,可以在指定的目录下创建文件夹。
79.s102:按照设定的文件夹命名方式以及分段上传请求中携带的对象名,设置文件夹的名称。
80.在本技术实施例中,为了能够有效的区分每次分段上传请求传输的数据,可以设定文件夹命名方式。
81.在实际应用中,可以将目录标识符、对象名、分段上传标识符以及分段上传请求对应的操作标识符拼接作为文件夹的名称;其中,目录标识符为文件夹所属目录的标识符。
82.分段上传标识符用于表示当前记录的数据为分段数据。在实际应用中,除了分段数据外,也存在普通数据。通过对分段数据设置分段上传标识符可以用于识别数据是属于分段数据,还是属于普通数据。具有分段上传标识符的数据即为分段数据,不具有分段上传标识符的数据即为普通数据。
83.需要说明的是,除了按照目录标识符、对象名、分段上传标识符和操作标识符的顺序进行拼接外,也可以将这四类参数随机排序进行拼接作为文件夹的名称,或者是添加更多的参数进行拼接。只需要保证各文件夹的名称均按照统一的顺序进行命名即可。
84.s103:依据分段上传请求中携带的分段数据和分段号,在文件夹下建立用于存储各分段数据的分段文件,各分段文件依据对应的分段号命名。
85.对于同一个对象,其可以切分为多个分段数据,为了区分各分段数据的前后顺序,可以基于前后顺序设置分段号。在实际应用中,可以采用数字表示分段号,数字取值越大,说明分段数据在整个数据包中的位置越靠后。当然也可以定义为数字取值越小,说明分段
数据在整个数据包中的位置越靠后。在本技术实施例中,对于分段号的具体形式不做限定,能够用于区分不同分段数据的前后顺序即可。
86.在具体实现中,可以将分段上传标识符和目标分段号拼接作为目标分段文件的名称;其中,目标分段号为所有分段号中的任意一个分段号;目标分段文件为目标分段号对应的分段文件。
87.需要说明的是,除了按照分段上传标识符和目标分段号的顺序进行拼接外,也可以按照目标分段号和分段上传标识符的顺序进行拼接作为分段文件的名称。只需要保证各分段文件的名称均按照统一的顺序进行命名即可。
88.s104:在所有分段数据上传成功后,创建对象文件;在对象文件中记录用于表征文件类型以及各分段文件存储位置的元数据。
89.在实际应用中,在数据传输阶段,服务端和客户端会进行交互。客户端可以并行的向服务端传输分段数据。服务端每获取到一个分段数据,则可以向客户端反馈携带操作标识符和分段号的响应信息。
90.文件类型可以包括普通文件类型和分段文件类型。
91.客户端在接收到服务端反馈的响应信息后,可以基于接收到的同一个操作标识符下所对应的分段号,识别服务端是否接收到一个对象的所有分段数据,在确定服务端接收到一个对象的所有分段数据之后,可以向服务端反馈传输完成请求。
92.服务端在接收到客户端反馈的传输完成请求的情况下,可以利用传输完成请求中携带的校验信息,对文件夹下包含的所有分段文件进行校验;在文件夹下包含的所有分段文件均通过校验的情况下,在文件夹所属目录下创建对象文件。
93.对分段文件的校验可以包括对分段文件的正确性和完整性的校验,其具体实现方式采用目前常采用的数据校验方式,例如在实际应用中,可以采用md5(message-digest algorithm 5,信息-摘要算法5)对分段文件进行校验。
94.考虑到实际应用中,可能会存在分段文件校验未通过的情况,针对于该种情况,可以在文件夹下存在未通过校验的分段文件时,展示分段文件异常的提示信息。通过展示提示信息,可以便于管理人员及时发现并检查分段文件,避免异常的分段文件对存储系统安全性造成影响。
95.图2为本技术实施例提供的一种数据分段上传的示意图,图2中“temp dir”表示创建的文件夹,“object file”表示对象文件,文件夹在/tenant/bucket目录下创建。在实际应用中,对象名的形式可以多种多样,图2中并未限定对象名的形式,仅是以目录标识符、分段上传标识符和操作标识符的顺序拼接为例,即bucket_ino_multipart_uploadid。其中,bucket_ino表示目录标识符、multipart表示分段上传标识符、uploadid操作标识符。对于同一个对象的多个分段数据,可以以分段文件的形式存储在该文件夹下。图2中是以n个分段数据为例,这n个分段数据的分段号可以采用数字1至n表示。图2中是以在文件夹名称下直接后缀分段号的方式为例。考虑到实际应用中,分段文件属于文件夹下的文件,因此分段文件也可以直接采用分段上传标识符和目标分段号进行命名,例如图2中第一个分段文件可以直接命名为“multipart_1”。
96.由上述技术方案可以看出,在获取到客户端传输的分段上传请求的情况下,创建文件夹,并按照设定的文件夹命名方式以及分段上传请求中携带的对象名,设置文件夹的
名称;通过设置文件夹可以为分段数据的存储提供支持,并且通过文件夹名称可以区分不同分段上传请求所上传的数据。考虑到不同分段数据的长短不固定,因此为了实现对分段数据的存储,可以依据分段上传请求中携带的分段数据和分段号,在文件夹下建立用于存储各分段数据的分段文件,各分段文件依据对应的分段号命名,分段数据记录在与其分段名相同的分段文件中。为了实现分段数据的调取,在所有分段数据上传成功后,可以创建对象文件,在对象文件中记录用于表征文件类型以及各分段文件存储位置的元数据。在该技术方案中,通过创建支持分段数据存储的文件夹,可以将分段数据以分段文件的形式存储在该文件夹下,并且通过创建记录分段文件存储位置的对象文件,可以支持分段数据的后续调取。解决了s3和nas的融合互通存储系统不支持分段上传的问题,使得融合互通存储系统可以实现对大对象的分段上传,不仅能够准确的保存数据和下载数据,还能够大大提高对象上传性能,给客户带来了良好的用户体验,同时丰富了分布式融合互通存储的功能,提高了分布式存储产品的市场竞争力。
97.图3为本技术实施例提供的一种分段数据下载的方法的流程图,该方法包括:
98.s301:在获取到客户端传输的下载请求的情况下,读取与下载请求中携带的对象名匹配的目标对象文件。
99.当客户端需要获取分段数据时,可以向服务端传输下载请求,为了便于服务端能够获知客户端需要获取的是哪些数据,在下载请求中可以携带对象名。
100.服务端在获取到下载请求后,可以依据对象名查找对应的对象文件。服务端创建的对象文件可能有多个,为了便于区分,可以将与下载请求中携带的对象名匹配的对象文件称作目标对象文件。
101.s302:判断目标对象文件中是否记录有分段上传标识符。
102.目标对象文件可能是普通文件,也可能是记录元数据的对象文件。在实际应用中,可以通过判断目标对象文件中是否记录有分段上传标识符,来识别目标对象文件的类型。
103.在目标对象文件中记录有分段上传标识符的情况下,说明目标对象文件对应的是分段数据,此时为了获取到对象名对应的所有分段数据,可以执行s303。
104.s303:依据目标对象文件中记录的各分段文件存储位置,获取对应的目标分段文件。
105.目标对象文件中记录有用于表征各分段文件存储位置的元数据,服务端基于元数据,可以读取到对应的分段文件。
106.服务端往往存储有多个对象各自对应的分段文件,在本技术实施例中,为了便于区分,可以将与目标对象文件对应的分段文件称作目标分段文件。
107.s304:将各目标分段文件按照各自对应的分段号进行拼接,得到目标数据包,将目标数据包反馈至客户端。
108.各目标分段文件有其各自对应的分段号,因此基于分段号可以将各目标分段文件按顺序进行拼接,从而得到完整数据,可以将得到的完整数据称作目标数据包,此时服务端可以将目标数据包反馈至客户端。
109.图4为本技术实施例提供的一种数据分段下载的示意图,图4中“temp dir”表示创建的文件夹,“object file”表示对象文件,文件夹在/tenant/bucket目录下创建。图4中各符号的含义可以参见图2,在此不再赘述。图4中是以n个分段数据为例,这n个分段数据的分
段号可以采用数字1至n表示。当服务端接收到客服端传输的下载请求时,可以依据下载请求中携带的对象名匹配的目标对象文件,依据目标对象文件中记录的各分段文件存储位置,便可以获取对应的目标分段文件。将各目标分段文件按照各自对应的分段号进行拼接,得到目标数据包data。图4中part_1data表示分段号为1的分段数据,part_n data表示分段号为n的分段数据,将分段号从1至n的分段数据拼接可以得到data。
110.图5为本技术实施例提供的一种分段数据删除的方法的流程图,该方法包括:
111.s501:在获取到客户端传输的删除请求的情况下,判断是否存在与删除请求中携带的对象名匹配的目标对象文件。
112.服务端在获取到删除请求时,需要先确定出服务端上是否存储有对应的数据,因此在获取到删除请求时,可以判断是否存在与删除请求中携带的对象名匹配的目标对象文件。
113.在不存在与删除请求中携带的对象名匹配的目标对象文件的情况下,说明服务端上未存储对应的数据,可以不执行删除操作。为了便于客户端了解该情况,服务端可以向客户端反馈数据已删除的提示信息。
114.在存在与删除请求中携带的对象名匹配的目标对象文件的情况下,说明服务端上存储有对应的数据,此时可以执行s502。
115.s502:判断目标对象文件中是否记录有分段上传标识符。
116.由于普通文件和分段文件的存储方式不同,普通文件不需要进行分段。对于普通文件而言,对象文件即相当于普通文件。对于分段文件而言,其除了在同一个文件夹下创建的多个分段文件外,还包括记录元数据的对象文件。因此普通文件和分段文件的删除方式存在差异,普通文件直接执行删除操作即可,分段文件需要删除对象名所匹配的所有分段文件,以及对应的对象文件。
117.在本技术实施例中,可以通过目标对象文件中是否记录有分段上传标识符,来识别目标对象文件属于普通文件,还是属于记录元数据的对象文件。
118.在具体实现中,可以判断目标对象文件中是否记录有分段上传标识符。在目标对象文件中未记录有分段上传标识符的情况下,说明目标对象文件属于普通文件,此时可以执行s503。在目标对象文件中记录有分段上传标识符的情况下,说明目标对象文件属于记录元数据的对象文件,此时可以执行s504。
119.s503:删除目标对象文件。
120.s504:依据目标对象文件中记录的各分段文件存储位置,删除各分段文件及其所属的文件夹,并删除目标对象文件。
121.对于分段文件而言,需要删除对象名所匹配的所有分段文件,才能够保证对象名对应的数据删除干净。因此在实际应用中,在目标对象文件中记录有分段上传标识符的情况下,可以依据目标对象文件中记录的各分段文件存储位置,删除各分段文件及其所属的文件夹,并删除目标对象文件。
122.图6为本技术实施例提供的一种数据分段删除的示意图,图6中“temp dir”表示创建的文件夹,“object file”表示对象文件,文件夹在/tenant/bucket目录下创建。图6中各符号的含义可以参见图2,在此不再赘述。图6中是以n个分段数据为例,这n个分段数据的分段号可以采用数字1至n表示。当服务端接收到客服端传输的删除请求时,可以依据删除请
求中携带的对象名匹配的目标对象文件,依据目标对象文件中记录的各分段文件存储位置,便可以删除所有目标分段文件。此时目标分段文件所在的文件夹为空,可以删除该文件夹,当删除分段文件及其所属文件夹之后,目标对象文件不再具有使用价值,此时可以删除目标对象文件。
123.在本技术实施例中,通过构建文件夹,将分段数据以分段文件的形式存储在文件夹下,并通过对象文件记录分段文件存储位置,使得存储系统可以支持分段上传、下载、删除等一系列操作。客户端可以分段上传并发执行,能够大大提高对象上传性能,给客户带来了良好的用户体验,提高了分布式存储产品的市场竞争力。
124.图7为本技术实施例提供的一种数据存取装置的结构示意图,包括第一创建单元71、设置单元72、建立单元73、第二创建单元74和记录单元75;
125.第一创建单元71,用于在获取到客户端传输的分段上传请求的情况下,创建文件夹;
126.设置单元72,用于按照设定的文件夹命名方式以及分段上传请求中携带的对象名,设置文件夹的名称;
127.建立单元73,用于依据分段上传请求中携带的分段数据和分段号,在文件夹下建立用于存储各分段数据的分段文件,各分段文件依据对应的分段号命名;
128.第二创建单元74,用于在所有分段数据上传成功后,创建对象文件;
129.记录单元75,用于在对象文件中记录用于表征文件类型以及各分段文件存储位置的元数据。
130.可选地,设置单元用于将目录标识符、对象名、分段上传标识符以及分段上传请求对应的操作标识符拼接作为文件夹的名称;其中,目录标识符为文件夹所属目录的标识符。
131.可选地,建立单元用于将分段上传标识符和目标分段号拼接作为目标分段文件的名称;其中,目标分段号为所有分段号中的任意一个分段号;目标分段文件为目标分段号对应的分段文件。
132.可选地,第二创建单元包括反馈子单元、校验子单元和创建子单元;
133.反馈子单元,用于每获取到一个分段数据,则向客户端反馈携带操作标识符和分段号的响应信息;
134.校验子单元,用于在接收到客户端反馈的传输完成请求的情况下,利用传输完成请求中携带的校验信息,对文件夹下包含的所有分段文件进行校验;
135.创建子单元,用于在文件夹下包含的所有分段文件均通过校验的情况下,在文件夹所属目录下创建对象文件。
136.可选地,还包括展示单元;
137.展示单元,用于在文件夹下存在未通过校验的分段文件的情况下,展示分段文件异常的提示信息。
138.可选地,还包括读取单元、第一判断单元、获取单元、拼接单元和反馈单元;
139.读取单元,用于在获取到客户端传输的下载请求的情况下,读取与下载请求中携带的对象名匹配的目标对象文件;
140.第一判断单元,用于判断目标对象文件中是否记录有分段上传标识符;
141.获取单元,用于在目标对象文件中记录有分段上传标识符的情况下,依据目标对
象文件中记录的各分段文件存储位置,获取对应的目标分段文件;
142.拼接单元,用于将各目标分段文件按照各自对应的分段号进行拼接,得到目标数据包;
143.反馈单元,用于将目标数据包反馈至客户端。
144.可选地,还包括第二判断单元、第三判断单元、第一删除单元和第二删除单元;
145.第二判断单元,用于在获取到客户端传输的删除请求的情况下,判断是否存在与删除请求中携带的对象名匹配的目标对象文件;
146.第三判断单元,用于在存在与删除请求中携带的对象名匹配的目标对象文件的情况下,判断目标对象文件中是否记录有分段上传标识符;
147.第一删除单元,用于在目标对象文件中未记录有分段上传标识符的情况下,删除目标对象文件;
148.第二删除单元,用于在目标对象文件中记录有分段上传标识符的情况下,依据目标对象文件中记录的各分段文件存储位置,删除各分段文件及其所属的文件夹,并删除目标对象文件。
149.图7所对应实施例中特征的说明可以参见图1、图3和图5所对应实施例的相关说明,这里不再一一赘述。
150.由上述技术方案可以看出,在获取到客户端传输的分段上传请求的情况下,创建文件夹,并按照设定的文件夹命名方式以及分段上传请求中携带的对象名,设置文件夹的名称;通过设置文件夹可以为分段数据的存储提供支持,并且通过文件夹名称可以区分不同分段上传请求所上传的数据。考虑到不同分段数据的长短不固定,因此为了实现对分段数据的存储,可以依据分段上传请求中携带的分段数据和分段号,在文件夹下建立用于存储各分段数据的分段文件,各分段文件依据对应的分段号命名,分段数据记录在与其分段名相同的分段文件中。为了实现分段数据的调取,在所有分段数据上传成功后,可以创建对象文件,在对象文件中记录用于表征文件类型以及各分段文件存储位置的元数据。在该技术方案中,通过创建支持分段数据存储的文件夹,可以将分段数据以分段文件的形式存储在该文件夹下,并且通过创建记录分段文件存储位置的对象文件,可以支持分段数据的后续调取。解决了s3和nas的融合互通存储系统不支持分段上传的问题,使得融合互通存储系统可以实现对大对象的分段上传,不仅能够准确的保存数据和下载数据,还能够大大提高对象上传性能,给客户带来了良好的用户体验,同时丰富了分布式融合互通存储的功能,提高了分布式存储产品的市场竞争力。
151.图8为本技术实施例提供的一种电子设备的结构图,如图8所示,电子设备包括:存储器20,用于存储计算机程序;
152.处理器21,用于执行计算机程序时实现如上述实施例数据存取方法的步骤。
153.本实施例提供的电子设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
154.其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处
理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
155.存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的数据存取方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括windows、unix、linux等。数据203可以包括但不限于文件夹命名方式等。
156.在一些实施例中电子设备还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
157.本领域技术人员可以理解,图8中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的组件。
158.可以理解的是,如果上述实施例中的数据存取方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、磁碟或者光盘等各种可以存储程序代码的介质。
159.基于此,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述数据存取方法的步骤。
160.以上对本技术实施例所提供的一种数据存取方法、装置、设备和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
161.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
162.以上对本技术所提供的一种数据存取方法、装置、设备和计算机可读存储介质进
行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1