CN106874403A - 对压缩文件进行差异同步的系统及方法 - Google Patents

对压缩文件进行差异同步的系统及方法 Download PDF

Info

Publication number
CN106874403A
CN106874403A CN201710032847.1A CN201710032847A CN106874403A CN 106874403 A CN106874403 A CN 106874403A CN 201710032847 A CN201710032847 A CN 201710032847A CN 106874403 A CN106874403 A CN 106874403A
Authority
CN
China
Prior art keywords
file
source
difference
inventory
inventory file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710032847.1A
Other languages
English (en)
Inventor
戴有勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Tianyu Education Technology Co Ltd
Original Assignee
Wuhan Tianyu Education Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Tianyu Education Technology Co Ltd filed Critical Wuhan Tianyu Education Technology Co Ltd
Priority to CN201710032847.1A priority Critical patent/CN106874403A/zh
Publication of CN106874403A publication Critical patent/CN106874403A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种对压缩文件进行差异同步的系统及方法,涉及文件差异同步技术领域。该系统包括目标端、源端,目标端从目标压缩文件中提取目标清单文件,将目标清单文件发送给源端;源端收到目标清单文件后,从源压缩文件中读取源清单文件,如果源清单文件和目标清单文件之间存在差异,则生成差异清单文件;目标端从源端获取差异清单文件和目标压缩文件需要新增替换的差异数据,将差异清单文件合并到目标清单文件中,对目标压缩文件进行修改。本发明为压缩文件提供了一种快速差异比较和精准获得差异内容的差异同步方法,进而提高压缩文件的差异同步效率,适用于加密压缩文件。

Description

对压缩文件进行差异同步的系统及方法
技术领域
本发明涉及文件差异同步技术领域,具体涉及一种对压缩文件进行差异同步的系统及方法。
背景技术
目前,在对两个文件进行差异同步时,一般采用分块校验算法,例如rsync(remotesynchronize,远程同步)算法。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(MessageDigestAlgorithm MD5,消息摘要算法第五版)值;具体的,目标压缩文件中对应的是目标清单文件manifest1.xml,源压缩文件中对应的是源清单文件manifest0.xml。
本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。
说明书中未详细描述的内容为本领域技术人员公知的现有技术。

Claims (10)

1.一种对压缩文件进行差异同步的系统,其特征在于:该系统包括目标端、源端,所述目标端存储有目标压缩文件,所述源端存储有源压缩文件,所述目标压缩文件包括目标清单文件,所述源压缩文件包括源清单文件;
目标端从目标压缩文件中提取目标清单文件,将目标清单文件发送给源端;源端收到目标清单文件后,从源压缩文件中读取源清单文件,判断源清单文件和目标清单文件之间是否存在差异,如果源清单文件和目标清单文件之间不存在差异,同步结束;如果源清单文件和目标清单文件之间存在差异,则生成差异清单文件,所述差异清单文件用于记录目标压缩文件与源压缩文件之间的差异;源端根据差异清单文件,从源压缩文件中提取出目标压缩文件需要新增替换的差异数据;目标端从源端获取差异清单文件和目标压缩文件需要新增替换的差异数据,将差异清单文件合并到目标清单文件中,对目标压缩文件进行修改,同步结束。
2.如权利要求1所述的对压缩文件进行差异同步的系统,其特征在于:所述源端还将所述差异清单文件和目标压缩文件需要新增替换的差异数据压缩打包,形成一个同步文件包,将所述同步文件包发送给目标端;所述目标端收到所述同步文件包后,解压得到差异清单文件和目标压缩文件需要新增替换的差异数据。
3.如权利要求1所述的对压缩文件进行差异同步的系统,其特征在于:所述差异清单文件包括三类描述信息,所述三类描述信息分别为目标压缩文件需要新增、替换、删减的差异数据所对应的描述信息。
4.如权利要求3所述的对压缩文件进行差异同步的系统,其特征在于:所述目标端将差异清单文件合并到目标清单文件中时,所述目标端根据差异清单文件中的三类描述信息,对目标清单文件中相对应的描述信息进行新增、替换、删减操作;
所述目标端对目标压缩文件进行修改时,所述目标端根据差异清单文件中的三类描述信息,将需要新增替换的差异数据合并到目标压缩文件中,对目标压缩文件中需要删减的差异数据进行删减。
5.如权利要求1所述的对压缩文件进行差异同步的系统,其特征在于:所述目标端为客户端时,所述源端为服务器端;所述目标端为服务器端时,所述源端为客户端。
6.一种应用于权利要求1所述系统的对压缩文件进行差异同步的方法,其特征在于,包括以下步骤:
A、目标端从目标压缩文件中提取目标清单文件,将目标清单文件发送给源端;
B、源端收到目标清单文件后,从源压缩文件中读取源清单文件,判断源清单文件和目标清单文件之间是否存在差异,如果源清单文件和目标清单文件之间不存在差异,同步结束;如果源清单文件和目标清单文件之间存在差异,则生成差异清单文件,所述差异清单文件用于记录目标压缩文件与源压缩文件之间的差异;源端根据差异清单文件,从源压缩文件中提取出目标压缩文件需要新增替换的差异数据;
C、目标端从源端获取差异清单文件和目标压缩文件需要新增替换的差异数据,将差异清单文件合并到目标清单文件中,对目标压缩文件进行修改,同步结束。
7.如权利要求6所述的对压缩文件进行差异同步的方法,其特征在于,步骤C还包括以下过程:
所述源端将所述差异清单文件和目标压缩文件需要新增替换的差异数据压缩打包,形成一个同步文件包,将所述同步文件包发送给目标端;目标端收到所述同步文件包后,解压得到差异清单文件和目标压缩文件需要新增替换的差异数据。
8.如权利要求6所述的对压缩文件进行差异同步的方法,其特征在于:所述差异清单文件包括三类描述信息,所述三类描述信息分别为目标压缩文件需要新增、替换、删减的差异数据所对应的描述信息。
9.如权利要求8所述的对压缩文件进行差异同步的方法,其特征在于:步骤C中,所述目标端将差异清单文件合并到目标清单文件中的过程为:所述目标端根据差异清单文件中的三类描述信息,对目标清单文件中相对应的描述信息进行新增、替换、删减操作;
所述目标端对目标压缩文件进行修改的过程为:所述目标端根据差异清单文件中的三类描述信息,将需要新增替换的差异数据合并到目标压缩文件中,对目标压缩文件中需要删减的差异数据进行删减。
10.如权利要求6所述的对压缩文件进行差异同步的方法,其特征在于:所述目标端为客户端时,所述源端为服务器端;所述目标端为服务器端时,所述源端为客户端。
CN201710032847.1A 2017-01-18 2017-01-18 对压缩文件进行差异同步的系统及方法 Pending CN106874403A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710032847.1A CN106874403A (zh) 2017-01-18 2017-01-18 对压缩文件进行差异同步的系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710032847.1A CN106874403A (zh) 2017-01-18 2017-01-18 对压缩文件进行差异同步的系统及方法

Publications (1)

Publication Number Publication Date
CN106874403A true CN106874403A (zh) 2017-06-20

Family

ID=59158458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710032847.1A Pending CN106874403A (zh) 2017-01-18 2017-01-18 对压缩文件进行差异同步的系统及方法

Country Status (1)

Country Link
CN (1) CN106874403A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107704311A (zh) * 2017-09-27 2018-02-16 郑州云海信息技术有限公司 一种虚拟机内存迁移方法及其装置
CN108647256A (zh) * 2018-04-23 2018-10-12 平安科技(深圳)有限公司 文件同步方法、装置、计算机装置及存储介质
CN111880970A (zh) * 2020-08-04 2020-11-03 杭州东方通信软件技术有限公司 一种快捷远程文件备份方法
CN112181479A (zh) * 2020-09-23 2021-01-05 中国建设银行股份有限公司 代码文件版本间差异的确定方法、装置及电子设备
CN112416878A (zh) * 2020-11-09 2021-02-26 山西云时代技术有限公司 一种基于云平台的文件同步管理方法
CN113094443A (zh) * 2021-05-21 2021-07-09 珠海金山网络游戏科技有限公司 数据同步方法及装置
CN113228595A (zh) * 2018-12-04 2021-08-06 区块链联合香港有限公司 传输记录的方法和装置
CN113422837A (zh) * 2021-07-02 2021-09-21 广东电网有限责任公司 跨网数据传输装置、方法、终端及可读存储介质
CN113988043A (zh) * 2021-12-24 2022-01-28 深圳佑驾创新科技有限公司 硬件物料清单管理方法、装置、计算机设备以及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467529A (zh) * 2010-11-11 2012-05-23 金蝶软件(中国)有限公司 一种元数据同步方法和系统
CN103761162A (zh) * 2014-01-11 2014-04-30 深圳清华大学研究院 分布式文件系统的数据备份方法
US20140201137A1 (en) * 2013-01-11 2014-07-17 Commvault Systems, Inc. Location-based data synchronization management
CN104899333A (zh) * 2015-06-24 2015-09-09 浪潮(北京)电子信息产业有限公司 一种Oracle数据库跨平台迁移方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467529A (zh) * 2010-11-11 2012-05-23 金蝶软件(中国)有限公司 一种元数据同步方法和系统
US20140201137A1 (en) * 2013-01-11 2014-07-17 Commvault Systems, Inc. Location-based data synchronization management
CN103761162A (zh) * 2014-01-11 2014-04-30 深圳清华大学研究院 分布式文件系统的数据备份方法
CN104899333A (zh) * 2015-06-24 2015-09-09 浪潮(北京)电子信息产业有限公司 一种Oracle数据库跨平台迁移方法和系统

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107704311A (zh) * 2017-09-27 2018-02-16 郑州云海信息技术有限公司 一种虚拟机内存迁移方法及其装置
CN108647256A (zh) * 2018-04-23 2018-10-12 平安科技(深圳)有限公司 文件同步方法、装置、计算机装置及存储介质
CN113228595A (zh) * 2018-12-04 2021-08-06 区块链联合香港有限公司 传输记录的方法和装置
CN113228595B (zh) * 2018-12-04 2024-05-14 香港星辰科技有限公司 传输记录的方法和装置
CN111880970A (zh) * 2020-08-04 2020-11-03 杭州东方通信软件技术有限公司 一种快捷远程文件备份方法
CN112181479A (zh) * 2020-09-23 2021-01-05 中国建设银行股份有限公司 代码文件版本间差异的确定方法、装置及电子设备
CN112416878A (zh) * 2020-11-09 2021-02-26 山西云时代技术有限公司 一种基于云平台的文件同步管理方法
CN113094443A (zh) * 2021-05-21 2021-07-09 珠海金山网络游戏科技有限公司 数据同步方法及装置
CN113422837A (zh) * 2021-07-02 2021-09-21 广东电网有限责任公司 跨网数据传输装置、方法、终端及可读存储介质
CN113988043A (zh) * 2021-12-24 2022-01-28 深圳佑驾创新科技有限公司 硬件物料清单管理方法、装置、计算机设备以及存储介质
CN113988043B (zh) * 2021-12-24 2022-04-26 深圳佑驾创新科技有限公司 硬件物料清单管理方法、装置、计算机设备以及存储介质

Similar Documents

Publication Publication Date Title
CN106874403A (zh) 对压缩文件进行差异同步的系统及方法
CN102684827B (zh) 数据处理方法及数据处理设备
CN103095843B (zh) 一种基于版本矢量的数据备份方法及客户端
KR101074010B1 (ko) 블록 단위 데이터 압축 및 복원 방법 및 그 장치
CN103942058B (zh) 一种嵌入式电子设备软件升级方法及系统
CN104539696A (zh) 一种客户端增量更新的方法及系统
US11023439B2 (en) Variable cardinality index and data retrieval
US20090006869A1 (en) Techniques for synchronizing and archive-versioning of encrypted files
CN103118104B (zh) 一种基于版本矢量的数据还原方法及服务器
CN103971061B (zh) 文本文件指纹获取方法及其装置、数据管理方法
JP5237661B2 (ja) ファイル同期装置、ファイル同期方法及びファイル同期プログラム
JP2013140443A (ja) バックアップ制御プログラム、バックアップ制御方法およびバックアップ制御装置
CN101702150A (zh) 一种pdf文档页内容的保护、验证及撤销方法
KR101727860B1 (ko) 문서 파일의 복구 장치 및 그 방법
US10044801B1 (en) Backup of user data with validity check
CN104238819A (zh) 移动终端中显示屏状态的检测方法及系统
CN108021580A (zh) 一种数据同步更新方法及其系统
JP4877193B2 (ja) 版数管理システムおよび版数管理方法
CN107911359A (zh) 一种获取电子数据的方法
CN110083372A (zh) 一种区块链数据版本升级方法
KR20200041650A (ko) 참조 동영상의 메타 정보에 기반한 훼손 mp4 동영상 파일의 복구 방법 및 장치
CN107729415A (zh) 一种压缩文件内容展示方法和装置
CN105718496A (zh) 跨平台的文件属性同步的方法及计算机可读取的存储媒体
CN108563396B (zh) 一种安全的云端对象存储方法
KR101568680B1 (ko) 데이터 파편 분류를 이용한 데이터 복원 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170620