对压缩文件进行差异同步的系统及方法与流程

文档序号:12719981阅读:795来源:国知局
对压缩文件进行差异同步的系统及方法与流程

本发明涉及文件差异同步技术领域,具体涉及一种对压缩文件进行差异同步的系统及方法。



背景技术:

目前,在对两个文件进行差异同步时,一般采用分块校验算法,例如rsync(remote synchronize,远程同步)算法。rsync类算法的原理是将需要进行同步的目标文件和源文件按一定大小进行分块,循环校验计算出差异内容。这种算法对于小文件,或者差异部分较小的情况适用,对于压缩文件,尤其是加密处理后的压缩文件并不适用。

加密处理的压缩文件,即使目标文件和源文件二者之间的差异部分较小,由于经过了加密、压缩处理,当采用分块校验算法进行差异同步时,计算时间也会非常长,这是因为对于压缩文件而言,即使只修改很小的内容,加密处理后两个文件字节上的差异非常大。同时,分块校验算法生成的差异文件内容几乎与原始文件同等大小,由于需要传输的信息较多,导致占用大量的存储空间。

综上所述,一般的分块校验算法在用于压缩文件的差异同步时,同步效率低,还需要占用大量的存储空间。



技术实现要素:

本发明的目的是为了克服上述背景技术的不足,提供一种对压缩文件进行差异同步的系统及方法,本发明为压缩文件提供了一种快速差异比较和精准获得差异内容的差异同步方法,进而提高压缩文件的差异同步效率,适用于加密压缩文件。

本发明提供一种对压缩文件进行差异同步的系统,该系统包括目标端、源端,所述目标端存储有目标压缩文件,所述源端存储有源压缩文件,所述目标压缩文件包括目标清单文件,所述源压缩文件包括源清单文件;

目标端从目标压缩文件中提取目标清单文件,将目标清单文件发送给源端;源端收到目标清单文件后,从源压缩文件中读取源清单文件,判断源清单文件和目标清单文件之间是否存在差异,如果源清单文件和目标清单文件之间不存在差异,同步结束;如果源清单文件和目标清单文件之间存在差异,则生成差异清单文件,所述差异清单文件用于记录目标压缩文件与源压缩文件之间的差异;源端根据差异清单文件,从源压缩文件中提取出目标压缩文件需要新增替换的差异数据;目标端从源端获取差异清单文件和目标压缩文件需要新增替换的差异数据,将差异清单文件合并到目标清单文件中,对目标压缩文件进行修改,同步结束。

在上述技术方案的基础上,所述源端还将所述差异清单文件和目标压缩文件需要新增替换的差异数据压缩打包,形成一个同步文件包,将所述同步文件包发送给目标端;所述目标端收到所述同步文件包后,解压得到差异清单文件和目标压缩文件需要新增替换的差异数据。

在上述技术方案的基础上,所述差异清单文件包括三类描述信息,所述三类描述信息分别为目标压缩文件需要新增、替换、删减的差异数据所对应的描述信息。

在上述技术方案的基础上,所述目标端将差异清单文件合并到目标清单文件中时,所述目标端根据差异清单文件中的三类描述信息,对目标清单文件中相对应的描述信息进行新增、替换、删减操作;

所述目标端对目标压缩文件进行修改时,所述目标端根据差异清单文件中的三类描述信息,将需要新增替换的差异数据合并到目标压缩文件中,对目标压缩文件中需要删减的差异数据进行删减。

在上述技术方案的基础上,所述目标端为客户端时,所述源端为服务器端;所述目标端为服务器端时,所述源端为客户端。

本发明还提供一种应用于上述系统的对压缩文件进行差异同步的方法,包括以下步骤:

A、目标端从目标压缩文件中提取目标清单文件,将目标清单文件发送给源端;

B、源端收到目标清单文件后,从源压缩文件中读取源清单文件,判断源清单文件和目标清单文件之间是否存在差异,如果源清单文件和目标清单文件之间不存在差异,同步结束;如果源清单文件和目标清单文件之间存在差异,则生成差异清单文件,所述差异清单文件用于记录目标压缩文件与源压缩文件之间的差异;源端根据差异清单文件,从源压缩文件中提取出目标压缩文件需要新增替换的差异数据;

C、目标端从源端获取差异清单文件和目标压缩文件需要新增替换的差异数据,将差异清单文件合并到目标清单文件中,对目标压缩文件进行修改,同步结束。

在上述技术方案的基础上,步骤C还包括以下过程:

所述源端将所述差异清单文件和目标压缩文件需要新增替换的差异数据压缩打包,形成一个同步文件包,将所述同步文件包发送给目标端;目标端收到所述同步文件包后,解压得到差异清单文件和目标压缩文件需要新增替换的差异数据。

在上述技术方案的基础上,所述差异清单文件包括三类描述信息,所述三类描述信息分别为目标压缩文件需要新增、替换、删减的差异数据所对应的描述信息。

在上述技术方案的基础上,步骤C中,所述目标端将差异清单文件合并到目标清单文件中的过程为:所述目标端根据差异清单文件中的三类描述信息,对目标清单文件中相对应的描述信息进行新增、替换、删减操作;

所述目标端对目标压缩文件进行修改的过程为:所述目标端根据差异清单文件中的三类描述信息,将需要新增替换的差异数据合并到目标压缩文件中,对目标压缩文件中需要删减的差异数据进行删减。

在上述技术方案的基础上,所述目标端为客户端时,所述源端为服务器端;所述目标端为服务器端时,所述源端为客户端。

与现有技术相比,本发明的优点如下:

本发明实施的前提条件是:进行同步的源压缩文件和目标压缩文件内部各包含有一份描述性的清单文件,用于记录内部文件的文件名、相对路径和MD5特征码。本发明通过比较目标端的目标清单文件与源端的源清单文件的差异,生成差异清单文件,得到差异数据,再将差异数据和差异清单文件打包发送给目标端;目标端根据差异清单文件,修改目标压缩文件。

本发明通过源清单文件描述源压缩文件的内部组织结构和文件特征,通过目标清单文件描述目标压缩文件的内部组织结构和文件特征,从而能够很快比较出同步源端和目标端的压缩文件是否存在差异,定位到差异数据,且生成的差异数据大小远小于原始文件。因此,本发明同步效率高、传输信息少,不需要占用大量的存储空间。

附图说明

图1是本发明实施例中对压缩文件进行差异同步的流程图;

图2是本发明实施例中目标压缩文件或者源压缩文件的示意图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步的详细描述。

本发明实施例提供一种对压缩文件进行差异同步的系统,该系统包括目标端、源端,目标端存储有目标压缩文件dst.edux,源端存储有源压缩文件src.edux,目标压缩文件dst.edux包括目标清单文件manifest1.xml,源压缩文件src.edux包括源清单文件manifest0.xml;该系统中,目标端为客户端时,源端为服务器端;目标端为服务器端时,源端为客户端。

参见图1所示,本发明实施例还提供一种应用于上述系统的对压缩文件进行差异同步的方法,包括以下步骤:

S1、目标端从dst.edux中提取manifest1.xml,将manifest1.xml发送给源端;目标端为客户端时,源端为服务器端;目标端为服务器端时,源端为客户端;

S2、源端收到manifest1.xml后,从src.edux中读取manifest0.xml;

S3、源端判断manifest0.xml和manifest1.xml之间是否存在差异,如果manifest0.xml和manifest1.xml之间不存在差异,同步结束;

S4、如果manifest0.xml和manifest1.xml之间存在差异,则生成差异清单文件diff.xml,diff.xml用于记录dst.edux与src.edux之间的差异,diff.xml包括三类描述信息,三类描述信息分别为dst.edux需要新增、替换、删减的差异数据所对应的描述信息;源端根据diff.xml,从src.edux中提取出dst.edux需要新增替换的差异数据;

S5、源端将diff.xml和dst.edux需要新增替换的差异数据压缩打包,形成一个同步文件包sync.zip,将同步文件包sync.zip发送给目标端;

S6、目标端接收同步文件包sync.zip,解压得到diff.xml和dst.edux需要新增替换的差异数据;

S7、目标端将diff.xml合并到manifest1.xml中,对dst.edux进行修改,同步结束;

其中,目标端将diff.xml合并到manifest1.xml中的过程为:目标端根据diff.xml中的三类描述信息,对manifest1.xml中相对应的描述信息进行新增、替换、删减操作;

新增、替换、删减操作具体为:增加dst.edux需要新增的差异数据所对应的描述信息,替换dst.edux需要替换的差异数据所对应的描述信息,删除dst.edux需要删减的差异数据所对应的描述信息;

目标端对dst.edux进行修改的过程为:目标端根据diff.xml中的三类描述信息,将需要新增替换的差异数据合并到dst.edux中,对dst.edux中需要删减的差异数据进行删减;

将需要新增替换的差异数据合并到dst.edux中的具体过程为:将dst.edux需要新增的差异数据增加到dst.edux中,采用dst.edux需要替换的差异数据对dst.edux进行相应替换。

本发明实施例中的目标压缩文件、源压缩文件均为.edux格式,参见图2所示,目标压缩文件、源压缩文件各包括一个清单文件manifest.xml,用于记录该压缩文件中包含的文件信息;以file1为例,manifest.xml中会记录它的相对路径和MD5(Message DigestAlgorithm MD5,消息摘要算法第五版)值;具体的,目标压缩文件中对应的是目标清单文件manifest1.xml,源压缩文件中对应的是源清单文件manifest0.xml。

本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。

说明书中未详细描述的内容为本领域技术人员公知的现有技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1