本发明涉及文件同步方法,更具体地说是指基于序号的文件同步方法、装置、计算机设备及存储介质。
背景技术:
1、文件同步是指将文件从一个地方复制到另一个地方的过程,以确保两个位置的文件保持一致。文件同步技术在多种场景下存在应用价值。例如备份和恢复,创建文件的备份副本,以防止数据丢失;跨平台同步,在不同的操作系统上使用不同的设备平台之间同步文件。
2、现有的文件同步方法在同步多个文件的顺序有三种方法,第一种是按照需要同步文件的文件名排序;第二种是按照需要同步的文件大小排序;第三种是使用随机顺序。但是现有的方法在同步多个文件没有全部完成的情况下是无法做到异常时快速恢复的。
3、因此,有必要设计一种新的方法,实现能够快速同步变化的文件,减少大量小文件的同步时间。
技术实现思路
1、本发明的目的在于克服现有技术的缺陷,提供基于序号的文件同步方法、装置、计算机设备及存储介质。
2、为实现上述目的,本发明采用以下技术方案:基于序号的文件同步方法,其特征在于,包括:
3、制作待同步文件列表;
4、对待同步文件列表内的文件进行编号,并确定序号;
5、发送序号至接收端,以由接收端根据所述序号生成序号区间请求;
6、接收所述接收端发送的序号区间请求;
7、根据所述序号区间请求返回对应的文件名以及文件大小组成的列表至接收端,以使得所述接收端根据文件名以及文件大小组成的列表生成文件块请求;
8、接收所述文件块请求;
9、根据所述文件块请求合并对应的文件块,构成字节信息列表,并将字节信息列表发送至接收端,以使得接收端根据合并的结果更新文件。
10、其进一步技术方案为:所述根据所述文件块请求合并对应的文件块,并将合并的结果发送至接收端,以使得接收端根据合并的结果更新文件之后,还包括:
11、当操作系统文件发生变化时,添加发生变化的操作系统文件至待同步文件列表,并执行所述对待同步文件列表内的文件进行编号,并确定序号。
12、其进一步技术方案为:所述对待同步文件列表内的文件进行编号,并确定序号,包括:
13、判断操作系统是否存在最大序号;
14、若操作系统不存在最大序号,则设置当前序号为零;
15、对待同步文件列表中按照当前序号为起始点以递增的方式进行编号,并将序号确定为当前最大的编号;
16、若操作系统存在最大序号,则设置当前序号为最大序号,并执行所述对待同步文件列表中按照当前序号为起始点以递增的方式进行编号,并将序号确定为当前最大的编号。
17、其进一步技术方案为:所述发送序号至接收端,以由接收端根据所述序号生成序号区间请求,包括:
18、发送序号至接收端,以使得接收端获取本端最大序号,计算序号与本端最大序号的差值,当差值大于零,按照本端最大序号、本端最大序号加上一个批次文件个数所构成的区间生成请求获取所述区间内的文件列表的序号区间请求。
19、其进一步技术方案为:所述根据所述序号区间请求返回对应的文件名以及文件大小组成的列表至接收端,以使得所述接收端根据文件名以及文件大小组成的列表生成文件块请求,包括:
20、根据所述序号区间请求从所述待同步文件列表中查找对应的文件名以及文件大小;
21、将所述文件名以及文件大小组成列表,并发送所述文件名以及文件大小组成的列表至接收端,以使得所述接收端将所述文件名以及文件大小组成的列表放入待同步列表,根据文件大小确定要请求的文件列表,以生成文件块请求;
22、具体地,当文件未同步的大小小于设定值时,要请求的文件列表为多个文件名和对应的块区间的组合列表;当文件未同步的大小不小于设定值时,要请求的文件列表为当前取出的文件名、块区间为当前文件未同步位置至当前文件未同步位置加上设定值的范围的组合列表。
23、其进一步技术方案为:所述根据所述文件块请求合并对应的文件块,构成字节信息列表,并将字节信息列表发送至接收端,以使得接收端根据合并的结果更新文件,包括:
24、根据所述文件块请求读取所述待同步列表中的文件块,并存储于内存缓存中;
25、从所述内存缓存中读取对应的文件块以及对应的块区间,构成字节信息列表,并发送字节信息列表至接收端,以使得接收端根据接收的文件块以及对应的块区间更新文件。
26、其进一步技术方案为:所述从所述内存缓存中读取对应的文件块以及对应的块区间,构成字节信息列表,并发送字节信息列表至接收端,以使得接收端根据接收的文件块以及对应的块区间更新文件,包括:
27、从所述内存缓存中读取对应的文件块以及对应的块区间至接收端,以使得接收端依次处理字节信息列表,按块区间将文件块写到磁盘上,当字节信息列表还有文件块未写,则更新当前文件未同步位置到已写的位置,并执行所述根据文件大小确定要请求的文件列表,以生成文件块请求;当字节信息列表中所有块字节已经全部写完,则从待同步列表中移除这个文件,本端最大序号加一。
28、本发明还提供了基于序号的文件同步装置,包括:
29、制作单元,用于制作待同步文件列表;
30、编号单元,用于对待同步文件列表内的文件进行编号,并确定序号;
31、序号发送单元,用于发送序号至接收端,以由接收端根据所述序号生成序号区间请求;
32、第一接收单元,用于接收所述接收端发送的序号区间请求;
33、返回单元,用于根据所述序号区间请求返回对应的文件名以及文件大小组成的列表至接收端,以使得所述接收端根据文件名以及文件大小组成的列表生成文件块请求;
34、第二接收单元,用于接收所述文件块请求;
35、合并处理单元,用于根据所述文件块请求合并对应的文件块,构成字节信息列表,并将字节信息列表发送至接收端,以使得接收端根据合并的结果更新文件。
36、本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
37、本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
38、本发明与现有技术相比的有益效果是:本发明通过设置需要同步文件的编号,并确定序号,优先同步序号与接收端序号差异的文件,使同步异常时也能够达到两端快速恢复同步;采用文件块合并的方式,达到多文件合并传输,优化海量小文件同步速度,多个小文件合并成一次请求传输,减少通信次数,减少了海量小文件的同步时间,实现能够快速同步变化的文件,减少大量小文件的同步时间。
39、下面结合附图和具体实施例对本发明作进一步描述。
1.基于序号的文件同步方法,其特征在于,包括:
2.根据权利要求1所述的基于序号的文件同步方法,其特征在于,所述根据所述文件块请求合并对应的文件块,并将合并的结果发送至接收端,以使得接收端根据合并的结果更新文件之后,还包括:
3.根据权利要求1所述的基于序号的文件同步方法,其特征在于,所述对待同步文件列表内的文件进行编号,并确定序号,包括:
4.根据权利要求1所述的基于序号的文件同步方法,其特征在于,所述发送序号至接收端,以由接收端根据所述序号生成序号区间请求,包括:
5.根据权利要求1所述的基于序号的文件同步方法,其特征在于,所述根据所述序号区间请求返回对应的文件名以及文件大小组成的列表至接收端,以使得所述接收端根据文件名以及文件大小组成的列表生成文件块请求,包括:
6.根据权利要求5所述的基于序号的文件同步方法,其特征在于,所述根据所述文件块请求合并对应的文件块,构成字节信息列表,并将字节信息列表发送至接收端,以使得接收端根据合并的结果更新文件,包括:
7.根据权利要求6所述的基于序号的文件同步方法,其特征在于,所述从所述内存缓存中读取对应的文件块以及对应的块区间,构成字节信息列表,并发送字节信息列表至接收端,以使得接收端根据接收的文件块以及对应的块区间更新文件,包括:
8.基于序号的文件同步装置,其特征在于,包括:
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的方法。