本申请涉及计算机技术领域,尤其涉及一种文件同步方法及装置。
背景技术:
实际中,经常会遇到在相同类型的设备或不同类型设备中使用相同数据的情况,当需要对不同设备中相同数据的文件进行同步时,有可能会因为各设备之间能够识别的文件的格式不同,而造成需要将所有文件全部重新同步的问题,因此,如何提升在文件同步过程中的效率,成为了一个需要解决的问题。
技术实现要素:
本申请实施例提供一种文件同步方法及装置,以提升数据同步过程中的效率。
本申请实施例提供的具体技术方案如下:
一种文件同步方法,包括:
主同步设备确定与备同步设备中相应的待同步前的原始文件的数据内容是否相同,其中,所述主同步设备和所述备同步设备中原始文件的格式不同;
若确定相同,则根据原始文件和修改后的最新文件,生成文件差异信息,并将所述文件差异信息进行格式转换,转换为备同步设备能够识别的目标格式,以使所述备同步设备根据目标格式的文件差异信息,对所述备同步设备中的原始文件进行文件同步;
若确定不相同,则将修改后的最新文件进行格式转换,转换为备同步设备能够识别的目标格式,以使所述备同步设备根据目标格式的最新文件,对所述备同步设备中的原始文件进行文件同步。
可选的,主同步设备确定与备同步设备中相应的待同步前的原始文件的数据内容是否相同,具体包括:
向所述备同步设备发送原始文件验证请求,其中,所述原始文件验证请求中至少包括主同步设备中的原始文件的第一哈希值、和/或原始文件和预设特殊字符生成的第二哈希值;
接收所述备同步设备返回的验证结果,并确定与备同步设备中相应的待同步前的原始文件的数据内容是否相同,其中,所述验证结果是所述备同步设备接收到原始文件验证请求后,确定本地相应的原始文件的第三哈希值、和/或本地相应的原始文件和预设特殊字符的第四哈希值,并将所述第三哈希值与所述第一哈希值比对,和/或所述第四哈希值与所述第二哈希值比对后获得的。
可选的,根据原始文件和修改后的最新文件,生成文件差异信息,具体包括:
按照预设划分方式,将所述原始文件划分为多个原始数据块,并记录各原始数据块的编号;
分别将各相同编号的原始数据块与修改数据块,按照最小单元大小依次进行比对,其中,所述修改数据块是将所述原始数据块进行修改后获得的,所述修改后的最新文件是所述修改数据块和未进行修改的原始数据块进行组合生成的;
根据比对结果生成数据块差异列表和文件同步列表,其中,所述数据块差异列表中至少包括存在差异的原始数据块对应的最小单元位置和差异内容,每个存在差异的原始数据块对应一个数据块差异列表,所述文件同步列表中至少包括存在差异的原始数据块的编号、存在差异的原始数据块对应的数据块差异列表的编号、对应的修改数据块的哈希值。
可选的,所述目标格式为备同步设备中原始文件的标准格式;则将所述文件差异信息进行格式转换,转换为备同步设备能够识别的目标格式,具体包括:
将所述文件差异信息进行格式转换,转换为公共格式;
将公共格式的文件差异信息进行格式转换,转换为备同步设备能够识别的标准格式;
或者,所述目标格式为公共格式,则将所述文件差异信息进行格式转换,转换为备同步设备能够识别的目标格式,具体包括:
将所述文件差异信息进行格式转换,转换为公共格式,以使所述备同步设备能够将公共格式的文件差异信息转换为标准格式。
可选的,所述目标格式为备同步设备中原始文件的标准格式;则若确定不相同,则将修改后的最新文件进行格式转换,转换为备同步设备能够识别的目标格式,具体包括:
将所述修改后的最新文件进行格式转换,转换为公共格式;
将公共格式的所述修改后的最新文件进行格式转换,转换为备同步设备能够识别的标准格式;
或者,所述目标格式为公共格式,则若确定不相同,则将修改后的最新文件进行格式转换,转换为备同步设备能够识别的目标格式,具体包括:
将所述修改后的最新文件进行格式转换,转换为公共格式,以使所述备同步设备能够将公共格式的所述修改后的最新文件转换为标准格式。
可选的,若确定不相同,则将修改后的最新文件进行格式转换,转换为备同步设备能够识别的目标格式,以使所述备同步设备根据目标格式的最新文件,对所述备同步设备中的原始文件进行文件同步,具体包括:
将所述修改后的最新文件划分为多个修改数据块,并根据划分顺序,生成数据块编号列表,其中,每个修改数据块的数据块头部中至少包括数据块编号,所述数据块编号列表中至少包括修改数据块的编号、对应的表示拆分顺序的编号;
将所述数据块编号列表与所述修改数据块发送给所述备同步设备,以使所述备同步设备根据目标格式的所述数据块编号列表和所述多个修改数据块,对所述备同步设备中的原始文件进行文件同步。
一种文件同步方法,包括:
备同步设备根据主同步设备发送的原始文件验证请求,确定与所述主同步设备中相应的待同步前的原始文件的数据内容是否相同,并向所述主同步设备返回验证结果;
接收所述主同步设备发送的目标格式的文件差异信息,并根据所述文件差异信息对原始文件进行文件同步,其中,所述目标格式的文件差异信息是所述主同步设备确定所述验证结果为相同时,根据原始文件和修改后的最新文件生成文件差异信息后,进行格式转换获得的;或,
接收所述主同步设备发送的目标格式的最新文件,并根据所述最新文件,对所述备同步设备中的原始文件进行同步,其中,所述目标格式的最新文件是所述主同步设备确定所述验证结果为不相同时,将修改后的最新文件进行格式转换获得的。
可选的,备同步设备根据主同步设备发送的原始文件验证请求,确定与所述主同步设备中相应的待同步前的原始文件的数据内容是否相同,具体包括:
根据所述原始文件验证请求,确定本地相应的原始文件的第三哈希值、和/或本地相应的原始文件和预设特殊字符的第四哈希值,其中,所述原始文件验证请求中至少包括主同步设备中的原始文件的第一哈希值、和/或原始文件和预设特殊字符生成的第二哈希值;
将所述第三哈希值与所述第一哈希值比对,和/或所述第四哈希值与所述第二哈希值比对,若确定比对结果均相同,则确定与所述主同步设备中相应的待同步前的原始文件的数据内容相同,若确定任意一个比对结果不相同,则确定与所述主同步设备中相应的待同步前的原始文件的数据内容不相同。
可选的,所述文件差异信息至少包括数据块差异列表和文件同步列表;则接收所述主同步设备发送的目标格式的文件差异信息,并根据所述文件差异信息对原始文件进行文件同步,具体包括:
根据所述文件同步列表中存在差异的原始数据块的编号,确定所述备同步设备中原始文件中对应的存在差异的原始数据块,其中,所述主同步设备与所述备同步设备中相应的原始文件分别按照预设划分方式划分为多个原始数据块,所述主同步设备中最新文件是修改数据块和未进行修改的原始数据块进行组合生成的,所述修改数据块是将所述原始数据块进行修改后获得的,所述文件同步列表中至少包括存在差异的原始数据块的编号、存在差异的原始数据块对应的数据块差异列表的编号、对应的修改数据块的哈希值;
根据所述文件同步列表中存在差异的原始数据块对应的数据块差异列表的编号、所述数据块差异列表,分别将所述备同步设备中原始文件中对应的存在差异的原始数据块进行修改,生成各修改数据块,其中,所述数据块差异列表中至少包括存在差异的原始数据块对应的最小单元位置和差异内容,每个存在差异的原始数据块对应一个数据块差异列表;
将所述备同步设备中原始文件中未修改的原始数据块和生成的各修改数据块,进行组合,并将组合生成的文件代替原始文件以实现文件同步。
可选的,接收所述主同步设备发送的目标格式的最新文件,并根据所述最新文件,对所述备同步设备中的原始文件进行同步,具体包括:
接收所述主同步设备发送的目标格式的所述最新文件的修改数据块和数据块编号列表,其中,所述最新文件按照预设划分方式划分为多个修改数据块,所述数据块编号列表中至少包括修改数据块的编号、对应的表示拆分顺序的编号;
将所述最新文件的修改数据块存储到临时存储区;
按照各修改数据块对应的表示拆分顺序的编号,依次读取所述临时存储区中的修改数据块,并将读取的各修改数据块按照读取顺序进行组合,将组合生成的文件代替原始文件以实现文件同步。
可选的,进一步包括:
接收所述主同步设备发送的所述最新文件的第五哈希值、和/或所述最新文件和预设特殊字符的第六哈希值;
确定所述组合生成的文件的第七哈希值、和/或所述组合生成的文件和预设特殊字符的第八哈希值;
将所述第五哈希值与所述第七哈希值比对,和/或所述第六哈希值与所述第八哈希值比对,若确定比对结果均相同,则确定所述组合生成的文件正确,若确定任意一个比对结果不相同,则确定所述组合生成的文件不正确。
可选的,生成各修改数据块之后,进一步包括:
分别确定生成的各修改数据块的第九哈希值;
将所述各修改数据块的第九哈希值与所述文件同步列表中对应的修改数据块的哈希值进行比对,若确定比对结果相同,则确定生成的各修改数据块修改正确,若确定不相同,则确定生成的修改数据块修改不正确。
一种文件同步装置,应用于主同步设备,包括:
确定模块,用于确定与备同步设备中相应的待同步前的原始文件的数据内容是否相同,其中,所述主同步设备和所述备同步设备中原始文件的格式不同;
第一处理模块,用于若确定相同,则根据原始文件和修改后的最新文件,生成文件差异信息,并将所述文件差异信息进行格式转换,转换为备同步设备能够识别的目标格式,以使所述备同步设备根据目标格式的文件差异信息,对所述备同步设备中的原始文件进行文件同步;
第二处理模块,用于若确定不相同,则将修改后的最新文件进行格式转换,转换为备同步设备能够识别的目标格式,以使所述备同步设备根据目标格式的最新文件,对所述备同步设备中的原始文件进行文件同步。
可选的,确定模块具体用于:
向所述备同步设备发送原始文件验证请求,其中,所述原始文件验证请求中至少包括主同步设备中的原始文件的第一哈希值、和/或原始文件和预设特殊字符生成的第二哈希值;
接收所述备同步设备返回的验证结果,并确定与备同步设备中相应的待同步前的原始文件的数据内容是否相同,其中,所述验证结果是所述备同步设备接收到原始文件验证请求后,确定本地相应的原始文件的第三哈希值、和/或本地相应的原始文件和预设特殊字符的第四哈希值,并将所述第三哈希值与所述第一哈希值比对,和/或所述第四哈希值与所述第二哈希值比对后获得的。
可选的,第一处理模块具体用于:
按照预设划分方式,将所述原始文件划分为多个原始数据块,并记录各原始数据块的编号;
分别将各相同编号的原始数据块与修改数据块,按照最小单元大小依次进行比对,其中,所述修改数据块是将所述原始数据块进行修改后获得的,所述修改后的最新文件是所述修改数据块和未进行修改的原始数据块进行组合生成的;
根据比对结果生成数据块差异列表和文件同步列表,其中,所述数据块差异列表中至少包括存在差异的原始数据块对应的最小单元位置和差异内容,每个存在差异的原始数据块对应一个数据块差异列表,所述文件同步列表中至少包括存在差异的原始数据块的编号、存在差异的原始数据块对应的数据块差异列表的编号、对应的修改数据块的哈希值。
可选的,所述目标格式为备同步设备中原始文件的标准格式;则第一处理模块具体用于:
将所述文件差异信息进行格式转换,转换为公共格式;
将公共格式的文件差异信息进行格式转换,转换为备同步设备能够识别的标准格式;
或者,所述目标格式为公共格式,则第一处理模块具体用于:
将所述文件差异信息进行格式转换,转换为公共格式,以使所述备同步设备能够将公共格式的文件差异信息转换为标准格式。
可选的,所述目标格式为备同步设备中原始文件的标准格式;则第二处理模块具体用于:
将所述修改后的最新文件进行格式转换,转换为公共格式;
将公共格式的所述修改后的最新文件进行格式转换,转换为备同步设备能够识别的标准格式;
或者,所述目标格式为公共格式,则若确定不相同,则第二处理模块具体用于:
将所述修改后的最新文件进行格式转换,转换为公共格式,以使所述备同步设备能够将公共格式的所述修改后的最新文件转换为标准格式。
可选的,第二处理模块具体用于:
将所述修改后的最新文件划分为多个修改数据块,并根据划分顺序,生成数据块编号列表,其中,每个修改数据块的数据块头部中至少包括数据块编号,所述数据块编号列表中至少包括修改数据块的编号、对应的表示拆分顺序的编号;
将所述数据块编号列表与所述修改数据块发送给所述备同步设备,以使所述备同步设备根据目标格式的所述数据块编号列表和所述多个修改数据块,对所述备同步设备中的原始文件进行文件同步。
一种文件同步装置,应用于备同步设备,包括:
第一处理模块,用于根据主同步设备发送的原始文件验证请求,确定与所述主同步设备中相应的待同步前的原始文件的数据内容是否相同,并向所述主同步设备返回验证结果;
第二处理模块,用于接收所述主同步设备发送的目标格式的文件差异信息,并根据所述文件差异信息对原始文件进行文件同步,其中,所述目标格式的文件差异信息是所述主同步设备确定所述验证结果为相同时,根据原始文件和修改后的最新文件生成文件差异信息后,进行格式转换获得的;或,
第三处理模块,用于接收所述主同步设备发送的目标格式的最新文件,并根据所述最新文件,对所述备同步设备中的原始文件进行同步,其中,所述目标格式的最新文件是所述主同步设备确定所述验证结果为不相同时,将修改后的最新文件进行格式转换获得的。
可选的,第一处理模块具体用于:
根据所述原始文件验证请求,确定本地相应的原始文件的第三哈希值、和/或本地相应的原始文件和预设特殊字符的第四哈希值,其中,所述原始文件验证请求中至少包括主同步设备中的原始文件的第一哈希值、和/或原始文件和预设特殊字符生成的第二哈希值;
将所述第三哈希值与所述第一哈希值比对,和/或所述第四哈希值与所述第二哈希值比对,若确定比对结果均相同,则确定与所述主同步设备中相应的待同步前的原始文件的数据内容相同,若确定任意一个比对结果不相同,则确定与所述主同步设备中相应的待同步前的原始文件的数据内容不相同。
可选的,所述文件差异信息至少包括数据块差异列表和文件同步列表;则第二处理模块具体用于:
根据所述文件同步列表中存在差异的原始数据块的编号,确定所述备同步设备中原始文件中对应的存在差异的原始数据块,其中,所述主同步设备与所述备同步设备中相应的原始文件分别按照预设划分方式划分为多个原始数据块,所述主同步设备中最新文件是修改数据块和未进行修改的原始数据块进行组合生成的,所述修改数据块是将所述原始数据块进行修改后获得的,所述文件同步列表中至少包括存在差异的原始数据块的编号、存在差异的原始数据块对应的数据块差异列表的编号、对应的修改数据块的哈希值;
根据所述文件同步列表中存在差异的原始数据块对应的数据块差异列表的编号、所述数据块差异列表,分别将所述备同步设备中原始文件中对应的存在差异的原始数据块进行修改,生成各修改数据块,其中,所述数据块差异列表中至少包括存在差异的原始数据块对应的最小单元位置和差异内容,每个存在差异的原始数据块对应一个数据块差异列表;
将所述备同步设备中原始文件中未修改的原始数据块和生成的各修改数据块,进行组合,并将组合生成的文件代替原始文件以实现文件同步。
可选的,第三处理模块具体用于:
接收所述主同步设备发送的目标格式的所述最新文件的修改数据块和数据块编号列表,其中,所述最新文件按照预设划分方式划分为多个修改数据块,所述数据块编号列表中至少包括修改数据块的编号、对应的表示拆分顺序的编号;
将所述最新文件的修改数据块存储到临时存储区;
按照各修改数据块对应的表示拆分顺序的编号,依次读取所述临时存储区中的修改数据块,并将读取的各修改数据块按照读取顺序进行组合,将组合生成的文件代替原始文件以实现文件同步。
可选的,进一步包括:第一验证模块,用于:
接收所述主同步设备发送的所述最新文件的第五哈希值、和/或所述最新文件和预设特殊字符的第六哈希值;
确定所述组合生成的文件的第七哈希值、和/或所述组合生成的文件和预设特殊字符的第八哈希值;
将所述第五哈希值与所述第七哈希值比对,和/或所述第六哈希值与所述第八哈希值比对,若确定比对结果均相同,则确定所述组合生成的文件正确,若确定任意一个比对结果不相同,则确定所述组合生成的文件不正确。
可选的,生成各修改数据块之后,进一步包括:第二验证模块,用于:
分别确定生成的各修改数据块的第九哈希值;
将所述各修改数据块的第九哈希值与所述文件同步列表中对应的修改数据块的哈希值进行比对,若确定比对结果相同,则确定生成的各修改数据块修改正确,若确定不相同,则确定生成的修改数据块修改不正确。
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述文件同步方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述文件同步方法的步骤。
本申请实施例中,主同步设备若确定与备同步设备中的相应的待同步前的原始文件相同,则根据原始文件和修改后的最新文件生成文件差异信息,然后将原始文件格式的文件差异信息进行格式转换,转换为备同步设备能够识别的目标格式,进而实现文件同步,若确定相应的待同步前的原始文件不相同,则将最新文件进行格式转换,转换为备同步设备能够识别的目标格式,进而实现文件同步,这样,可以提高文件同步速率。
附图说明
图1为本申请实施例中一种文件同步方法的流程图;
图2为本申请实施例中另一种文件同步方法的流程图;
图3为本申请实施例中另一种文件同步方法示意图;
图4为本申请实施例中原始文件相同时文件同步流程图;
图5为本申请实施例中原始文件不相同时文件同步流程图;
图6为本申请实施例中文件正确性校验流程图;
图7为本申请实施例中修改数据块正确性校验流程图;
图8为本申请实施例中一种文件同步装置;
图9为本申请实施例中另一种文件同步装置;
图10为本申请实施例中电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在实际应用中,经常会遇到在相同类型的设备或者不同类型的设备中使用相同文件数据的情况,但是,当需要对不同设备中的相同文件数据进行同步时,可能会因为不同设备之间能够识别的文件格式不同,而无法识别接收到的文件,进而不能进行同步,这样,需要将所有传输的文件全部重新同步,才能够实现文件同步,会导致文件同步效率低的问题。
因此,针对上述问题,本申请实施例中,提供了一种文件同步方法,确定主同步设备与备同步设备中的待同步的原始文件的数据内容是否相同,若确定相同,则生成文件差异信息,并将文件差异信息转换为目标格式,然后备同步设备根据目标格式的最新文件对备同步设备中的原始文件进行同步,或者,当确定原始文件不同时,则将修改后的最新文件进转换为备同步设备能够识别的目标格式,进而使备同步设备对原始文件进行同步,使用这样的文件同步方法,能够提高文件同步时的效率。
基于上述实施例,参阅图1所示,为本申请实施例中一种文件同步方法的流程图,主要应用于主同步设备,具体包括:
步骤100:主同步设备确定与备同步设备中相应的待同步前的原始文件的数据内容是否相同。
其中,主同步设备和备同步设备中原始文件的格式不同。
具体地,在执行步骤100时,具体包括:
s1:主同步设备向备同步设备发送原始文件验证请求。
其中,原始文件验证请求中至少包括主同步设备中的原始文件的第一哈希值、和/或原始文件和预设特殊字符生成的第二哈希值。
具体地,在执行步骤s1时,可以将原始文件验证请求分为三种不同的情况。
第一种情况:原始文件验证请求中至少包括主同步设备中的原始文件的第一哈希值。
在本申请实施例中,主同步设备中的原始文件根据哈希算法,获得原始文件的第一哈希值,然后将该原始文件的第一哈希值存储在原始文件验证请求中,并发送给备同步设备。
例如,主同步设备将该原始文件通过哈希运算,获得原始文件的第一哈希值为ha0,然后将该第一哈希值ha0存储在原始文件验证请求中,发送给备同步设备。
第二种情况:原始文件验证请求中至少包括原始文件和预设特殊字符生成的第二哈希值。
在本申请实施例中,主同步设备中的原始文件根据哈希运算,将原始文件与预设的特殊字符进行哈希运算,获得原始文件与预设的特殊字符的第二哈希值,然后将该第二哈希值存储在原始文件验证请求中,并发送给备同步设备。
例如,主同步设备将原始文件与预设的特殊字符通过哈希运算,获得第二哈希值为ha1,并存储在原始文件验证请求中,进而将原始文件验证请求发送给备同步设备。
第三种情况:原始文件验证请求中至少包括主同步设备中的原始文件的第一哈希值,以及原始文件和预设特殊字符生成的第二哈希值。
在本申请实施例中,主同步设备将待同步的原始文件经过哈希运算,获得原始文件的第一哈希值,并且,主同步设备将待同步的原始文件与特殊字符经过哈希运算,获得原始文件的第二哈希值,然后将该原始文件的第一哈希值和第二哈希值存储在原始文件验证请求中,并发送给备同步设备。
例如,主同步设备中的原始文件经过哈希运算,获得原始文件的第一哈希值为ha0,并且,主同步设备将原始文件与预设的特殊字符通过哈希运算,获得原始文件的第二哈希值为ha1,进而主同步设备将该第一哈希值ha0和第二哈希值ha1都存储在原始文件验证请求中,并一起发送给备同步设备。
本申请实施例中,在原始文件验证请求中携带第一哈希值,和/或第二哈希值,是为了使得备同步设备可以确定相应的原始文件是否相同,可以仅根据第一哈希值或第二哈希值,还可以为了提高准确性,可以同时根据第一哈希值和第二哈希值。
进一步地,基于上述三种不同的情况,该原始文件验证请求还至少包括原始文件的文件编号,其中,该文件编号存储在文件存储列表中,文件存储列表用于存储所有主同步设备和备同步设备中文件的对应关系,至少包括文件编号和在本地的文件存储路径,主同步设备和备同步设备分别对应一个文件存储列表,进而当备同步设备接收到这个文件编号时,可以根据对应的文件存储列表,找到该文件编号对应的文件存储路径,从而获得对应的待同步的原始文件。
s2:主同步设备接收备同步设备返回的验证结果,并确定与备同步设备中相应的待同步前的原始文件的数据内容是否相同。
其中,验证结果是备同步设备接收到原始文件验证请求后,确定本地相应的原始文件的第三哈希值、和/或本地相应的原始文件和预设特殊字符的第四哈希值,并将第三哈希值与第一哈希值比对,和/或第四哈希值与第二哈希值比对后获得的。
在本申请实施例中,执行步骤s2,具体包括:
1)备同步设备根据存储在文件存储列表中的文件编号检索在备同步设备中的原始文件。
本申请实施例中,当备同步设备接收到原始文件验证请求时,根据该原始文件验证请求中的文件编号,在文件存储列表中检索出在备同步设备中的原始文件的文件存储路径,获取到备同步设备中相应的待同步前的原始文件。
例如,原始文件验证请求中的文件编号为a,则当备同步设备接收到主同步设备发送的该文件编号a后,根据该文件编号a在备同步设备的文件存储列表中找到对应的原始文件的文件存储路径,从而获取该对应的原始文件。
其中,该文件存储列表用于存储主同步设备与备同步设备的原始文件的对应关系。主同步设备只需将原始文件的文件编号发送给备同步设备,备同步设备根据该文件编号即可找到对应的原始文件。如下表1所示,为文件存储列表示例。
表1.
如表1所示,分别为主同步设备和备同步设备对应的文件存储列表,例如,主同步设备的文件编号为a,则根据该文件编号a找到在备同步设备中对应的文件编号a,进而找到备同步设备中对应的文件存储路径d:\text.xml,则是c:\text.txt与d:\text.xml这两个文件存储路径对应的原始文件之间进行数据同步,若主同步设备的文件编号为b,则是文件编号b对应的c:\test0.txt与c:\test0.pdf文件存储路径对应的原始文件进行数据同步。
2)备同步设备将验证结果返回给主同步设备,主同步设备接收备同步设备返回的验证结果,并确定与备同步设备中相应的待同步前的原始文件的数据内容是否相同。
相应地,备同步设备返回的验证结果也可以根据不同情况进行比对后获得的,具体分为以下三种情况:
第一种情况:验证结果是根据第三哈希值与第一哈希值比对进而获得的。
在本申请实施例中,备同步设备根据备同步设备中本地相应的原始文件通过哈希运算,获得第三哈希值,然后将第三哈希值与接收到的第一哈希值进行比对,获得验证结果。
例如,备同步设备获得原始文件的第三哈希值为hb0,然后将第三哈希值hb0与接收到的第一哈希值ha0进行比对,确定hb0与ha0是否相同,进而获得验证结果。
即若第一哈希值与第三哈希值相同,则确定主同步设备与备同步设备中相应的待同步前的原始文件的数据内容相同。若第一哈希值与第三哈希值不相同,则确定主同步设备与备同步设备中相应的待同步前的原始文件的数据内容不相同。
第二种情况:验证结果是根据第四哈希值与第二哈希值比对进而获得的。
在本申请实施例中,备同步设备根据备同步设备中的待同步前的原始文件与预设的特殊字符通过哈希运算,获得第四哈希值,然后将第四哈希值与接收到的第二哈希值进行比对,获得验证结果。
例如,备同步设备通过哈希运算,获得第四哈希值hb1,然后将第四哈希值hb1与接收到的第二哈希值ha1进行比对,确定ha1与hb1是否相同,进而获得验证结果。
即若第二哈希值与第四哈希值相同,则能够确定主同步设备与备同步设备中相应的待同步前的原始文件的数据内容相同。若第二哈希值与第四哈希值不相同,则能够确定主同步设备与备同步设备中相应的待同步前的原始文件的数据内容不相同。
第三种情况:验证结果是通过第三哈希值与第一哈希值比对、以及第四哈希值与第二哈希值比对后获得的。
在本申请实施例中,备同步设备根据备同步设备中的待同步前的原始文件通过哈希运算,获得第三哈希值,并且,将原始文件与预设的特殊字符通过哈希运算,获得第四哈希值,然后将第三哈希值与接收到的第一哈希值进行比对,第四哈希值与接收到的第二哈希值进行比对,进而获得验证结果。
例如,备同步设备将原始文件通过哈希运算,获得第三哈希值hb0,并且,将原始文件和预设的特殊字符通过哈希运算,获得第四哈希值hb1,将第四哈希值hb1与第二哈希值ha1进行比对,以及将第三哈希值hb0与第一哈希值ha0进行比对,进而获得验证结果。
因此,只有当ha0与hb0相同,并且ha1与hb1相同,即第一哈希值与第三哈希值相同,并且第二哈希值与第四哈希值相同的情况下,主同步设备与备同步设备中相应的待同步前的原始文件的数据内容才是相同的,通过这种对两种哈希值都进行验证的方法,可以防止哈希碰撞,能够进一步对原始文件的数据内容进行验证,进而确保原始文件验证的正确性。
步骤110:主同步设备若确定相同,则根据原始文件和修改后的最新文件,生成文件差异信息,并将文件差异信息进行格式转换,转换为备同步设备能够识别的目标格式,以使备同步设备根据目标格式的文件差异信息,对备同步设备中的原始文件进行文件同步。
执行步骤110,具体包括:
s1:主同步设备按照预设划分方式,将原始文件划分为多个原始数据块,并记录各原始数据块的编号。
例如,主同步设备可以按照以100个最小单元为间隔,将原始文件划分为多个原始数据块,本申请实施例中对预设的划分方式并不进行限制。
并且,主控制设备在划分完原始数据块后,将这些原始数据块进行编号,并将编号进行记录。
s2:分别将各相同编号的原始数据块与修改数据块,按照最小单元大小依次进行比对。
其中,修改数据块是将原始数据块进行修改后获得的,修改后的最新文件是修改数据块和未进行修改的原始数据块进行组合生成的。
例如,一个原始数据块的编号为1,一个修改数据块的编号也为1,则将该1号原始数据块与该1号修改数据块,按照最小单元大小将数据块中的每个最小单元都进行比对。
其中,最小单元指的是文件的存储的单位,可以为:一个字节、一个字符,数据块则是由多个最小单元组成的,本申请实施例中对此并不进行限制。
s3:根据比对结果生成数据块差异列表和文件同步列表。
其中,数据块差异列表中至少包括存在差异的原始数据块对应的最小单元位置和差异内容,每个存在差异的原始数据块对应一个数据块差异列表,文件同步列表中至少包括存在差异的原始数据块的编号、存在差异的原始数据块对应的数据块差异列表的编号、对应的修改数据块的哈希值。
也就是说,本申请实施例中文件差异信息至少包括数据块差异列表和文件同步列表。
s4:将文件差异信息进行格式转换,转换为备同步设备能够识别的目标格式,以使备同步设备根据目标格式的文件差异信息,对备同步设备中的原始文件进行文件同步。
在本申请实施例中,执行步骤s4可以具体分为以下两种情况:
第一种情况:目标格式为备同步设备中原始文件的标准格式,则具体包括:
1)将文件差异信息进行格式转换,转换为公共格式。
2)将公共格式的文件差异信息进行格式转换,转换为备同步设备能够识别的标准格式。
例如,首先主同步设备将.xml格式的文件差异信息转换为.html格式,该.html格式为主同步设备与备同步设备都能够识别的公共格式,然后主同步设备将.html格式的文件差异信息转换为.xls格式,该.xls格式为备同步设备能够识别的格式。
第二种情况:目标格式为公共格式,则具体包括:
将文件差异信息进行格式转换,转换为公共格式,以使备同步设备能够将公共格式的文件差异信息转换为标准格式。
在本申请实施例中,主同步设备将文件差异信息转换为公共格式,然后将公共格式的文件差异信息发送给备同步设备,备同步设备将公共格式的文件差异信息转换为标准格式的文件差异信息。
例如,主同步设备将.xml格式的文件差异信息转换为.html格式,然后备同步设备将.html格式的文件差异信息转换为.xls格式。
步骤120:若确定不相同,则将修改后的最新文件进行格式转换,转换为备同步设备能够识别的目标格式,以使备同步设备根据目标格式的最新文件,对备同步设备中的原始文件进行文件同步。
在执行步骤120时,具体包括:
s1:将修改后的最新文件划分为多个修改数据块,并根据划分顺序,生成数据块编号列表。
其中,每个修改数据块的数据块头部中至少包括数据块编号,数据块编号列表中至少包括修改数据块的编号、对应的表示拆分顺序的编号。其中,修改数据块的数据块头部中包括数据块编号。
因此,在本申请实施例中,每个修改数据块是由数据块头部与数据块数据内容组成的,数据块头部中包括数据块的当前编号,数据块数据内容包括数据块中实际存储的内容。
例如,第一个修改数据块的头部存储的数据块标号即为1。
在执行步骤s1之前,主同步设备将修改后的最新文件先进行格式转换,转换为备同步设备能够识别的目标格式,具体也可以有以下两种方式:
第一种方式:目标格式为备同步设备中原始文件的标准格式;则若确定不相同,则将修改后的最新文件进行格式转换,转换为备同步设备能够识别的目标格式,具体包括:
1)将修改后的最新文件进行格式转换,转换为公共格式。
2)将公共格式的修改后的最新文件进行格式转换,转换为备同步设备能够识别的标准格式。
第二种方式:目标格式为公共格式,则若确定不相同,则将修改后的最新文件进行格式转换,转换为备同步设备能够识别的目标格式,具体包括:将修改后的最新文件进行格式转换,转换为公共格式,以使备同步设备能够将公共格式的修改后的最新文件转换为标准格式。
s2:主同步设备将数据块编号列表与修改数据块发送给备同步设备,以使备同步设备根据目标格式的数据块编号列表和多个修改数据块,对备同步设备中的原始文件进行文件同步。
这样,本申请实施例中,备同步设备根据接收到的原始文件验证请求向主同步设备发送验证结果,如果验证结果为相同,则接收主同步设备发送的目标格式的文件差异信息,根据该文件差异信息对原始文件进行同步,若验证结果不同,接收主同步设备发送的最新文件,进而进行文件同步,这样,能够降低文件同步时的传输的数据量,提高文件同步效率。
参阅图2所示,为本申请实施例中另一种文件同步方法的流程图,主要应用于备同步设备,具体包括:
步骤200:备同步设备根据主同步设备发送的原始文件验证请求,确定与主同步设备中相应的待同步前的原始文件的数据内容是否相同,并向主同步设备返回验证结果。
在本申请实施例中,执行步骤200,具体包括:
s1:根据原始文件验证请求,确定本地相应的原始文件的第三哈希值、和/或本地相应的原始文件和预设特殊字符的第四哈希值,其中,原始文件验证请求中至少包括主同步设备中的原始文件的第一哈希值、和/或原始文件和预设特殊字符生成的第二哈希值。
s2:将第三哈希值与第一哈希值比对,和/或第四哈希值与第二哈希值比对,若确定比对结果均相同,则确定与主同步设备中相应的待同步前的原始文件的数据内容相同,若确定任意一个比对结果不相同,则确定与主同步设备中相应的待同步前的原始文件的数据内容不相同。
在本申请实施例中,备同步设备接收到主同步设备发送的原始文件的第一哈希值和/或原始文件的第二哈希值,然后根据文件存储列表找到对应的原始文件,获得原始文件的第三哈希值和/或原始文件的第四哈希值,并将第三哈希值与第一哈希值比对,和/或第四哈希值与第二哈希值比对。
步骤210:接收主同步设备发送的目标格式的文件差异信息,并根据文件差异信息对原始文件进行文件同步。
其中,目标格式的文件差异信息是主同步设备确定验证结果为相同时,根据原始文件和修改后的最新文件生成文件差异信息后,进行格式转换获得的。
在本申请实施例中,执行步骤210时,具体包括:
s1:备同步设备根据文件同步列表中存在差异的原始数据块的编号,确定备同步设备中原始文件中对应的存在差异的原始数据块。
其中,主同步设备与备同步设备中相应的原始文件分别按照预设划分方式划分为多个原始数据块,主同步设备中最新文件是修改数据块和未进行修改的原始数据块进行组合生成的,修改数据块是将原始数据块进行修改后获得的,文件同步列表中至少包括存在差异的原始数据块的编号、存在差异的原始数据块对应的数据块差异列表的编号、对应的修改数据块的哈希值。
s2:根据文件同步列表中存在差异的原始数据块对应的数据块差异列表的编号、数据块差异列表,分别将备同步设备中原始文件中对应的存在差异的原始数据块进行修改,生成各修改数据块。
其中,数据块差异列表中至少包括存在差异的原始数据块对应的最小单元位置和差异内容,每个存在差异的原始数据块对应一个数据块差异列表。
s3:将备同步设备中原始文件中未修改的原始数据块和生成的各修改数据块,进行组合,并将组合生成的文件代替原始文件以实现文件同步。
步骤220:接收主同步设备发送的目标格式的最新文件,并根据最新文件,对备同步设备中的原始文件进行同步。
其中,目标格式的最新文件是主同步设备确定验证结果为不相同时,将修改后的最新文件进行格式转换获得的。
在执行步骤220时,具体包括:
s1:接收主同步设备发送的目标格式的最新文件的修改数据块和数据块编号列表。
其中,最新文件按照预设划分方式划分为多个修改数据块,数据块编号列表中至少包括修改数据块的编号、对应的表示拆分顺序的编号。
其中,数据块编号列表主要用于主同步设备与备同步设备同步前原始文件不相同的情况下,用来说明数据块拆分顺序的列表,以使备同步设备能够根据数据编号列表进行同步文件的组装生成。
在本申请实施例中,使用数据块编号列表能够在进行文件同步组装过程,不用考虑数据块编号列表中的数据块内容,只需要按照数据块编号列表中表示拆分顺序的编号进行文件同步,这样,在使用多设备或多线程拆分数据块的时候,每个设备或者线程,都可以按照自己的编号规则对原始文件进行拆分,然后将拆分编号结果按照顺序添加到数据块编号列表,进而当备同步设备接收到拆分后的修改数据块后,使用多设备或多线程生成临时数据块,将临时数据块进行分段组装,然后再将组装好的临时数据块文件,按照修改数据块头部中的编号以及数据块编号列表中的表示拆分顺序的编号,一一对应进行组合,生成同步后的新的文件。
s2:将最新文件的修改数据块存储到临时存储区。
s3:按照各修改数据块对应的表示拆分顺序的编号,依次读取临时存储区中的修改数据块,并将读取的各修改数据块按照读取顺序进行组合,将组合生成的文件代替原始文件以实现文件同步。
在本申请实施例中,备同步设备按照数据块编号列表中的对应的表示拆分顺序的编号依次读取临时存储区中的数据块,并生成同步文件。
例如,如表2所示为数据块编号列表示例。
表2.
在本申请实施例的上表中,备同步设备按照对应的表示拆分顺序的编号依次读取临时存储区中的数据块,如表2所示,即依次读取数据块的编号为1、3、5、b和2的数据块,然后将这些数据块进行组合生成同步文件,即文件同步后的最新文件,来代替原始文件从而实现文件同步。
在本申请实施例中,备同步设备接收到主同步设备发送的验证结果,若验证结果为原始文件相同,则接收主同步设备发送的目标格式的文件差异信息,并进行文件同步,若验证结果为原始文件不相同,则接收主同步设备发送的目标格式的最新文件,进而将原始文件进行同步,使用这种方法对文件数据进行同步,能够提升文件同步效率。
基于上述实施例,下面采用具体应用场景对当原始文件的数据内容相同时进行文件同步的这种情况进行说明,以主同步设备为a设备,备同步设备为b设备为例,此时,a设备配置的原始文件格式为a.xml,b设备配置的原始文件格式为b.xls,具体参阅图3所示,为本申请实施例中另一种文件同步方法示意图,包括:
步骤300:a设备根据原始文件a.xml和修改后的最新文件a1.xml,生成文件差异信息。
在本申请实施例中,执行步骤300,具体包括:
s1:a设备按照预设划分方式,将原始文件划分为多个原始数据块,并记录各原始数据块的编号。
在本申请实施例中,将原始文件a.xml按照预设的划分方式划分为100个原始数据块,并将原始数据块的最小单元位置进行存储。
s2:a设备分别将各相同编号的原始数据块与修改数据块,按照最小单元大小依次进行比对。
其中,修改数据块是将原始数据块修改进而获得的,修改后的最新文件是修改数据块和未进行修改的原始数据块进行组合生成的。
s3:根据比对结果生成数据块差异列表和文件同步列表。
其中,数据块差异列表中至少包括存在差异的原始数据块对应的最小单元位置和差异内容,每个存在差异的原始数据块对应一个数据块差异列表,文件同步列表中至少包括存在差异的原始数据块的编号、存在差异的原始数据块对应的数据块差异列表的编号、对应的修改数据块的哈希值。
在本申请实施例中,如表3所示,为1号数据块差异列表。
表3.
其中,“ ”号代表添加,“-”代表删除,差异的原始数据块对应的最小单元位置为表3中的最小单元位置,差异内容为表3中的操作类型和内容。
因此在如上表所示的1号数据块差异列表中,表示当根据数据块差异列表修改数据块时,需要将最小单元位置为20的数据块内容后面添加abc,也就是说,将1号数据块中的第20个最小单元后添加abc,将最小单元位置为25的数据块内容清空,将最小单元位置为26的数据块内容清空,将最小单元位置为35的数据块内容后面添加56,将最小单元位置为56的数据块内容清空,将最小单元位置为72的数据块内容后面添加887po,将最小单元位置为80的数据块内容清空。
由于每个存在差异的原始数据块对应一个数据块差异列表,因此当2号数据块存在差异时,也应当生成一个数据块差异列表,因此如表4所示,为2号数据块差异列表。
表4.
因此在如上表所示的2号数据块差异列表中,将最小单元位置为21的数据块内容后面添加abc,也就是说,将2号数据块中的第20个最小单元后添加abc,将最小单元位置为26的数据块内容清空,将最小单元位置为26的数据块内容清空,将最小单元位置为35的数据块内容后面添加56,将最小单元位置为53的数据块内容清空,将最小单元位置为72的数据块内容后面添加8po,将最小单元位置为89的数据块内容清空。
并且,a设备生成文件同步列表,文件同步列表中保存的是:1)存在差异的原始数据块的编号2)存在差异的原始数据块对应的数据块差异列表的编号3)对应的修改数据块的哈希值,如下表5所示,为文件同步列表。
表5.
其中,数据块编号为存在差异的原始数据块的编号,数据块对应的差异列表编号为存在差异的原始数据块对应的数据块差异列表的编号,数据块哈希值为对应的修改数据块的哈希值。
s4:将文件差异列表和文件同步信息进行组合,生成.xml格式的文件差异信息。
步骤310:a设备将.xml文件差异信息转换为b设备能够识别的目标格式的文件差异信息。
在本申请实施例中,目标格式的文件差异信息为.xls格式的文件差异信息。
步骤320:b设备根据目标格式的文件差异信息,对b设备中的原始文件进行文件同步。
在本申请实施例中,b设备根据.xls格式的文件差异信息,对b设备中的原始文件进行文件同步。
在本申请实施例中,执行步骤320,具体包括:
s1:b设备根据文件同步列表中存在差异的原始数据块的编号,确定b设备中原始文件中对应的存在差异的原始数据块。
其中,a设备与b设备中相应的原始文件分别按照预设划分方式划分为多个原始数据块,文件同步列表中至少包括存在差异的原始数据块的编号、存在差异的原始数据块对应的数据块差异列表的编号、对应的修改数据块的哈希值。
s2:b设备根据文件同步列表中存在差异的原始数据块对应的数据块差异列表的编号、数据块差异列表,分别将b设备中原始文件中对应的存在差异的原始数据块进行修改,生成各修改数据块。
其中,数据块差异列表中至少包括存在差异的原始数据块对应的最小单元位置和差异内容,每个存在差异的原始数据块对应一个数据块差异列表。
在本申请实施例中,b设备根据数据块差异列表中的数据块的编号,对数据块对应位置进行标记,然后将数组按照读取顺序,依次输出数据块下标中对应的值,当读取到标记过的数据块标号时则按照数据块差异列表中的操作类型和内容对标记编号位置的内容进行操作,然后依次输出所有数组中的内容,形成新的1号数据块。根据下表6所示的1号数据块差异列表,修改1号数据块。
表6.
因此根据如上表所示的1号数据块差异列表,b设备将最小单元位置为20的数据块内容后面添加abc,也就是说,将1号数据块中的第20个最小单元后添加abc,将最小单元位置为25的数据块内容清空,将最小单元位置为26的数据块内容清空,将最小单元位置为35的数据块内容后面添加56,将最小单元位置为56的数据块内容清空,将最小单元位置为72的数据块内容后面添加887po,将最小单元位置为80的数据块内容清空,进而生成1号修改数据块。
步骤330:b设备校验修改数据块修改的正确性。
步骤340:b设备将b设备中原始文件中未修改的原始数据块和生成的各修改数据块,进行组合,并将组合生成的文件代替原始文件以实现文件同步。
步骤350:b设备校验组合生成的文件的完整性。
在本申请实施例中,当备主同步设备确定主同步设备与备同步设备的原始文件相同,则先将原始文件生成文件差异信息,并将原始文件格式的文件差异信息转换为备同步设备能够识别的目标格式的文件差异信息,进而实现原始文件的同步过程,这样,可以使得文件数据内容相同的文件数据之间同步时,不需要将全部的文件都进行同步,只需要同步其中修改的部分即可,使用这种方法,能够提高同步文件的效率。
基于上述实施例,参阅图4所示,为本申请实施例中原始文件相同时文件同步流程图,包括:
步骤400:主同步设备根据原始文件和修改后的最新文件生成原始文件格式的文件差异信息。
在本申请实施例中,执行步骤400,具体包括:
s1:主同步设备按照预设划分方式,将原始文件划分为多个原始数据块,并记录各原始数据块的编号。
s2:主同步设备根据比对结果生成数据块差异列表和文件同步列表。
其中,数据块差异列表中至少包括存在差异的原始数据块对应的最小单元位置和差异内容,每个存在差异的原始数据块对应一个数据块差异列表,文件同步列表中至少包括存在差异的原始数据块的编号、存在差异的原始数据块对应的数据块差异列表的编号、对应的修改数据块的哈希值。
具体地,当操作者对原始文件进行修改后,首先将原始文件划分为多个原始数据块,然后根据修改的数据块编号,判断操作者修改的是哪一个数据块,然后将修改完成的数据块,生成修改数据块,操作者对原始文件修改完成以后,备同步设备将修改后的数据块与修改前的数据块进行对比,生成数据块差异列表和文件同步列表。
步骤410:主同步设备将文件差异信息进行格式转换,转换为备同步设备能够识别的目标格式的文件差异信息。
步骤420:备同步设备根据目标格式的文件差异信息,对备同步设备中的原始文件进行文件同步。
具体地,执行步骤420时,具体包括:
s1:备同步设备根据文件同步列表中存在差异的原始数据块的编号,确定备同步设备中原始文件中对应的存在差异的原始数据块。
其中,主同步设备与备同步设备中相应的原始文件分别按照预设划分方式划分为多个原始数据块,主同步设备中最新文件是修改数据块和未进行修改的原始数据块进行组合生成的,修改数据块是将原始数据块进行修改后获得的,文件同步列表中至少包括存在差异的原始数据块的编号、存在差异的原始数据块对应的数据块差异列表的编号、对应的修改数据块的哈希值。
s2:备同步设备根据文件同步列表中存在差异的原始数据块对应的数据块差异列表的编号、数据块差异列表,分别将备同步设备中原始文件中对应的存在差异的原始数据块进行修改,生成各修改数据块。
其中,数据块差异列表中至少包括存在差异的原始数据块对应的最小单元位置和差异内容,每个存在差异的原始数据块对应一个数据块差异列表。
s3:备同步设备将备同步设备中原始文件中未修改的原始数据块和生成的各修改数据块,进行组合,并将组合生成的文件代替原始文件以实现文件同步。
本申请实施例中的这种方法,将原始文件按照数据块大小划分为若干原始数据块,然后将原始数据块与修改后的数据块进行比对,生成数据块差异列表和文件同步列表,并将数据块差异列表和文件同步列表组合生成文件差异信息,然后文件差异信息转换为备同步设备能够识别的目标格式的文件差异信息,并发送给备同步设备,进而备同步设备根据目标格式的文件差异信息,对其存储的原始文件进行文件同步,这样,能够提高文件同步效率,降低文件同步难度。
基于上述实施例,参阅图5所示,为本申请实施例中原始文件不相同时文件同步流程图,包括:
步骤500:主同步设备将修改后的最新文件进行格式转换,转换为备同步设备能够识别的目标格式的最新文件。
步骤510:将修改后的最新文件划分为多个修改数据块,并根据划分顺序,生成数据块编号列表。
其中,每个修改数据块的数据块头部中至少包括数据块编号,数据块编号列表中至少包括修改数据块的编号、对应的表示拆分顺序的编号。
步骤520:主同步设备将数据块编号列表与修改数据块发送给备同步设备。
步骤530:备同步设备接收主同步设备发送的目标格式的最新文件的修改数据块和数据块编号列表。
其中,最新文件按照预设划分方式划分为多个修改数据块,数据块编号列表中至少包括修改数据块的编号、对应的表示拆分顺序的编号。
步骤540:备同步设备将最新文件的修改数据块存储到临时存储区。
步骤550:备同步设备按照各修改数据块对应的表示拆分顺序的编号,依次读取临时存储区中的修改数据块,并将读取的各修改数据块按照读取顺序进行组合,将组合生成的文件代替原始文件以实现文件同步。
在本申请实施例中,当原始文件不相同时,主同步设备先将修改后的最新文件进行格式转换,将原始文件格式的最新文件转换为备同步设备能够识别的目标格式的最新文件,然后将最新文件划分多个数据块,并生成数据块编号列表,主同步设备将数据块编号列表和修改数据块发送给备同步设备,备同步设备根据标识拆分顺序的编号列表依次读取修改数据块,并进行组合,实现文件同步,使用这种方法,能够提高文件同步效率。
基于上述实施例,参阅图6所示,为本申请实施例中文件正确性校验流程图,包括:
步骤600:备同步设备接收主同步设备发送的最新文件的第五哈希值、和/或最新文件和预设特殊字符的第六哈希值。
步骤610:备同步设备确定组合生成的文件的第七哈希值、和/或组合生成的文件和预设特殊字符的第八哈希值。
步骤620:备同步设备将第五哈希值与第七哈希值比对,和/或第六哈希值与第八哈希值比对,若确定比对结果均相同,则确定组合生成的文件正确,若确定任意一个比对结果不相同,则确定组合生成的文件不正确。
在本申请实施例中,将主同步设备发送的最新文件的哈希值与备同步设备组合生成的文件的哈希值进行对比,进而对组合生成的文件进行验证,这样,能够提高备同步设备组合生成的文件的正确性。
基于上述实施例,参阅图7所示,为本申请实施例中修改数据块正确性校验流程图,包括:
步骤700:备同步设备分别确定生成的各修改数据块的第九哈希值。
在本申请实施例中,当确定主同步设备与备同步设备的原始文件相同时,在备同步设备生成修改数据块后,需要校验修改数据块的修改的正确性。
步骤710:备同步设备将各修改数据块的第九哈希值与文件同步列表中对应的修改数据块的哈希值进行比对,若确定比对结果相同,则确定生成的各修改数据块修改正确,若确定不相同,则确定生成的修改数据块修改不正确。
在本申请实施例中,使用这种方法,将备同步设备确定的修改数据块的哈希值与备同步设备接收到的文件同步列表中的哈希值进行对比,进而验证修改数据块是否修改正确,可以提高在文件同步过程中修改数据块的正确性。
基于同一发明构思,本申请实施例中提供了一种文件同步装置,该文件同步装置例如可以是前述实施例中的主同步设备,该文件同步装置可以是硬件结构、软件模块、或硬件结构加软件模块。基于上述实施例,参阅图8所示为本申请实施例中一种文件同步装置,具体包括:
确定模块800,用于确定与备同步设备中相应的待同步前的原始文件的数据内容是否相同,其中,所述主同步设备和所述备同步设备中原始文件的格式不同;
第一处理模块810,用于若确定相同,则根据原始文件和修改后的最新文件,生成文件差异信息,并将所述文件差异信息进行格式转换,转换为备同步设备能够识别的目标格式,以使所述备同步设备根据目标格式的文件差异信息,对所述备同步设备中的原始文件进行文件同步;
第二处理模块820,用于若确定不相同,则将修改后的最新文件进行格式转换,转换为备同步设备能够识别的目标格式,以使所述备同步设备根据目标格式的最新文件,对所述备同步设备中的原始文件进行文件同步。
可选的,确定模块800具体用于:
向所述备同步设备发送原始文件验证请求,其中,所述原始文件验证请求中至少包括主同步设备中的原始文件的第一哈希值、和/或原始文件和预设特殊字符生成的第二哈希值;
接收所述备同步设备返回的验证结果,并确定与备同步设备中相应的待同步前的原始文件的数据内容是否相同,其中,所述验证结果是所述备同步设备接收到原始文件验证请求后,确定本地相应的原始文件的第三哈希值、和/或本地相应的原始文件和预设特殊字符的第四哈希值,并将所述第三哈希值与所述第一哈希值比对,和/或所述第四哈希值与所述第二哈希值比对后获得的。
可选的,第一处理模块810具体用于:
按照预设划分方式,将所述原始文件划分为多个原始数据块,并记录各原始数据块的编号;
分别将各相同编号的原始数据块与修改数据块,按照最小单元大小依次进行比对,其中,所述修改数据块是将所述原始数据块进行修改后获得的,所述修改后的最新文件是所述修改数据块和未进行修改的原始数据块进行组合生成的;
根据比对结果生成数据块差异列表和文件同步列表,其中,所述数据块差异列表中至少包括存在差异的原始数据块对应的最小单元位置和差异内容,每个存在差异的原始数据块对应一个数据块差异列表,所述文件同步列表中至少包括存在差异的原始数据块的编号、存在差异的原始数据块对应的数据块差异列表的编号、对应的修改数据块的哈希值。
可选的,所述目标格式为备同步设备中原始文件的标准格式;则第一处理模块810具体用于:
将所述文件差异信息进行格式转换,转换为公共格式;
将公共格式的文件差异信息进行格式转换,转换为备同步设备能够识别的标准格式;
或者,所述目标格式为公共格式,则第一处理模块810具体用于:
将所述文件差异信息进行格式转换,转换为公共格式,以使所述备同步设备能够将公共格式的文件差异信息转换为标准格式。
可选的,所述目标格式为备同步设备中原始文件的标准格式;则第二处理模块820具体用于:
将所述修改后的最新文件进行格式转换,转换为公共格式;
将公共格式的所述修改后的最新文件进行格式转换,转换为备同步设备能够识别的标准格式;
或者,所述目标格式为公共格式,则第二处理模块820具体用于:
将所述修改后的最新文件进行格式转换,转换为公共格式,以使所述备同步设备能够将公共格式的所述修改后的最新文件转换为标准格式。
可选的,第二处理模块820具体用于:
将所述修改后的最新文件划分为多个修改数据块,并根据划分顺序,生成数据块编号列表,其中,每个修改数据块的数据块头部中至少包括数据块编号,所述数据块编号列表中至少包括修改数据块的编号、对应的表示拆分顺序的编号;
将所述数据块编号列表与所述修改数据块发送给所述备同步设备,以使所述备同步设备根据目标格式的所述数据块编号列表和所述多个修改数据块,对所述备同步设备中的原始文件进行文件同步。
基于同一发明构思,本申请实施例中提供了另一种文件同步装置,该另一种文件同步装置例如可以是前述实施例中的备同步设备,该另一种文件同步装置可以是硬件结构、软件模块、或硬件结构加软件模块。基于上述实施例,参阅图9所示为本申请实施例中另一种文件同步装置,具体包括:
第一处理模块900,用于根据主同步设备发送的原始文件验证请求,确定与所述主同步设备中相应的待同步前的原始文件的数据内容是否相同,并向所述主同步设备返回验证结果;
第二处理模块910,用于接收所述主同步设备发送的目标格式的文件差异信息,并根据所述文件差异信息对原始文件进行文件同步,其中,所述目标格式的文件差异信息是所述主同步设备确定所述验证结果为相同时,根据原始文件和修改后的最新文件生成文件差异信息后,进行格式转换获得的;或,
第三处理模块920,用于接收所述主同步设备发送的目标格式的最新文件,并根据所述最新文件,对所述备同步设备中的原始文件进行同步,其中,所述目标格式的最新文件是所述主同步设备确定所述验证结果为不相同时,将修改后的最新文件进行格式转换获得的。
可选的,第一处理模块900具体用于:
根据所述原始文件验证请求,确定本地相应的原始文件的第三哈希值、和/或本地相应的原始文件和预设特殊字符的第四哈希值,其中,所述原始文件验证请求中至少包括主同步设备中的原始文件的第一哈希值、和/或原始文件和预设特殊字符生成的第二哈希值;
将所述第三哈希值与所述第一哈希值比对,和/或所述第四哈希值与所述第二哈希值比对,若确定比对结果均相同,则确定与所述主同步设备中相应的待同步前的原始文件的数据内容相同,若确定任意一个比对结果不相同,则确定与所述主同步设备中相应的待同步前的原始文件的数据内容不相同。
可选的,所述文件差异信息至少包括数据块差异列表和文件同步列表,则第二处理模块910具体用于:
根据所述文件同步列表中存在差异的原始数据块的编号,确定所述备同步设备中原始文件中对应的存在差异的原始数据块,其中,所述主同步设备与所述备同步设备中相应的原始文件分别按照预设划分方式划分为多个原始数据块,所述主同步设备中最新文件是修改数据块和未进行修改的原始数据块进行组合生成的,所述修改数据块是将所述原始数据块进行修改后获得的,所述文件同步列表中至少包括存在差异的原始数据块的编号、存在差异的原始数据块对应的数据块差异列表的编号、对应的修改数据块的哈希值;
根据所述文件同步列表中存在差异的原始数据块对应的数据块差异列表的编号、所述数据块差异列表,分别将所述备同步设备中原始文件中对应的存在差异的原始数据块进行修改,生成各修改数据块,其中,所述数据块差异列表中至少包括存在差异的原始数据块对应的最小单元位置和差异内容,每个存在差异的原始数据块对应一个数据块差异列表;
将所述备同步设备中原始文件中未修改的原始数据块和生成的各修改数据块,进行组合,并将组合生成的文件代替原始文件以实现文件同步。
可选的,第三处理模块920具体用于:
接收所述主同步设备发送的目标格式的所述最新文件的修改数据块和数据块编号列表,其中,所述最新文件按照预设划分方式划分为多个修改数据块,所述数据块编号列表中至少包括修改数据块的编号、对应的表示拆分顺序的编号;
将所述最新文件的修改数据块存储到临时存储区;
按照各修改数据块对应的表示拆分顺序的编号,依次读取所述临时存储区中的修改数据块,并将读取的各修改数据块按照读取顺序进行组合,将组合生成的文件代替原始文件以实现文件同步。
可选的,进一步包括:第一验证模块930,用于:
接收所述主同步设备发送的所述最新文件的第五哈希值、和/或所述最新文件和预设特殊字符的第六哈希值;
确定所述组合生成的文件的第七哈希值、和/或所述组合生成的文件和预设特殊字符的第八哈希值;
将所述第五哈希值与所述第七哈希值比对,和/或所述第六哈希值与所述第八哈希值比对,若确定比对结果均相同,则确定所述组合生成的文件正确,若确定任意一个比对结果不相同,则确定所述组合生成的文件不正确。
可选的,生成各修改数据块之后,进一步包括:第二验证模块940,用于:
分别确定生成的各修改数据块的第九哈希值;
将所述各修改数据块的第九哈希值与所述文件同步列表中对应的修改数据块的哈希值进行比对,若确定比对结果相同,则确定生成的各修改数据块修改正确,若确定不相同,则确定生成的修改数据块修改不正确。
基于上述实施例,参阅图10所示为本申请实施例中电子设备的结构示意图。
本申请实施例提供了一种电子设备,该电子设备可以包括处理器1010(centerprocessingunit,cpu)、存储器1020、输入设备1030和输出设备1040等,输入设备1030可以包括键盘、鼠标、触摸屏等,输出设备1040可以包括显示设备,如液晶显示器(liquidcrystaldisplay,lcd)、阴极射线管(cathoderaytube,crt)等。
存储器1020可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器1010提供存储器1020中存储的程序指令和数据。在本申请实施例中,存储器1020可以用于存储本申请实施例中任一种文件同步方法的程序。
处理器1010通过调用存储器1020存储的程序指令,处理器1010用于按照获得的程序指令执行本申请实施例中任一种文件同步方法。
基于上述实施例,本申请实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意方法实施例中的文件同步方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
1.一种文件同步方法,其特征在于,包括:
主同步设备确定与备同步设备中相应的待同步前的原始文件的数据内容是否相同,其中,所述主同步设备和所述备同步设备中原始文件的格式不同;
若确定相同,则根据原始文件和修改后的最新文件,生成文件差异信息,并将所述文件差异信息进行格式转换,转换为备同步设备能够识别的目标格式,以使所述备同步设备根据目标格式的文件差异信息,对所述备同步设备中的原始文件进行文件同步,其中,根据原始文件和修改后的最新文件,生成文件差异信息,具体包括:按照预设划分方式,将所述原始文件划分为多个原始数据块,并记录各原始数据块的编号;分别将各相同编号的原始数据块与修改数据块,按照最小单元大小依次进行比对,其中,所述修改数据块是将所述原始数据块进行修改后获得的,所述修改后的最新文件是所述修改数据块和未进行修改的原始数据块进行组合生成的;根据比对结果生成数据块差异列表和文件同步列表,其中,所述数据块差异列表中至少包括存在差异的原始数据块对应的最小单元位置和差异内容,每个存在差异的原始数据块对应一个数据块差异列表,所述文件同步列表中至少包括存在差异的原始数据块的编号、存在差异的原始数据块对应的数据块差异列表的编号、对应的修改数据块的哈希值;
若确定不相同,则将修改后的最新文件进行格式转换,转换为备同步设备能够识别的目标格式,以使所述备同步设备根据目标格式的最新文件,对所述备同步设备中的原始文件进行文件同步。
2.如权利要求1所述的方法,其特征在于,若所述目标格式为备同步设备中原始文件的标准格式;则将所述文件差异信息进行格式转换,转换为备同步设备能够识别的目标格式,具体包括:
将所述文件差异信息进行格式转换,转换为公共格式;
将公共格式的文件差异信息进行格式转换,转换为备同步设备能够识别的标准格式;
或者,若所述目标格式为公共格式,则将所述文件差异信息进行格式转换,转换为备同步设备能够识别的目标格式,具体包括:
将所述文件差异信息进行格式转换,转换为公共格式,以使所述备同步设备能够将公共格式的文件差异信息转换为标准格式。
3.如权利要求1所述的方法,其特征在于,若所述目标格式为备同步设备中原始文件的标准格式;则若确定不相同,则将修改后的最新文件进行格式转换,转换为备同步设备能够识别的目标格式,具体包括:
将所述修改后的最新文件进行格式转换,转换为公共格式;
将公共格式的所述修改后的最新文件进行格式转换,转换为备同步设备能够识别的标准格式;
或者,若所述目标格式为公共格式,则若确定不相同,则将修改后的最新文件进行格式转换,转换为备同步设备能够识别的目标格式,具体包括:
将所述修改后的最新文件进行格式转换,转换为公共格式,以使所述备同步设备能够将公共格式的所述修改后的最新文件转换为标准格式。
4.一种文件同步方法,其特征在于,包括:
备同步设备根据主同步设备发送的原始文件验证请求,确定与所述主同步设备中相应的待同步前的原始文件的数据内容是否相同,并向所述主同步设备返回验证结果;
接收所述主同步设备发送的目标格式的文件差异信息,并根据所述文件差异信息对原始文件进行文件同步,其中,所述目标格式的文件差异信息是所述主同步设备确定所述验证结果为相同时,根据原始文件和修改后的最新文件生成文件差异信息后,进行格式转换获得的;所述目标格式的文件差异信息是所述主同步设备按照预设划分方式,将所述原始文件划分为多个原始数据块,并记录各原始数据块的编号,分别将各相同编号的原始数据块与修改数据块,按照最小单元大小依次进行比对,根据比对结果生成数据块差异列表和文件同步列表获得的,其中,所述修改数据块是所述主同步设备将所述原始数据块进行修改后获得的,所述修改后的最新文件是所述主同步设备将所述修改数据块和未进行修改的原始数据块进行组合生成的,所述数据块差异列表中至少包括存在差异的原始数据块对应的最小单元位置和差异内容,每个存在差异的原始数据块对应一个数据块差异列表,所述文件同步列表中至少包括存在差异的原始数据块的编号、存在差异的原始数据块对应的数据块差异列表的编号、对应的修改数据块的哈希值;
接收所述主同步设备发送的目标格式的最新文件,并根据所述最新文件,对所述备同步设备中的原始文件进行同步,其中,所述目标格式的最新文件是所述主同步设备确定所述验证结果为不相同时,将修改后的最新文件进行格式转换获得的。
5.如权利要求4所述的方法,其特征在于,若所述文件差异信息至少包括数据块差异列表和文件同步列表;则接收所述主同步设备发送的目标格式的文件差异信息,并根据所述文件差异信息对原始文件进行文件同步,具体包括:
根据所述文件同步列表中存在差异的原始数据块的编号,确定所述备同步设备中原始文件中对应的存在差异的原始数据块,其中,所述主同步设备与所述备同步设备中相应的原始文件分别按照预设划分方式划分为多个原始数据块,所述主同步设备中最新文件是修改数据块和未进行修改的原始数据块进行组合生成的,所述修改数据块是将所述原始数据块进行修改后获得的,所述文件同步列表中至少包括存在差异的原始数据块的编号、存在差异的原始数据块对应的数据块差异列表的编号、对应的修改数据块的哈希值;
根据所述文件同步列表中存在差异的原始数据块对应的数据块差异列表的编号、所述数据块差异列表,分别将所述备同步设备中原始文件中对应的存在差异的原始数据块进行修改,生成各修改数据块,其中,所述数据块差异列表中至少包括存在差异的原始数据块对应的最小单元位置和差异内容,每个存在差异的原始数据块对应一个数据块差异列表;
将所述备同步设备中原始文件中未修改的原始数据块和生成的各修改数据块,进行组合,并将组合生成的文件代替原始文件以实现文件同步。
6.一种文件同步装置,其特征在于,应用于主同步设备,包括:
确定模块,用于确定与备同步设备中相应的待同步前的原始文件的数据内容是否相同,其中,所述主同步设备和所述备同步设备中原始文件的格式不同;
第一处理模块,用于若确定相同,则根据原始文件和修改后的最新文件,生成文件差异信息,并将所述文件差异信息进行格式转换,转换为备同步设备能够识别的目标格式,以使所述备同步设备根据目标格式的文件差异信息,对所述备同步设备中的原始文件进行文件同步,其中,根据原始文件和修改后的最新文件,生成文件差异信息时,第一处理模块具体用于:按照预设划分方式,将所述原始文件划分为多个原始数据块,并记录各原始数据块的编号;分别将各相同编号的原始数据块与修改数据块,按照最小单元大小依次进行比对,其中,所述修改数据块是将所述原始数据块进行修改后获得的,所述修改后的最新文件是所述修改数据块和未进行修改的原始数据块进行组合生成的;根据比对结果生成数据块差异列表和文件同步列表,其中,所述数据块差异列表中至少包括存在差异的原始数据块对应的最小单元位置和差异内容,每个存在差异的原始数据块对应一个数据块差异列表,所述文件同步列表中至少包括存在差异的原始数据块的编号、存在差异的原始数据块对应的数据块差异列表的编号、对应的修改数据块的哈希值;
第二处理模块,用于若确定不相同,则将修改后的最新文件进行格式转换,转换为备同步设备能够识别的目标格式,以使所述备同步设备根据目标格式的最新文件,对所述备同步设备中的原始文件进行文件同步。
7.一种文件同步装置,其特征在于,应用于备同步设备,包括:
第一处理模块,用于根据主同步设备发送的原始文件验证请求,确定与所述主同步设备中相应的待同步前的原始文件的数据内容是否相同,并向所述主同步设备返回验证结果;
第二处理模块,用于接收所述主同步设备发送的目标格式的文件差异信息,并根据所述文件差异信息对原始文件进行文件同步,其中,所述目标格式的文件差异信息是所述主同步设备确定所述验证结果为相同时,根据原始文件和修改后的最新文件生成文件差异信息后,进行格式转换获得的;所述目标格式的文件差异信息是所述主同步设备按照预设划分方式,将所述原始文件划分为多个原始数据块,并记录各原始数据块的编号,分别将各相同编号的原始数据块与修改数据块,按照最小单元大小依次进行比对,根据比对结果生成数据块差异列表和文件同步列表获得的,其中,所述修改数据块是所述主同步设备将所述原始数据块进行修改后获得的,所述修改后的最新文件是所述主同步设备将所述修改数据块和未进行修改的原始数据块进行组合生成的,所述数据块差异列表中至少包括存在差异的原始数据块对应的最小单元位置和差异内容,每个存在差异的原始数据块对应一个数据块差异列表,所述文件同步列表中至少包括存在差异的原始数据块的编号、存在差异的原始数据块对应的数据块差异列表的编号、对应的修改数据块的哈希值;
第三处理模块,用于接收所述主同步设备发送的目标格式的最新文件,并根据所述最新文件,对所述备同步设备中的原始文件进行同步,其中,所述目标格式的最新文件是所述主同步设备确定所述验证结果为不相同时,将修改后的最新文件进行格式转换获得的。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-3或4-5任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1-3或4-5任一项所述方法的步骤。
技术总结