一种文件差量的传输方法以及装置的制造方法

文档序号:9791716阅读:734来源:国知局
一种文件差量的传输方法以及装置的制造方法
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种文件差量的传输方法以及装置。
【背景技术】
[0002]随着云存储服务的普及,越来越多的人选择将个人的文件上传到网盘中进行备份,人们对文件上传速度的要求也越来越高,于是发展出了利用文件特征码,实现“忽略式”上传的技术。在有限的网络带宽条件下,“忽略式”上传技术提升了文件上传效率。
[0003]具体地,“忽略式”上传技术是指,客户端在确定待上传的文件A后,计算该文件A的特征码,并将该特征码发送至服务器。其中,该特征码可以是信息-摘要算法第五版(英文全称:Message-Digest Algorithm 5,简称MD5),也可以是安全哈希算法第一版(英文全称:Secure Hash Algorithm,简称:SHAl)。这样,若该服务器上存在与文件A具有相同特征码的文件B,则该服务器可以直接向该客户端返回上传成功消息,不需要客户端再上传文件A;若该服务器上不存在与该文件A具有相同特征码的文件,但存在与该文件A具有相同文件名的文件C,在此情况下,该客户端还可以通过Rsync算法计算出该文件A相比该文件C的差量数据,并将该差量数据发送至该服务器,由该服务器利用该文件C与该差量数据相结合,在该服务器上生成与该文件A相一致的文件,从而无需客户端将整个文件A上传至服务器。
[0004]并且,现有技术中,为了便于服务器能够正确合并文件C与差量数据,客户端是按照差量数据以及匹配数据在文件A中的顺序,依次发送差量数据和匹配数据的标识至服务器,该服务器按照接收顺序,合并该差量数据以及文件C中对应该匹配数据标识的数据。也就是说,客户端在上传差量数据时,对于每部分差量数据均需要向服务器发送一次上传请求,上传过程复杂,在文件A与文件C之间的差量数据较多,且分散在文件A的多个不同位置时,客户端的多次上传会增加客户端以及服务器的负载。

【发明内容】

[0005]本发明的目的是提供一种文件差量的传输方法以及装置,用于解决现有技术中,客户端对于每部分差量数据均需要向服务器发送一次上传请求的技术问题。
[0006]上述目的将通过独立权利要求中的特征来达成。进一步的实现方式在从属权利要求、说明书和附图中体现。
[0007]第一方面,提供一种文件差量的传输方法,服务器保存第一文件,所述方法用于将第二文件保存到所述服务器,所述方法包括:客户端确定所述第二文件中,所述第二文件相比所述第一文件的N份差量数据以及L个匹配块;所述第一文件中存在与每个所述匹配块相一致的数据块,所述第二文件由所述N份差量数据以及所述L个匹配块组成;N和L均是大于O的正整数;将所述N份差量数据合并为M个差量块;M是小于N的正整数;将所述M个差量块以及所述L个匹配块的属性信息发送至所述服务器;其中,所述L个匹配块的属性信息被用于将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的数据块,合并为所述第二文件。
[0008]也就是说,客户端在上传差量数据时,并非对分布在不同位置的每一份差量数据均向服务器请求一次上传,而是先将差量数据合并为数据量更大的差量块,并以差量块为最小单位进行上传,减少了客户端向服务器发送请求的数量,进而减轻了服务器的负载。
[0009]在结合第一方面的第一种可能的实现方式中,所述L个匹配块的属性信息包括所述第一文件中与每个所述匹配块相一致的数据块的标识,以及每个所述匹配块在所述第二文件中的偏移量;其中,所述数据块的标识被用于确定所述第一文件中与所述L个匹配块相一致的L个数据块,所述偏移量是每个所述匹配块在所述第二文件中的起始地址与所述第二文件的首地址之间的差值,所述L个匹配块的偏移量被用于将所述M个差量块与所述L个数据块合并为所述第二文件。也就是说,为了确保服务器在接收到差量块后,能够将差量块与第一文件中的数据块正确合并为第二文件,需要该匹配块的属性信息能够正确表明匹配块与差量数据之间的位置,上述方案提供了一种优选的实现方式,即匹配块的属性信息包括第一文件中与该匹配块相一致的数据块的标识以及该匹配块在第二文件中的偏移量。
[0010]结合第一方面,或者第一方面的第二种可能的实现方式,所述客户端确定所述第二文件中,所述第二文件相比所述第一文件的N份差量数据以及L个匹配块包括:接收服务器发送的所述第一文件的文件分块信息;根据所述文件分块信息通过Rsync算法确定所述第二文件中,与所述第一文件中的数据块相一致的所述匹配块。其中,所述文件分块信息包括第一文件中的数据块的标识,所述客户端确定出所述第二文件中,与所述第一文件中的数据块相一致的匹配块后,可以记录与所述匹配块相一致的数据块的标识,这样,所述服务器在接收到与所述匹配块相一致的数据块的标识后,即可在所述第一文件中确定出与所述匹配块相一致的数据块。
[0011]第二方面,提供一种文件差量传输的方法,服务器保存第一文件,所述方法用于将第二文件保存到所述服务器,包括:服务器接收客户端发送的M个差量块以及L个匹配块的属性信息;所述M个差量块是所述第二文件相比所述第一文件的N份差量数据合并而成的;所述第一文件中存在与每个所述匹配块相一致的数据块;所述第二文件由所述N份差量数据以及所述L个匹配块组成;N和L均是大于O的正整数,M是小于N的正整数;根据所述L个匹配块的属性信息将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的数据块,合并为所述第二文件。
[0012]上述方案中,服务器接收客户端以差量块为最小单位上传的差量数据,相比现有技术中,服务器要接收客户端针对N份差量数据发送的N次上传请求,上述方案减少了服务器处理上传请求的数目,进而减轻了服务器的负载。
[0013]在结合第二方面的第一种可能的实现方式中,所述L个匹配块的属性信息包括所述第一文件中与每个所述匹配块相一致的数据块的标识,以及每个所述匹配块在所述第二文件中的偏移量;所述偏移量是所述匹配块在所述第二文件中的起始地址与所述第二文件的首地址之间的差值;所述根据所述L个匹配块的属性信息将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的所述数据块,合并为所述第二文件,包括:根据所述数据块的标识确定所述第一文件中与所述L个匹配块相一致的L个数据块;根据所述L个匹配块的偏移量将所述M个差量块以及所述L个数据块合并为所述第二文件。
[0014]第三方面,提供一种客户端,服务器保存第一文件,所述客户端用于将第二文件保存到所述服务器,所述客户端包括:确定单元,用于确定所述第二文件中,所述第二文件相比第一文件的N份差量数据以及L个匹配块;所述第一文件中存在与每个所述匹配块相一致的数据块,所述第二文件由所述N份差量数据以及所述L个匹配块组成;N和L均是大于O的正整数;合并单元,用于将所述N份差量数据合并为M个差量块;M是小于N的正整数;发送单元,用于将所述M个差量块以及所述L个匹配块的属性信息发送至所述服务器;其中,所述L个匹配块的属性信息被用于将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的所述数据块,合并为所述第二文件。
[0015]结合第二方面,在第二方面的第一种可能的实现方式中,所述L个匹配块的属性信息包括所述第一文件中与每个所述匹配块相一致的数据块的标识,以及每个所述匹配块在所述第二文件中的偏移量;其中,所述数据块的标识被用于确定所述第一文件中与所述L个匹配块相一致的L个数据块,所述偏移量是每个所述匹配块在所述第二文件中的起始地址与所述第二文件的首地址之间的差值,所述L个匹配块的偏移量被用于将所述M个差量块与所述L个数据块合并为所述第二文件。
[0016]值得说明的是,以上对客户端功能单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,并且,上述功能单元的物理实现也可以有不同的方式,例如,上述确定单元具体可以一中央处理器,也可以是一特定集成电路,上述合并单元具体可以是能够根据处理器的指令,对数据进行读写的数据读写装置,上述发送单元可以是一发射机。
[0017]第四方面,提供一种服务器,所述服务器保存第一文件,包括:接收单元,用于接收客户端发送的M个差量块以及L个匹配块的属性信息;所述M个差量块是待保存到所述服务器的第二文件相比所述第一文件的N份差量数据合并而成的;所述第一文件中存在与每个所述匹配块相一致的数据块,所述述第二文件由所述N份差量数据以及所述L个匹配块组成;N和L均是大于O的正整数,M是小于N的正整数;合并单元,用于根据所述L个匹配块的属性信息将所述M个差量块以及所述第一文件中与每个所述匹配块相一致的数据块,合并为所述第二文件。
[0018]在结合第四方面的第一种可能的实现方式中,所述L个匹配块的属性信息包括所述第一文件中与每个所述匹配块相一致的数据块的标识,以及每个所述匹配块在所述第二文件中的偏移量;所述偏移量是所述匹配块在所述第二文件中的起始地址与所述第二文件的首地址之间的差值;所述合并单元具体用于:根据所述数据块的标识确定所述第一文件中与所述L个匹配块相一致的L个数据块;根据所述L个匹配块的偏移量将所述M个差量块以及所述L个数据块合并为所述第二文件。
[0019]值得说明的是,以上对服务器功能单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,并且,上述合并单元具体可以是能够根据处理器的指令,对数据进行读写的数据读写装置,上述接收单元可以是一接收机。
[0020]第五方面,提供一种客户端,服务器保存第一文件,所述客户端用于将第二文件保存到所述服务器,所述客户端包括:处理器、发射机、接收机和通信总线;其中,所述处理器、所述发射机和所述接收机通过所述通信总线完成相互间的通信;所述处理器用于:确定所述第二文件中,所述第二文件相比所述第一文件的N份差量数据以及L个匹配块;所述第一文件中存在与每个所述匹配块相一致的数据块,所述第二文件由所述N份差量数据以及所述L个匹配块组成;N和L均是大于O的正整数;将所述N份差量数据合并为M个差量块;M是小于N的正整数;将所述M个差量块以及所述L个匹配块的属性信息发送至所述服务器;其中,所述L个匹配块的属性信息被用于将所述M个差量块以及所述第一文件中与每个所述匹配
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1