CN109739810B - 文件同步方法、服务器、客户端及具有存储功能的装置 - Google Patents
文件同步方法、服务器、客户端及具有存储功能的装置 Download PDFInfo
- Publication number
- CN109739810B CN109739810B CN201811497717.6A CN201811497717A CN109739810B CN 109739810 B CN109739810 B CN 109739810B CN 201811497717 A CN201811497717 A CN 201811497717A CN 109739810 B CN109739810 B CN 109739810B
- Authority
- CN
- China
- Prior art keywords
- file
- synchronized
- hash value
- server
- synchronous
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种文件同步方法、服务器、客户端及具有存储功能的装置,该文件同步方法包括:服务器获取到客户端发送的文件同步请求指令,其中,文件同步请求指令包括客户端中待同步文件的参数信息,参数信息包括待同步文件的目标路径信息、文件大小、待同步文件的部分文件的哈希值以及待同步文件的整体文件的哈希值中的至少一种;根据服务器中同步文件的文件大小或同步文件的最后修改时间或同步文件的部分文件的哈希值或同步文件的整体文件的哈希值中的至少一种与待同步文件的参数信息确定是否将待同步文件同步到服务器。本申请通过多个参数的比较判断来确定是否进行文件同步,降低了服务器的负荷,提高了文件同步的效率。
Description
技术领域
本申请涉及智能通讯技术领域,尤其涉及一种文件同步方法、服务器、客户端及具有存储功能的装置。
背景技术
随着信息时代的到来,网络应用的的高速发展,网络信息数据量越来越大,海量存储系统中所保存的数据量也越来越大,越来越多的存储系统中保存的数据量都已经达到了PB级。数据规模的快速增长无疑给文件同步、数据备份带来了很多问题。在海量数据的环境下,现有的文件同步方法的性能已经无法满足业务需求。
在现有技术中,在判断文件是否需要从客户端同步到服务端时,采用的方法是:客户端计算客户端文件全文的哈希值,服务端计算服务器端文件哈希值,并比较两者。如果两端文件哈希值一致,则不进行同步;如果两端文件哈希值不一致,则进行同步。当需要同步的文件很多,文件大小很大以及一个服务端服务多个客户端时,服务端需要同时执行非常多的哈希值计算任务,则此时会造成服务端负荷高,同步效率低下的问题。
也就是说,现有技术中服务器计算任务过重,导致了服务器负荷高,同步效率低下。
发明内容
本申请提供一种文件同步方法、服务器、客户端及具有存储功能的装置,能够减轻服务器负荷、提高文件同步效率。
为解决上述技术问题,本申请采用的第一个技术方案是:提供一种文件同步方法,该文件同步方法包括:服务器获取到客户端发送的文件同步请求指令,其中,文件同步请求指令包括客户端中待同步文件的参数信息,参数信息包括待同步文件的目标路径信息、文件大小、待同步文件的部分文件的哈希值以及待同步文件的整体文件的哈希值中的至少一种;根据服务器中同步文件的文件大小或同步文件的最后修改时间或同步文件的部分文件的哈希值或同步文件的整体文件的哈希值中的至少一种与待同步文件的参数信息确定是否将待同步文件同步到服务器。
为解决上述技术问题,本申请采用的第二个技术方案是:提供一种文件同步方法,文件同步方法包括:客户端获取客户端中待同步文件的参数信息,参数信息包括目标路径信息、文件大小、待同步文件的部分文件的哈希值以及待同步文件的整体文件的哈希值中的一种或多种;客户端向服务器发送文件同步请求指令,其中,文件同步请求指令包括客户端中待同步文件的参数信息,以使服务器根据服务器中同步文件的文件大小或同步文件的最后修改时间或同步文件的部分文件的哈希值或同步文件的整体文件的哈希值中的至少一种与待同步文件的参数信息确定是否将待同步文件同步到服务器。
为解决上述技术问题,本申请采用的第三个技术方案是:提供一种服务器,服务器包括处理器以及分别与处理器耦接的存储器和通信电路,通信电路用于传输信息,存储器用于存储处理器执行的计算机程序以及在执行计算机程序时所产生的中间数据;处理器执行计算机程序时,实现第一个技术方案中任一项的文件同步方法。
为解决上述技术问题,本申请采用的第四个技术方案是:提供一种客户端,客户端包括处理器以及分别与处理器耦接的存储器和通信电路,通信电路用于传输信息,存储器用于存储处理器执行的计算机程序以及在执行计算机程序时所产生的中间数据;处理器执行计算机程序时,实现:客户端获取客户端中待同步文件的参数信息,参数信息包括目标路径信息、文件大小、待同步文件的部分文件的哈希值以及待同步文件的整体文件的哈希值中的一种或多种;客户端向服务器发送文件同步请求指令,其中,文件同步请求指令包括客户端中待同步文件的参数信息,以使服务器根据服务器中同步文件的文件大小或同步文件的最后修改时间或同步文件的部分文件的哈希值或同步文件的整体文件的哈希值中的至少一种与待同步文件的参数信息确定是否将待同步文件同步到服务器。
为解决上述技术问题,本申请采用的第五个技术方案是:提供一种具有存储功能的装置,具有存储功能的装置存储有程序数据,程序数据能够被执行以实现以上任一项的文件同步方法。
本申请的有益效果是:区别于现有技术,本申请的文件同步方法中,服务器获取到客户端发送的文件同步请求指令,其中,文件同步请求指令包括客户端中待同步文件的参数信息,参数信息包括待同步文件的目标路径信息、文件大小、待同步文件的部分文件的哈希值以及待同步文件的整体文件的哈希值中的至少一种;根据服务器中同步文件的文件大小或同步文件的最后修改时间或同步文件的部分文件的哈希值或同步文件的整体文件的哈希值中的至少一种与待同步文件的参数信息确定是否将待同步文件同步到服务器。本申请通过多个参数的比较判断来确定是否进行文件同步,避免了服务器的重复计算,降低了服务器的负荷,提高了文件同步的效率。
附图说明
图1是本申请文件同步系统一实施方式的结构示意图;
图2是本申请文件同步方法一实施方式的流程示意图;
图3是图2文件同步方法一具体实施方式的流程示意图;
图4是本申请文件同步方法另一实施方式的流程示意图;
图5是本申请服务器一实施方式的结构示意图;
图6是本申请客户端一实施方式的结构示意图;
图7是本申请具有存储功能的装置一实施方式的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,均属于本申请保护的范围。
请参见图1,图1是本申请文件同步系统一实施方式的结构示意图。
如图1所示,在本实施方式中,文件同步系统包括服务器10和与服务器10连接的至少一个客户端11。服务器10通过网络以无线连接或者有线连接的方式与客户端11连接,从而使得服务器10和客户端11可以传输信息。客户端11可以是智能手机、智能手表、平板电脑、车载电脑以及笔记本电脑等设备,本申请对此不作限定。
客户端11用于存储待同步文件,服务器10用于存储同步文件。当用户更改了客户端11中的待同步文件时,通过客户端11和服务器10之间的信息交互,根据客户端11中的待同步文件对服务器10中的同步文件进行处理,从而使得服务器10中的同步文件和客户端11中的待同步文件保持相同。
为了避免不必要的同步计算工作,减轻服务器负荷、提高文件同步效率,本申请提出如下文件同步方法,参阅图2,图2是本申请文件同步方法一实施方式的流程示意图。如图2所示,本实施方式中的文件同步方法包括以下步骤:
步骤201:服务器获取到客户端发送的文件同步请求指令,其中,文件同步请求指令包括客户端中待同步文件的参数信息,参数信息包括待同步文件的目标路径信息、文件大小、待同步文件的部分文件的哈希值以及待同步文件的整体文件的哈希值中的至少一种。
本实施方式中,文件同步请求指令包括客户端中待同步文件的参数信息,参数信息包括待同步文件的目标路径信息、文件大小、待同步文件的部分文件的哈希值以及待同步文件的整体文件的哈希值中的至少一种。服务器获取到文件同步请求指令,将待同步文件的目标路径信息、文件大小、部分文件的哈希值以及全文的哈希值存储,以备后续步骤使用。在其他实施方式中,文件同步请求指令可以只有目标路径信息,在后续步骤需要用到相应的参数时,再从客户端获取。例如,服务器首先获取待同步文件的目标路径信息,在进行到后续步骤时需要使用待同步文件的文件大小再获取待同步文件的大小,如果没有后续步骤需要使用待同步文件的文件大小,则可以省去获取待同步文件的文件的步骤,可以减小客户端的计算量,也可以减小客户端与服务器之间的信息交互量,减轻服务器的荷载。
本实施方式中,当客户端中的待同步文件被修改后,客户端向服务器发送文件同步请求指令,以使客户端与服务器之间建立连接,从而能够进行文件同步。其中,文件同步请求指令包括客户端中待同步文件的目标路径信息,根据目标路径信息可以将客户端中待同步文件同步至服务器的指定位置。在另一个具体的实施方式中,客户端按预设频率向服务器发送文件同步请求指令,预设频率可以是2分钟一次、3分钟一次、4分钟一次等,本申请对此不作限定。在又一个具体的实施方式中,客户端也可以不定时向服务器发送文件同步请求指令。在其他实施方式中,客户端也可以是在接收文件同步的指令后,再向服务器发送文件同步请求指令,可以防止客户端自动频繁发送文件同步请求指令导致服务器负荷过大。
步骤202:根据服务器中同步文件的文件大小或同步文件的最后修改时间或同步文件的部分文件的哈希值或同步文件的整体文件的哈希值中的至少一种与待同步文件的参数信息确定是否将待同步文件同步到服务器。
哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。哈希值是根据文件的内容的数据通过逻辑运算得到的数值,不同的文件(即使是相同的文件名)得到的哈希值也是不同的,因此,哈希值可以用来判断两个文件是否相同。
本实施方式中,服务器中同步文件的文件大小或同步文件的最后修改时间或同步文件的部分文件的哈希值或同步文件的整体文件的哈希值中的至少一种与待同步文件的参数信息确定是否将待同步文件同步到服务器。通过多个参数的比较判断来确定是否进行文件同步,避免了服务器的重复计算,降低了服务器的负荷,提高了文件同步的效率。
在一个具体的实施方式中,判断基于目标路径信息是否获取到同步文件;如果未获取到同步文件,则将待同步文件同步到服务器;如果获取到同步文件,则根据服务器中同步文件的文件大小或同步文件的最后修改时间或同步文件的部分文件的哈希值或同步文件的整体文件的哈希值中的至少一种与待同步文件的参数信息确定是否将待同步文件同步到服务器。
在一个具体的实施方式中,判断基于目标路径信息是否获取到同步文件的步骤具体包括:判断服务器中是否存在与目标路径信息对应的目标路径信息记录值;如果不存在,将待同步文件同步到服务器;如果存在,则判断基于目标路径信息是否获取到同步文件。
进一步的,如果获取到同步文件,判断待同步文件的文件大小与同步文件的实测文件大小是否相同;如果不相同,将待同步文件同步到服务器;如果相同,则根据服务器中同步文件的文件大小或同步文件的最后修改时间或同步文件的部分文件的哈希值或同步文件的整体文件的哈希值中的至少一种与待同步文件的参数信息确定是否将待同步文件同步到服务器。
在一个具体的实施方式中,如果待同步文件的文件大小与同步文件的实测文件大小相同;判断同步文件的实测文件大小与文件大小记录值是否相同;若同步文件的实测文件大小与文件大小记录值不同,则根据同步文件的部分文件的哈希值或同步文件的整体文件的哈希值中的至少一种与待同步文件的参数信息确定是否将待同步文件同步到服务器;若同步文件的实测文件大小与文件大小记录值相同,则根据同步文件的最后修改时间或同步文件的部分文件的哈希值或同步文件的整体文件的哈希值中的至少一种与待同步文件的参数信息确定是否将待同步文件同步到服务器。
在一个具体的实施方式中,根据同步文件的最后修改时间或同步文件的部分文件的哈希值或同步文件的整体文件的哈希值中的至少一种与待同步文件的参数信息确定是否将待同步文件同步到服务器的步骤具体包括:判断同步文件的最近修改的记录时间与最近修改的实际时间是否相同;若同步文件的最近修改的记录时间与最近修改的实际时间不同,则根据同步文件的部分文件的实测哈希值或同步文件的整体文件的实测哈希值中的至少一种与待同步文件的参数信息确定是否将待同步文件同步到服务器;若同步文件的最近修改的记录时间与最近修改的实际时间相同,则根据待同步文件的参数信息与同步文件的整体文件的记录哈希值确定是否将待同步文件同步到服务器。
在一个具体的实施方式中,根据同步文件的部分文件的实测哈希值或同步文件的整体文件的实测哈希值中的至少一种与待同步文件的参数信息确定是否将待同步文件同步到服务器的步骤具体包括:判断同步文件是否存在至少部分文件的实测哈希值与待同步文件的至少部分文件的哈希值相同;如果不存在,将待同步文件同步到服务器;如果存在,则根据同步文件的整体文件的实测哈希值与待同步文件的参数信息确定是否将待同步文件同步到服务器。
在一个具体的实施方式中,根据同步文件的整体文件的实测哈希值与待同步文件的参数信息确定是否将待同步文件同步到服务器的步骤具体包括:判断同步文件的整体文件的实测哈希值与待同步文件的整体文件的哈希值是否相同;如果不同,则将待同步文件同步到服务器。
在一个具体的实施方式中,根据待同步文件的参数信息与同步文件的整体文件的记录哈希值确定是否将待同步文件同步到服务器的步骤具体包括:判断待同步文件的整体文件的哈希值与同步文件的整体文件的记录哈希值是否相同;若不同,则将待同步文件同步到服务器。
区别于现有技术,本申请的文件同步方法中,服务器获取到客户端发送的文件同步请求指令,其中,文件同步请求指令包括客户端中待同步文件的参数信息,参数信息包括待同步文件的目标路径信息、文件大小、待同步文件的部分文件的哈希值以及待同步文件的整体文件的哈希值中的至少一种;根据服务器中同步文件的文件大小或同步文件的最后修改时间或同步文件的部分文件的哈希值或同步文件的整体文件的哈希值中的至少一种与待同步文件的参数信息确定是否将待同步文件同步到服务器。本申请通过多个参数的比较判断来确定是否进行文件同步,避免了服务器的重复计算,降低了服务器的负荷,提高了文件同步的效率件的哈希值来判断是否进行同步,减小了服务器比对待同步文件和同步文件时的哈希值计算量,降低了服务器的负荷,提高了文件同步的效率。
请参阅图3,图3是图2文件同步方法一具体实施方式的流程示意图。
如图3所示,本实施方式中文件同步方法的步骤包括:
步骤301:服务器获取到客户端发送的文件同步请求指令。
本实施方式中,当客户端中的待同步文件被修改后,客户端向服务器发送文件同步请求指令,以使客户端与服务器之间建立连接,从而能够进行文件同步。其中,文件同步请求指令包括客户端中待同步文件的目标路径信息,根据目标路径信息可以将客户端中待同步文件同步至服务器的指定位置。在另一个具体的实施方式中,客户端按预设频率向服务器发送文件同步请求指令,预设频率可以是2分钟一次、3分钟一次、4分钟一次等,本申请对此不作限定。在又一个具体的实施方式中,客户端也可以不定时向服务器发送文件同步请求指令。在其他实施方式中,客户端也可以是在接收文件同步的指令后,再向服务器发送发送文件同步请求指令,可以防止客户端自动频繁发送文件同步请求指令导致服务器负荷过大。
在一个具体的实施方式中,文件同步请求指令包括所述客户端中待同步文件的参数信息。参数信息包括待同步文件的目标路径信息、文件大小、部分文件的哈希值以及全文的哈希值,服务器获取到文件同步请求指令,将待同步文件的目标路径信息、文件大小、部分文件的哈希值以及全文的哈希值存储,以备后续步骤使用。在其他实施方式中,文件同步请求指令可以只有目标路径信息,在后续步骤需要用到相应的参数时,再从客户端获取。例如,服务器首先获取待同步文件的目标路径信息,在进行到后续步骤时需要使用待同步文件的文件大小再获取待同步文件的大小,如果没有后续步骤需要使用待同步文件的文件大小,则可以省去获取待同步文件的文件的步骤,可以减小客户端的计算量,也可以减小客户端与服务器之间的信息交互量,减轻服务器的荷载。
在一个具体的实施方式中,在获取到待同步文件的文件大小之后,判断待同步文件的文件大小是否大于预设值,如果待同步文件的大小大于预设值,再执行步骤302;如果不大于预设值,则执行步骤310。该预设值根据具体情况设定即可。如果待同步文件的文件大小过小,则判断要不要将其同步消耗的时间可能会超过直接将其同步所消耗的时间,因此,直接进行文件同步反而能够节省时间。
步骤302:判断服务器中是否存在与目标路径信息对应的目标路径信息记录值。
本实施方式中,服务器读取服务器的存储器中的历史记录,历史记录包括上一次文件同步的待同步文件的目标路径信息记录值、文件大小记录值、最后修改的记录时间以及整体文件的哈希值记录值。待同步文件的文件大小记录值、最后修改的记录时间以及整体文件的哈希值记录值直接可以通过读取获得,比通过计算实测获得参数要节省较多时间。在其他实施方式中,也可以先获取待同步文件的目标路径信息记录值,在后续步骤需要时再获取待同步文件的文件大小记录值、最后修改的记录时间以及整体文件的哈希值记录值。
根据服务器读取结果判断服务器中是否存在与目标路径信息对应的目标路径信息记录值。如果服务器中存在与目标路径信息对应的目标路径信息记录值,则表明客户端与服务器进行过文件同步,服务器中可能存在可以利用的同步文件,则执行步骤303。如果服务器中不存在与目标路径信息对应的目标路径信息记录值,则表明客户端与服务器未进行过文件同步,服务器中不存在可以利用的同步文件,执行步骤310。通过判断服务器中是否存在与目标路径信息对应的目标路径信息记录值,可以避免在服务器中文件不存在的情况下直接去获取文件所浪费的时间。
步骤303:判断基于目标路径信息是否获取到同步文件。
本实施方式中,服务器根据目标路径信息通过系统接口检测本端是否存在同步文件,如果系统接口返回目标路径不存在或者同步文件不存在的指令,则判定未获取到同步文件,执行步骤310。如果系统接口返回同步文件存在的指令,则判定获取到同步文件,执行步骤304。合理利用已经存在的同步文件,避免直接进行同步造成服务器与客户端信息交互量较大,从而可以减轻服务器负荷。
步骤304:判断待同步文件的文件大小与同步文件的实测文件大小是否相同。
本实施方式中,服务器通过系统接口能够获取到同步文件,则获取同步文件的文件大小的实测值,即通过对同步文件进行计算,从而获取文件的小的实测值。判断待同步文件的文件大小与同步文件的实测文件大小是否相同,如果待同步文件的文件大小与同步文件的实测文件大小不同,则表明待同步文件和同步文件不同,执行步骤310。如果待同步文件的文件大小与同步文件的实测文件大小相同,则需要进一步确定是否进行文件同步,执行步骤305。
步骤305:判断同步文件的实测文件大小与文件大小记录值是否相同。
本实施方式中,服务器判断同步文件的实测文件大小与文件大小记录值是否相同,如果待同步文件的文件大小与同步文件的实测文件大小不同,表明服务器中存储的同步文件的文件大小记录值不准确,无法使用,需要进行计算实测,则执行步骤308。如果待同步文件的文件大小与同步文件的实测文件大小相同,表明服务器中的记录值可能能够使用,但需要根据同步文件的最后修改时间进一步确认,执行步骤306。
步骤306:判断同步文件的最近修改的记录时间与最近修改的实际时间是否相同。
本实施方式中,判断同步文件的最近修改的记录时间与最近修改的实际时间是否相同,如果同步文件的最近修改的记录时间与最近修改的实际时间相同,此时,同步文件的最近修改的记录时间和文件大小记录值均可以使用,则表明服务器中同步文件的记录值可以使用,读取同步文件的全文记录哈希值,执行步骤307。如果同步文件的最近修改的记录时间与最近修改的实际时间不相同,则表明服务器中同步文件的记录值不可以使用,需要进行计算实测,则执行步骤30。
需要说明的是,本实施方式中,步骤306和步骤305的顺序可以进行互换,或者两个步骤同时进行。只有当同步文件的最近修改的记录时间与最近修改的实际时间相同、同步文件的实测文件大小与文件大小记录值相同同时满足时,才表明服务器中的全文记录哈希值能够使用,无需重复进行计算,读取同步文件的全文记录哈希值,进行步骤307。而如果同步文件的最近修改的记录时间与最近修改的实际时间相同、同步文件的实测文件大小与文件大小记录值相同中有至少一个不满足,则表面服务器中记录值不可以用,需要进行计算,执行步骤308。
步骤307:判断待同步文件的整体文件的哈希值与同步文件的全文记录哈希值是否相同。
本实施方式中,在通过上述步骤确定服务器中记录值可用后,获取同步文件的全文记录哈希值,判断待同步文件的整体文件的哈希值与同步文件的全文记录哈希值是否相同。如果待同步文件的整体文件的哈希值与同步文件的全文记录哈希值相同,表明待同步文件和同步文件相同,无需进行同步。如果待同步文件的整体文件的哈希值与同步文件的全文记录哈希值不相同,表明待同步文件和同步文件不相同,执行步骤310。由于计算整体文件的哈希值相较于计算文件大小和最后修改时间需要更多的时间且占用更多的资源。本申请通过测试服务器中记录值是否可用,从而合理利用全文记录哈希值,避免了哈希值的重复计算,降低了服务器的负荷,提高了文件同步的效率。
步骤308:判断同步文件是否存在至少部分文件的实测哈希值与待同步文件的至少部分文件的哈希值相同。
在一个具体的实施方式中,选取待同步文件和同步文件中对应位置的部分文件进行哈希值的比较。例如,选取待同步文件中起始部分的预设长度的文件,则选取同步文件中起始部分同样长度的文件,计算两部分文件的哈希值,通过比较判断是否进行文件同步。其中,选取的文件的预设长度根据具体情况选用,只需满足哈希值计算的最小长度即可,本申请对此不作限定。当然,也可以获取文件末尾部分预设长度的文件、或者距离文件起始端预定距离处的预设长度的文件、或者距离文件末尾端预定距离的预设长度的文件,本申请对此不作限定。由于本申请仅仅根据部分文件的哈希值来判断是否进行同步,减小了服务器比对待同步文件和同步文件时的哈希值计算量,降低了服务器的负荷,提高了文件同步的效率。
本实施方式中,判断同步文件是否存在至少部分文件的实测哈希值与待同步文件的至少部分文件的哈希值相同。如果同步文件不存在至少部分文件的实测哈希值与待同步文件的至少部分文件的哈希值相同,则说明该待同步文件和同步文件不同,执行步骤310。如果同步文件存在至少部分文件的实测哈希值与待同步文件的至少部分文件的哈希值相同,则需要进一步通过整体文件的哈希值进行计算,执行步骤309。
步骤309:判断同步文件的全文实测哈希值与待同步文件的全文的哈希值是否相同。
本实施方式中,判断同步文件的全文实测哈希值与待同步文件的全文的哈希值是否相同,如果同步文件的全文实测哈希值与待同步文件的全文的哈希值相同,则表明待同步文件和同步文件相同,无需进行同步。如果同步文件的全文实测哈希值与待同步文件的全文的哈希值不相同,则表明待同步文件和同步文件不同,执行步骤310。
步骤310:将待同步文件同步到服务器。
在一个具体的实施方式中,采用rsync算法将待同步文件的服务器中不存在的文件内容同步到服务器。rsync算法,全称Remote Sync算法,是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他主机同步。本实施方式中是比较待同步文件和同步文件,获取待同步文件和同步文件之间的差异文件,并根据差异文件生成新的同步文件。
步骤311:更新待同步文件的历史记录。
本实施方式中,将待同步文件同步到服务器后,更新待同步文件的历史记录。待同步文件的历史记录包括待同步文件的目标路径信息记录值、文件大小记录值、最后修改的记录时间以及整体文件的哈希值记录值。具体的,服务器计算同步文件全文的哈希值,通过系统接口获取文件大小和文件最后修改时间,进而将同步文件全文的哈希值、文件大小、文件最后修改时间以及路径信息。由于同步后,待同步文件与同步文件参数相同,可以计算待同步文件或同步文件的参数均可,其中,同步文件的路径信息即为待同步文件的目标路径信息。通过存储待同步文件的历史记录以备客户端与服务器下一次进行文件同步时执行步骤302:判断服务器中是否存在与目标路径信息对应的目标路径信息记录值。服务器在获取到同步文件时,仅仅根据同步文件部分文件的哈希值来判断是否进行同步,减小了服务器比对待同步文件和同步文件时的哈希值计算量,降低了服务器的负荷,提高了文件同步的效率。
区别于现有技术,本实施方式的文件同步方法中,服务器获取到客户端发送的文件同步请求指令,其中,文件同步请求指令包括客户端中待同步文件的参数信息,参数信息包括待同步文件的目标路径信息、文件大小、待同步文件的部分文件的哈希值以及待同步文件的整体文件的哈希值中的至少一种;根据服务器中同步文件的文件大小或同步文件的最后修改时间或同步文件的部分文件的哈希值或同步文件的整体文件的哈希值中的至少一种与待同步文件的参数信息确定是否将待同步文件同步到服务器。本申请通过多个参数的比较判断来确定是否进行文件同步,避免了服务器的重复计算,降低了服务器的负荷,提高了文件同步的效率。
参阅图4,图4是本申请文件同步方法另一实施方式的流程示意图。
如图4所示,本实施方式的文件同步方法包括以下步骤:
步骤401:客户端获取客户端中待同步文件的参数信息,参数信息包括目标路径信息、文件大小、待同步文件的部分文件的哈希值以及待同步文件的整体文件的哈希值中的一种或多种。
本实施方式中,当客户端中的待同步文件被修改后,客户端获取待同步文件的参数信息。在另一个具体的实施方式中,客户端按预设频率获取待同步文件的参数信息,预设频率可以是2分钟一次、3分钟一次、4分钟一次等,本申请对此不作限定。在又一个具体的实施方式中,客户端也可以不定时获取待同步文件的参数信息。在其他实施方式中,客户端也可以是在接收文件同步的指令后,再获取待同步文件的参数信息,可以防止客户端自动频繁获取待同步文件的参数信息导致客户端负荷过大。
步骤402:客户端向服务器发送文件同步请求指令,其中,文件同步请求指令包括客户端中待同步文件的参数信息,参数信息包括待同步文件的目标路径信息、文件大小、待同步文件的部分文件的哈希值以及待同步文件的整体文件的哈希值中的至少一种,以使服务器根据服务器中同步文件的文件大小或同步文件的最后修改时间或同步文件的部分文件的哈希值或同步文件的整体文件的哈希值中的至少一种与待同步文件的参数信息确定是否将待同步文件同步到服务器。
本实施方式中,当客户端中的待同步文件被修改后,客户端向服务器发送文件同步请求指令,以使客户端与服务器之间建立连接,从而能够进行文件同步。其中,文件同步请求指令包括客户端中待同步文件的目标路径信息,根据目标路径信息可以将客户端中待同步文件同步至服务器的指定位置。在另一个具体的实施方式中,客户端按预设频率向服务器发送文件同步请求指令,预设频率可以是2分钟一次、3分钟一次、4分钟一次等,本申请对此不作限定。在又一个具体的实施方式中,客户端也可以不定时向服务器发送文件同步请求指令。在其他实施方式中,客户端也可以是在接收文件同步的指令后,再向服务器发送文件同步请求指令,可以防止客户端自动频繁发送文件同步请求指令导致服务器负荷过大
本实施方式,客户端向服务器发送文件同步请求指令,其中,文件同步请求指令包括客户端中待同步文件的参数信息,参数信息包括待同步文件的目标路径信息、文件大小、待同步文件的部分文件的哈希值以及待同步文件的整体文件的哈希值中的至少一种,以使服务器根据服务器中同步文件的文件大小或同步文件的最后修改时间或同步文件的部分文件的哈希值或同步文件的整体文件的哈希值中的至少一种与待同步文件的参数信息确定是否将待同步文件同步到服务器。
进一步的,客户端向服务器发送文件同步请求指令,以使服务器实现图2或图3的文件同步方法。
区别于现有技术,本申请通过多个参数的比较判断来确定是否进行文件同步,避免了服务器的重复计算,降低了服务器的负荷,提高了文件同步的效率。
参阅图5,图5是本申请服务器一实施方式的结构示意图。
如图5所示,本实施方式中,服务器50包括处理器52以及分别与处理器52耦接的存储器53和通信电路51,通信电路51用于传输信息,存储器53用于存储处理器52执行的计算机程序以及在执行计算机程序时所产生的中间数据;处理器52执行计算机程序时,实现图2或图3中及其文字描述的文件同步方法。
区别于现有技术,本申请通过多个参数的比较判断来确定是否进行文件同步,避免了服务器的重复计算,降低了服务器的负荷,提高了文件同步的效率。
参阅图6,图6是本申请客户端一实施方式的结构示意图,该客户端对应图1中的客户端11。
如图6所示,本实施方式中,客户端60包括处理器62以及分别与处理器62耦接的存储器63和通信电路61,通信电路61用于传输信息,存储器63用于存储处理器62执行的计算机程序以及在执行计算机程序时所产生的中间数据;处理器62执行计算机程序时,实现图4中的文件同步方法。
区别于现有技术,本申请通过多个参数的比较判断来确定是否进行文件同步,避免了服务器的重复计算,降低了服务器的负荷,提高了文件同步的效率。
请参阅图7,图7是本申请具有存储功能的装置一实施方式的结构示意图。具有存储功能的装置70中存储有至少一个程序或指令71,程序或指令71用于实现上述任一的方法。在一个实施例中,具有存储功能的装置包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
区别于现有技术,本申请通过多个参数的比较判断来确定是否进行文件同步,避免了服务器的重复计算,降低了服务器的负荷,提高了文件同步的效率。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。
以上仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (11)
1.一种文件同步方法,其特征在于,包括:
服务器获取到客户端发送的文件同步请求指令,其中,所述文件同步请求指令包括所述客户端中待同步文件的参数信息,所述参数信息包括所述待同步文件的目标路径信息、文件大小、所述待同步文件的部分文件的哈希值以及所述待同步文件的整体文件的哈希值中的至少一种;
根据所述服务器中同步文件的文件大小或所述同步文件的最后修改时间或所述同步文件的部分文件的哈希值或所述同步文件的整体文件的哈希值中的至少一种与所述待同步文件的参数信息确定是否将所述待同步文件同步到所述服务器;具体包括:
判断基于所述目标路径信息是否获取到所述同步文件;
如果未获取到所述同步文件,则将所述待同步文件同步到所述服务器;如果获取到所述同步文件,则根据所述服务器中同步文件的文件大小或所述同步文件的最后修改时间或所述同步文件的部分文件的哈希值或所述同步文件的整体文件的哈希值中的至少一种与所述待同步文件的参数信息确定是否将所述待同步文件同步到所述服务器;具体包括:
判断所述待同步文件的文件大小与所述同步文件的实测文件大小是否相同;
如果不相同,将所述待同步文件同步到所述服务器;如果相同,则根据所述服务器中同步文件的文件大小或所述同步文件的最后修改时间或所述同步文件的部分文件的哈希值或所述同步文件的整体文件的哈希值中的至少一种与所述待同步文件的参数信息确定是否将所述待同步文件同步到所述服务器;
其中,所述待同步文件的文件大小与所述同步文件的实测文件大小相同;所述根据所述服务器中同步文件的文件大小或所述同步文件的最后修改时间或所述同步文件的部分文件的哈希值或所述同步文件的整体文件的哈希值中的至少一种与所述待同步文件的参数信息确定是否将所述待同步文件同步到所述服务器的步骤具体包括:
判断所述同步文件的实测文件大小与文件大小记录值是否相同;
若所述同步文件的实测文件大小与文件大小记录值不同,则根据所述同步文件的部分文件的哈希值或所述同步文件的整体文件的哈希值中的至少一种与所述待同步文件的参数信息确定是否将所述待同步文件同步到所述服务器;若所述同步文件的实测文件大小与文件大小记录值相同,则根据所述同步文件的最后修改时间或所述同步文件的部分文件的哈希值或所述同步文件的整体文件的哈希值中的至少一种与所述待同步文件的参数信息确定是否将所述待同步文件同步到所述服务器;
其中,所述根据所述同步文件的最后修改时间或所述同步文件的部分文件的哈希值或所述同步文件的整体文件的哈希值中的至少一种与所述待同步文件的参数信息确定是否将所述待同步文件同步到所述服务器的步骤具体包括:
判断所述同步文件的最近修改的记录时间与最近修改的实际时间是否相同;
若所述同步文件的最近修改的记录时间与最近修改的实际时间不同,则根据所述同步文件的部分文件的实测哈希值或所述同步文件的整体文件的实测哈希值中的至少一种与所述待同步文件的参数信息确定是否将所述待同步文件同步到所述服务器;若所述同步文件的最近修改的记录时间与最近修改的实际时间相同,则根据所述待同步文件的参数信息与所述同步文件的整体文件的记录哈希值确定是否将所述待同步文件同步到所述服务器。
2.根据权利要求1所述的文件同步方法,其特征在于,所述判断基于所述目标路径信息是否获取到所述同步文件的步骤具体包括:
判断所述服务器中是否存在与所述目标路径信息对应的目标路径信息记录值;
如果不存在,将所述待同步文件同步到所述服务器;如果存在,则判断基于所述目标路径信息是否获取到所述同步文件。
3.根据权利要求1所述的文件同步方法,其特征在于,根据所述同步文件的部分文件的实测哈希值或所述同步文件的整体文件的实测哈希值中的至少一种与所述待同步文件的参数信息确定是否将所述待同步文件同步到所述服务器的步骤具体包括:
判断所述同步文件是否存在至少部分文件的实测哈希值与所述待同步文件的至少部分文件的哈希值相同;
如果不存在,将所述待同步文件同步到所述服务器;如果存在,则根据所述同步文件的整体文件的实测哈希值与所述待同步文件的参数信息确定是否将所述待同步文件同步到所述服务器。
4.根据权利要求3所述的文件同步方法,其特征在于,所述根据所述同步文件的整体文件的实测哈希值与所述待同步文件的参数信息确定是否将所述待同步文件同步到所述服务器的步骤具体包括:
判断所述同步文件的整体文件的实测哈希值与所述待同步文件的整体文件的哈希值是否相同;
如果不同,则将所述待同步文件同步到所述服务器。
5.根据权利要求1所述的文件同步方法,其特征在于,所述根据所述待同步文件的参数信息与所述同步文件的整体文件的记录哈希值确定是否将所述待同步文件同步到所述服务器的步骤具体包括:
判断所述待同步文件的整体文件的哈希值与所述同步文件的整体文件的记录哈希值是否相同;
若不同,则将所述待同步文件同步到所述服务器。
6.根据权利要求2、3、4、5任一项所述的文件同步方法,其特征在于,所述将所述待同步文件同步到所述服务器的步骤具体包括:
采用rsync算法将所述待同步文件的所述服务器中不存在的文件内容同步到所述服务器。
7.根据权利要求6所述的文件同步方法,其特征在于,在所述将所述待同步文件同步到所述服务器的步骤之后还包括:
更新所述待同步文件的历史记录。
8.一种文件同步方法,其特征在于,所述同步方法包括:
客户端获取所述客户端中待同步文件的参数信息,所述参数信息包括目标路径信息、文件大小、所述待同步文件的部分文件的哈希值以及所述待同步文件的整体文件的哈希值中的一种或多种;
所述客户端向服务器发送文件同步请求指令,其中,所述文件同步请求指令包括所述客户端中待同步文件的所述参数信息,以使所述服务器根据所述服务器中同步文件的文件大小或所述同步文件的最后修改时间或所述同步文件的部分文件的哈希值或所述同步文件的整体文件的哈希值中的至少一种与所述待同步文件的参数信息确定是否将所述待同步文件同步到所述服务器;具体包括:
判断基于所述目标路径信息是否获取到所述同步文件;
如果未获取到所述同步文件,则将所述待同步文件同步到所述服务器;如果获取到所述同步文件,则根据所述服务器中同步文件的文件大小或所述同步文件的最后修改时间或所述同步文件的部分文件的哈希值或所述同步文件的整体文件的哈希值中的至少一种与所述待同步文件的参数信息确定是否将所述待同步文件同步到所述服务器;具体包括:
判断所述待同步文件的文件大小与所述同步文件的实测文件大小是否相同;
如果不相同,将所述待同步文件同步到所述服务器;如果相同,则根据所述服务器中同步文件的文件大小或所述同步文件的最后修改时间或所述同步文件的部分文件的哈希值或所述同步文件的整体文件的哈希值中的至少一种与所述待同步文件的参数信息确定是否将所述待同步文件同步到所述服务器;
其中,所述待同步文件的文件大小与所述同步文件的实测文件大小相同;所述根据所述服务器中同步文件的文件大小或所述同步文件的最后修改时间或所述同步文件的部分文件的哈希值或所述同步文件的整体文件的哈希值中的至少一种与所述待同步文件的参数信息确定是否将所述待同步文件同步到所述服务器的步骤具体包括:
判断所述同步文件的实测文件大小与文件大小记录值是否相同;
若所述同步文件的实测文件大小与文件大小记录值不同,则根据所述同步文件的部分文件的哈希值或所述同步文件的整体文件的哈希值中的至少一种与所述待同步文件的参数信息确定是否将所述待同步文件同步到所述服务器;若所述同步文件的实测文件大小与文件大小记录值相同,则根据所述同步文件的最后修改时间或所述同步文件的部分文件的哈希值或所述同步文件的整体文件的哈希值中的至少一种与所述待同步文件的参数信息确定是否将所述待同步文件同步到所述服务器;
其中,所述根据所述同步文件的最后修改时间或所述同步文件的部分文件的哈希值或所述同步文件的整体文件的哈希值中的至少一种与所述待同步文件的参数信息确定是否将所述待同步文件同步到所述服务器的步骤具体包括:
判断所述同步文件的最近修改的记录时间与最近修改的实际时间是否相同;
若所述同步文件的最近修改的记录时间与最近修改的实际时间不同,则根据所述同步文件的部分文件的实测哈希值或所述同步文件的整体文件的实测哈希值中的至少一种与所述待同步文件的参数信息确定是否将所述待同步文件同步到所述服务器;若所述同步文件的最近修改的记录时间与最近修改的实际时间相同,则根据所述待同步文件的参数信息与所述同步文件的整体文件的记录哈希值确定是否将所述待同步文件同步到所述服务器。
9.一种服务器,其特征在于,所述服务器包括处理器以及分别与所述处理器耦接的存储器和通信电路,所述通信电路用于传输信息,所述存储器用于存储所述处理器执行的计算机程序以及在执行计算机程序时所产生的中间数据;所述处理器执行计算机程序时,实现权利要求1-7任一项所述的文件同步方法。
10.一种客户端,其特征在于,所述客户端包括处理器以及分别与所述处理器耦接的存储器和通信电路,所述通信电路用于传输信息,所述存储器用于存储所述处理器执行的计算机程序以及在执行计算机程序时所产生的中间数据;所述处理器执行计算机程序时,实现权利要求8所述的文件同步方法。
11.一种具有存储功能的装置,其特征在于,所述具有存储功能的装置存储有程序数据,所述程序数据能够被执行以实现权利要求1-7任一所述的文件同步方法或者权利要求8所述的文件同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811497717.6A CN109739810B (zh) | 2018-12-07 | 2018-12-07 | 文件同步方法、服务器、客户端及具有存储功能的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811497717.6A CN109739810B (zh) | 2018-12-07 | 2018-12-07 | 文件同步方法、服务器、客户端及具有存储功能的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109739810A CN109739810A (zh) | 2019-05-10 |
CN109739810B true CN109739810B (zh) | 2021-10-08 |
Family
ID=66358580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811497717.6A Active CN109739810B (zh) | 2018-12-07 | 2018-12-07 | 文件同步方法、服务器、客户端及具有存储功能的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109739810B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110543448A (zh) * | 2019-07-22 | 2019-12-06 | 深圳壹账通智能科技有限公司 | 数据同步方法、装置、设备及计算机可读存储介质 |
CN110865987A (zh) * | 2019-11-18 | 2020-03-06 | 杭州安恒信息技术股份有限公司 | 一种文件同步方法、装置、设备及介质 |
CN111352994B (zh) * | 2020-02-04 | 2023-04-18 | 浙江大华技术股份有限公司 | 数据同步方法以及相关设备、装置 |
CN111291011B (zh) * | 2020-02-19 | 2023-10-20 | 北京百度网讯科技有限公司 | 文件同步方法及装置、电子设备和可读存储介质 |
CN111414334B (zh) * | 2020-02-21 | 2024-04-05 | 平安科技(深圳)有限公司 | 基于云技术的文件分片上传方法、装置、设备及存储介质 |
CN113872996A (zh) * | 2020-06-30 | 2021-12-31 | 华为技术有限公司 | 数据对账方法及装置 |
CN112948340A (zh) * | 2021-02-04 | 2021-06-11 | 北京金山云网络技术有限公司 | 数据同步方法、装置、电子设备及可读存储介质 |
CN114880299A (zh) * | 2021-02-05 | 2022-08-09 | 北京字跳网络技术有限公司 | 多媒体草稿文件同步方法、装置、设备和介质 |
CN114124928B (zh) * | 2021-09-27 | 2023-07-14 | 苏州浪潮智能科技有限公司 | 设备间文件快速同步方法、装置及系统 |
CN115277680B (zh) * | 2022-07-29 | 2024-04-19 | 山石网科通信技术股份有限公司 | 用于提高同步安全性的文件同步方法 |
CN116781432B (zh) * | 2023-08-24 | 2024-05-28 | 北京微步在线科技有限公司 | 一种情报数据的更新方法、装置、计算机设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101574339B1 (ko) * | 2008-04-28 | 2015-12-03 | 엘지전자 주식회사 | 이동통신 단말기와 tv간 데이터 동기화 방법 및 장치 |
CN102624768B (zh) * | 2011-01-28 | 2016-06-29 | 腾讯科技(深圳)有限公司 | 在不同设备之间进行文件同步处理的方法和系统 |
CN104243508A (zh) * | 2013-06-07 | 2014-12-24 | 富鸿康科技(深圳)有限公司 | 服务器、客户端及文件同步方法 |
-
2018
- 2018-12-07 CN CN201811497717.6A patent/CN109739810B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109739810A (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109739810B (zh) | 文件同步方法、服务器、客户端及具有存储功能的装置 | |
CN108712457B (zh) | 基于Nginx反向代理的后端服务器动态负载调整方法及装置 | |
US8601166B2 (en) | Information processing system and information processing method for generating distribution and synchronization rules in a client/server environment based on operation environment data | |
CN107656937B (zh) | 用于实现读写数据一致性的方法和装置 | |
CN112714359B (zh) | 视频推荐方法、装置、计算机设备及存储介质 | |
CN108923875B (zh) | 时间同步方法和装置 | |
CN108196787B (zh) | 集群存储系统的配额管理方法以及集群存储系统 | |
JP6870466B2 (ja) | 制御プログラム、制御方法、制御装置、及びデータベースサーバ | |
CN110753084B (zh) | 上链数据读取方法、缓存服务器及计算机可读存储介质 | |
CN103167026A (zh) | 一种云存储环境数据处理方法、系统及设备 | |
CN113094430B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
EP3786802A1 (en) | Method and device for failover in hbase system | |
US20170153909A1 (en) | Methods and Devices for Acquiring Data Using Virtual Machine and Host Machine | |
CN114422537B (zh) | 多云存储系统、多云数据读写方法及电子设备 | |
EP3822763B1 (en) | Data reading method, device, system, and distributed system | |
CN113452770B (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
CN105991744B (zh) | 用于同步用户应用数据的方法与设备 | |
KR20160026138A (ko) | 클라우드 데이터 시스템의 급속 동기화 방법 및 그를 이용한 클라우드 데이터 시스템 | |
CN109688176B (zh) | 一种文件同步方法及终端、网络设备、存储介质 | |
CN112363980B (zh) | 一种分布式系统的数据处理方法及装置 | |
CN113742376A (zh) | 一种同步数据的方法、第一服务器以及同步数据的系统 | |
CN111147226B (zh) | 数据存储方法、装置及存储介质 | |
CN114598697B (zh) | 一种传输文件的方法、装置及计算机可读存储介质 | |
CN110990360A (zh) | 基于网络存储设备的文件同步方法及相关组件 | |
CN114328007B (zh) | 一种容器备份还原方法、装置及其介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |