一种数据存储方法、数据传输方法及计算设备技术

技术编号:29497471 阅读:14 留言:0更新日期:2021-07-30 19:10
本发明专利技术公开了一种数据存储方法、数据传输方法及计算设备,数据存储方法包括:获取待存储数据,将待存储数据对象拆分为多个数据块,为每一数据块分配唯一名称,并保存每一数据块至预定存储结构的节点中,其中,预设定储结构中每一节点对应为一个数据服务器,每一节点分配唯一节点I D,每一节点最大存储容量相同,除最右叶子节点外所有叶子节点存储最大容量的数据,预定存储结构中每一节点用于存储第一类数据,第一类数据包括父节点I D、目录名称、数据块、数据块名称和节点I D中的一种或多种,目录名称为当前节点对应子节点存储的数据块的目录名称,从而在修改节点信息时只需修改节点本身信息和关联节点的信息,节点发生冲突的概率大大降低。

【技术实现步骤摘要】
一种数据存储方法、数据传输方法及计算设备
本专利技术涉及云存储
,特别涉及一种数据存储方法、数据传输方法、计算设备及储存介质。
技术介绍
随着社会经济的不断发展,数据正在爆发式地不断增长,各行各业均面临着巨大数据文件存储问题,而企业想依靠自身的力量存储数据和维护数据的成本高,且需要专业团队。因此,云存储成为各企业存储数据的一种选择。云存储是由网络服务商提供的一种网上在线数据存储服务模式,即把数据存储在由第三方托管的多台虚拟服务器。第三方运营大型的数据中心,用户需要购买其运营的存储空间,并通过应用程序接口访问存储空间进行数据存储。云存储是基于云存储结构实现的。目前,云存储结构主要包括中心存储结构和目录存储结构。中心存储结构,即文件的目录项全部存储到一个节点(节点为一个数据服务器)中,目录存储结构,即每一节点存储一个目录,包括该目录下所有文件的目录项。但是,上述的云存储结构当更改或者删除文件时均会修改中心存储结构,在多客户端同时操作文件时容易发生冲突。为此,本专利技术提供了一种可避免冲突的数据存储方法。
技术实现思路
为此,本专利技术提供一种数据存储方法,以力图解决或者至少缓解上面存在的问题。根据本专利技术的一个方面,提供了一种数据存储方法,在计算设备中执行,方法包括步骤:获取待存储数据;将待存储数据对象拆分为多个数据块,为每一数据块分配唯一名称;保存每一所述数据块至预定存储结构的节点中,其中,预设定储结构中每一节点对应为一个数据服务器,每一节点分配唯一节点ID,每一节点最大存储容量相同,除最右叶子节点外所有叶子节点存储最大容量的数据,预定存储结构中每一节点用于存储第一类数据,第一类数据包括父节点ID、目录名称、所述数据块、数据块名称和节点ID中的一种或多种,目录名称为当前节点对应子节点存储的数据块的目录名称。可选地,将待存储数据对象拆分为多个数据块的步骤包括:确定待存储数据对象的数据指针当前偏移量;以已确定的数据指针当前偏移量为起始位置,从待存储数据中读取第一预设数值的数据,作为一个数据块;更新数据指针当前偏移量为已确定的数据指针当前偏移量与第一预设数值之和。可选地,以已确定的数据指针当前偏移量为起始位置,从待存储数据中读取第一预设数值的数据,作为一个数据块的步骤包括:判断当前读取待存储数据次数与第一预设数值之积是否小于待存储数据大小,若是,以已确定的数据指针当前偏移量为起始位置读取第一预设数值的数据,若否,则根据如下公式确定读取待存储数据的数量,作为第二数值,以已确定的数据指针当前偏移量为起始位置读取第二数值的数据:L=m-(a-1)*b其中,L为读取待存储数据的数量,m为待存储数据所占存储空间大小,a为当前读取待存储数据的次数,b为第一预设数值;以已读取的数据作为一个数据块。可选地,保存每一数据块至预定存储结构的节点中的步骤包括:判断当前节点是否存在子节点,若是,在当前节点中保存其父节点ID、当前节点ID、目录名称,若否,在当前节点中保存其父节点ID、数据块、数据块名称和当前节点ID。可选地,包括步骤:判断预定存储结构中的每一节点是否存在左节点,若存在,则在当前节点中保存其左节点ID。可选地,还包括步骤:为每一数据块设置版本信息,其中,通过数据块版本信息区分数据块的版本;其中,判断当前节点是否存在子节点的步骤包括:判断当前节点是否存在子节点,若是,在当前节点中保存其父节点ID、当前节点ID、左节点ID、目录名称和数据块版本信息,若否,在当前节点中保存其父节点ID、当前节点ID、左节点ID、数据块、数据块名称和数据块版本信息。可选地,还包括步骤:响应于通过目标数据块替换预定存储结构的一个叶子节点中数据块的操作,判断目标数据块的数据块名称与当前节点中的数据块名称是否相同,若否,则不进行替换,若是,则判断目标数据块的数据块版本信息与当前节点中数据块版本信息是否相同;若目标数据块的数据块版本信息与当前节点中数据块版本信息相同,则将当前节点中数据块替换为目标数据块,若不相同,则不进行替换。可选地,还包括步骤:响应于重命名预定存储结构的一个节点中保存的数据块名称操作,更新当前节点中存储的数据块名称为重命名的名称。可选地,第一数值与预定存储结构中各节点的最大存储容量相等。根据本专利技术的另一个方面,提供了一种数据传输方法,在计算设备中执行,方法包括:获取待传输数据,其中,待传输数据为根据上述所述的数据存储方法存储的、预定存储结构中各节点存储的数据;对待传输数据进行哈希运算,得到第一哈希值;组合待传输数据和所述第一哈希值,作为目标数据;通过数据加密算法对目标数据进行加密,得到加密数据;发送加密数据至接收端。可选地,接收端在接收到加密数据后的操作步骤如下:通过数据加密算法解密加密数据,得到目标数据;拆分目标数据,得到第一待传输数据和所述第一哈希值;对第一待传输数据进行哈希运算,得到第二哈希值;判断第二哈希值与第一哈希值是否相同,若相同,使用待传输数据,若不相同,不使用待传输数据。可选地,数据加密算法为ABE加密算法。根据本专利技术的一个方面,提供了一种计算设备,包括:至少一个处理器;以及存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如上所述方法的指令。根据本专利技术的一个方面,提供了一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如上所述方法。根据本专利技术的技术方案,提供了一种数据存储方法,该方法是将待存储数据以预定存储结构存储,具体地,预定存储结构中每一节点保存的是父节点ID,而不是父节点ID存储文件目录(包括文件目录的所有文件目录项),因此当修改节点信息时只需修改节点本身信息和关联节点的信息,不涉及父节点的改变,所以节点发生冲突的概率大大降低,也降低了修改复杂度。并且,节点中还存储数据块版本信息,使得攻击者无法通过同一个文件的不同版本对文件进行替换,保证数据的完整性,从而提高数据存储的安全性。另外,由于云存储结构中,除最右叶子节点外所有叶子节点均存储最大容量的数据(相比于每个叶子节点仅存储部分数据,而未存储最大容量的数据),节点数量会减少,从而减少存储空间浪费。并且由于叶子节点存储数据的最大容量相同,因此在确定已存储的数据大小时,无需获取每个节点存储数据的大小再求和,而是利用节点数量减1与节点最大容量相乘,再加上最右叶子节点数据大小即可确定已存储的数据大小,相当于只访问最右叶子节点的数据大小即可计算已存储的数据大小,可快速确定已存储的数据大小,减少耗时。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点本文档来自技高网...

【技术保护点】
1.一种数据存储方法,在计算设备中执行,所述方法包括步骤:/n获取待存储数据;/n将所述待存储数据对象拆分为多个数据块,为每一数据块分配唯一名称;/n保存每一所述数据块至预定存储结构的节点中,其中,所述预设定储结构中每一节点对应为一个数据服务器,每一节点分配唯一节点ID,每一节点最大存储容量相同,除最右叶子节点外所有叶子节点存储最大容量的数据,所述预定存储结构中每一节点用于存储第一类数据,所述第一类数据包括父节点ID、目录名称、所述数据块、数据块名称和节点ID中的一种或多种,所述目录名称为当前节点对应子节点存储的数据块的目录名称。/n

【技术特征摘要】
1.一种数据存储方法,在计算设备中执行,所述方法包括步骤:
获取待存储数据;
将所述待存储数据对象拆分为多个数据块,为每一数据块分配唯一名称;
保存每一所述数据块至预定存储结构的节点中,其中,所述预设定储结构中每一节点对应为一个数据服务器,每一节点分配唯一节点ID,每一节点最大存储容量相同,除最右叶子节点外所有叶子节点存储最大容量的数据,所述预定存储结构中每一节点用于存储第一类数据,所述第一类数据包括父节点ID、目录名称、所述数据块、数据块名称和节点ID中的一种或多种,所述目录名称为当前节点对应子节点存储的数据块的目录名称。


2.如权利要求1所述的方法,其中,所述将所述待存储数据对象拆分为多个数据块的步骤包括:
确定所述待存储数据对象的数据指针当前偏移量;
以已确定的数据指针当前偏移量为起始位置,从待存储数据中读取第一预设数值的数据,作为一个数据块;
更新数据指针当前偏移量为已确定的数据指针当前偏移量与所述第一预设数值之和。


3.如权利要求2所述的方法,其中,所述以已确定的数据指针当前偏移量为起始位置,从待存储数据中读取第一预设数值的数据,作为一个数据块的步骤包括:
判断当前读取待存储数据次数与第一预设数值之积是否小于待存储数据大小,若是,以已确定的数据指针当前偏移量为起始位置读取所述第一预设数值的数据,若否,则根据如下公式确定读取待存储数据的数量,作为第二数值,以已确定的数据指针当前偏移量为起始位置读取第二数值的数据:
L=m-(a-1)*b
其中,L为读取待存储数据的数量,m为待存储数据所占存储空间大小,a为当前读取待存储数据的次数,b为所述第一预设数值;
以已读取的数据作为一个数据块。


4.如权利要求1至3中任一项所述的方法,所述保存每一所述数据块至预定存储结构的节点中的步骤包括:
判断当前节点是否存在子节点,若是,在当前节点中保存其父节点ID、当前节点ID、目录名称,若否,在当前节点中保存其父节点ID、数据块、数据块名称和当前节点ID。
...

【专利技术属性】
技术研发人员:卢桢
申请(专利权)人:统信软件技术有限公司
类型:发明
国别省市:北京;11

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

1