【技术实现步骤摘要】
一种对象存储数据摘要构建方法
[0001]本专利技术涉及对象存储
,具体为一种对象存储数据摘要构建方法。
技术介绍
[0002]对象存储拥有海量、安全、低成本、高可靠的优点,在各行各业都有着广泛的应用。在对象存储的使用过程中,有许多场景需要检验上传、下载的数据是否和预期一致。对于数据一致性的检验方法,目前的经典实现是通过计算对象的MD5,通过比较MD5的计算结果来检验数据的一致性。
[0003]在对象存储中,通过属性ETAG来表示对象数据的摘要,对于原子上传对象的场景,ETAG通常为对象数据的MD5值,可以直接用于一致性的校验。而对于分段上传的对象,其ETAG为各个分段的MD5值拼接后再次计算MD5,在末尾追加分段个数后作为对象的ETAG;对于追加上传的对象,其ETAG为追加部分的MD5。对于后两种情况,ETAG无法用于数据一致性的校验。
[0004]对于后两种场景,由于MD5的特性,无法通过已有数据的MD5作为初始状态,经过对增量数据的计算,得到追加数据后的MD5,从而导致ETAG不能表示为对象数据M ...
【技术保护点】
【技术特征摘要】
1.一种对象存储数据摘要构建方法,其特征在于:包括以下步骤:依据BLAKE3算法,采用二叉树结构,建立Merkle树;将数据切片分为一定大小的分片,对每个分片执行压缩函数F得到哈希值,将哈希值作为叶节点;将叶子节点的哈希值合并,作为压缩函数F的输入参数,通过压缩函数得到父节点的值。2.根据权利要求1所述的一种对象存储数据摘要构建方法,其特征在于:所述压缩函数可以抽象为:F(CV,block,block_len,index)
‑
>byte[32]其中CV为256Bit的值,block为待计算的数据,block_len为数据长度,index为数据块的编号。3.根据权利要求2所述的一种对象存储数据摘要构建方法,其特征在于:所述压缩函数对数据片的处理过程为:S1、将1K的数据切分为64Byte一组的块,计算第一块时的CV初始化为一组特定值;S2、同一个数据片内的块,计算时使用前一块的计算结果作为输入的CV,遍历完该数据片内所有的块所得的最终输出,作为该数据片的hash值。4.根据权利要求3所述的一种对象存储数据摘要构建方法,其特征在于:所述最后一个数据片的最后一块,允许数据块小于64Byte,不足的部分用0补齐64Byte。5.根据权利要求2所述的一种对象存储数据摘要构建方法,其特征在于:所述压缩函数对求得父节点的值的过程如下:S1、将左子树的hash和右子树的hash合并,作为压缩函数的输入参数block;S2、CV初始化为特定值,block_len设为64,index设为0;S3、通过压缩函数计算获得256B...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。