CN105763644A - 云盘文件同步更新方法与装置 - Google Patents
云盘文件同步更新方法与装置 Download PDFInfo
- Publication number
- CN105763644A CN105763644A CN201610256045.4A CN201610256045A CN105763644A CN 105763644 A CN105763644 A CN 105763644A CN 201610256045 A CN201610256045 A CN 201610256045A CN 105763644 A CN105763644 A CN 105763644A
- Authority
- CN
- China
- Prior art keywords
- data
- user
- fingerprint table
- client
- data block
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种云盘文件同步更新方法与装置,该方法包括:向所述用户所登录的客户端发送第一同步请求;在接收到客户端返回的第二数据指纹表时,对比第一数据指纹表和第二数据指纹表,根据对比结果向客户端发送客户端缺少的数据块,并通知客户端更新所述用户的第二数据指纹表以完成对客户端同步文件的更新;响应于客户端发送的第二同步请求,对比第一数据指纹表和第二数据指纹表,根据对比结果从客户端中获取服务器缺少的数据块,并更新所述用户的第一数据指纹表以完成对所述用户的服务器同步文件的更新。在文件发生变化时只需要传输新增的数据块,而无需传输整个文件,大大减少了文件同步需要的数据流量,并且提高了同步效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种云盘文件同步更新方法与装置。
背景技术
云盘,也称网盘,作为一种典型的云存储应用模式,目前已得到广泛应用。通常,一个云盘产品由服务器端和客户端组成,其中,服务器端有自己的操作界面,客户端分为桌面客户端和移动客户端,主要用于提供云盘文件同步更新与异地操作功能,当有数据更新时,客户端和服务器端之间就需要进行云盘文件同步更新,以保证不同客户端与服务器端存储数据的一致性。但由于网络带宽限制、文件过大等原因,常会造成云盘文件同步更新失败或者同步效率低下的情况,同时有些云盘需要用户手动去进行云盘文件同步更新操作,造成了一定的繁琐,严重影响了用户对云盘的使用。因而,实现云盘客户端与服务器端数据更新的自动同步,并提高云盘文件同步更新效率是该类产品中需要解决的一个重要问题。
在实际应用中多是在客户端和服务器端对文件进行整体同步,一旦文件发生了变化,需要整个文件进行同步,另外需要人为触发云盘文件同步更新操作,导致了云盘文件同步更新效率低,用户体验差。
发明内容
本发明实施例提出一种云盘文件同步更新方法与装置,能够提高云盘文件同步更新效率以及用户体验。
为了达到上述的目的,本发明一方面提供一种云盘文件同步更新方法,包括:
将用户存储在服务器上的服务器同步文件分割成若干个数据块,并通过第一数据指纹表记录其中每个数据块的指纹以及存储地址;
在检测到用户登录到客户端时或在用户登录期间所述用户的第一数据指纹表发生变化时,向所述用户所登录的客户端发送第一同步请求;其中,所述客户端预先按照与所述服务器同步文件相同的数据块分割算法,将所述用户存储在所述客户端上的客户端同步文件分割成若干个数据块,并通过第二数据指纹表记录其中每个数据块的指纹及存储地址;
在接收到所述客户端响应于所述第一同步请求返回的所述用户的第二数据指纹表时,对比所述用户的第一数据指纹表和第二数据指纹表,根据对比结果向所述客户端发送所述客户端缺少的数据块,并通知所述客户端更新所述用户的第二数据指纹表以完成对所述用户的客户端同步文件的更新;
响应于所述客户端发送的记载有用户的第二数据指纹表的第二同步请求,对比所述用户的第一数据指纹表和第二数据指纹表,根据对比结果从所述客户端中获取所述服务器缺少的数据块,并更新所述用户的第一数据指纹表以完成对所述用户的服务器同步文件的更新;其中,所述第二同步请求为所述客户端在用户登录期间检测到所述用户的第二数据指纹表变化时生成的。
作为更优选地,所述响应于所述客户端发送的记载有用户的第二数据指纹表的第二同步请求,对比所述用户的第一数据指纹表和第二数据指纹表,根据对比结果从所述客户端中获取所述服务器缺少的数据块,并更新所述用户的第一数据指纹表以完成对所述用户的服务器同步文件的更新,具体包括:
响应于所述客户端发送的记载有用户的第二数据指纹表的第二同步请求,对比所述用户的第一数据指纹表和第二数据指纹表,以查找所述用户的第一数据指纹表没有记录而所述用户的第二数据指纹表有记录的数据块;
根据其他用户的第二数据指纹表判断查找到的数据块是否属于其他用户的服务器同步文件;
在查找不到相应的数据块时或查找到的数据块属于其他用户的服务器同步文件时,判定不存在所述服务器缺少的数据块,直接更新所述用户的第一数据指纹表以完成对所述用户的服务器同步文件的更新;
在查找到的数据块不属于其他用户的服务器同步文件时,将查找到的数据块作为所述服务器缺少的数据块从所述客户端中获取,并更新所述第一数据指纹表以完成对所述服务器同步文件的更新。
作为更优选地,云盘文件同步更新方法还包括:
当同时接收到来自于同一个用户的不同客户端的第二同步请求时,选择对其中一个客户端发送的第二同步请求进行响应,并通知其他没有被响应的客户端在设定的时间间隔后重新发送第二同步请求。
作为更优选地,云盘文件同步更新方法还包括:在用户的登录期间,根据预设的周期检测所述用户的第一数据指纹表是否发生变化。
作为更优选地,云盘文件同步更新方法还包括:根据所有用户的第一数据指纹表,在服务器中查找不属于任何用户的数据块,或与其他数据块具有相同指纹但具有不同存储地址的数据块;
根据查找到的数据块的存储地址删除查找到的数据块。
本发明另一方面提供一种云盘文件同步更新装置,设于服务器,包括:
文件分块模块,用于将用户存储在服务器上的服务器同步文件被分割成若干个数据块,并通过第一数据指纹表记录其中每个数据块的指纹及存储地址;
同步请求发送模块,用于在检测到用户登录到客户端时或在用户登录期间所述用户的第一数据指纹表发生变化时,向所述用户所登录的客户端发送第一同步请求;其中,所述客户端预先按照与所述服务器同步文件相同的数据块分割算法,将所述用户存储在所述客户端上的客户端同步文件分割成若干个数据块,并通过第二数据指纹表记录其中每个数据块的指纹及存储地址;
第一更新执行模块,用于响应于所述客户端发送的记载有用户的第二数据指纹表的第二同步请求,对比所述用户的第一数据指纹表和第二数据指纹表,根据对比结果向所述客户端发送所述客户端缺少的数据块,并通知所述客户端更新所述用户的第二数据指纹表以完成对所述用户的客户端同步文件的更新。
第二更新执行模块,用于在接收到所述客户端记载有用户的第二数据指纹表的第二同步请求时,对比所述用户的第一数据指纹表和第二数据指纹表,根据对比结果从所述客户端中获取所述服务器缺少的数据块,并更新所述用户的第一数据指纹表以完成对所述用户的服务器同步文件的更新;其中,所述第二同步请求为所述客户端在用户登录期间检测到所述用户的第二数据指纹表变化时生成的。
作为更优选地,所述第二更新执行模块具体包括:
对比单元,用于响应于所述客户端发送的记载有用户的第二数据指纹表的第二同步请求,对比所述用户的第一数据指纹表和第二数据指纹表,以查找所述用户的第一数据指纹表没有记录而所述用户的第二数据指纹表有记录的数据块;
判断单元,用于根据其他用户的第二数据指纹表判断查找到的数据块是否属于其他用户的服务器同步文件;
第一更新单元,用于在查找不到相应的数据块或查找到的数据块属于其他用户的服务器同步文件时,判定不存在所述服务器缺少的数据块,直接更新所述用户的第一数据指纹表以完成对所述用户的服务器同步文件的更新;
第二更新单元,用于在查找到的数据块不属于其他用户的服务器同步文件时,将查找到的数据块作为所述服务器缺少的数据块从所述客户端中获取,并更新所述第一数据指纹表以完成对所述服务器同步文件的更新。
作为更优选地,所述云盘文件同步更新装置还包括:
同步请求响应模块,用于当同时获取到来自于同一个用户的不同客户端的第二同步请求时,选择对其中一个客户端发送的第二同步请求进行响应,并通知其他没有被响应的客户端在设定的时间间隔后重新发送第二同步请求。
作为更优选地,所述云盘文件同步更新装置还包括:指纹表检测模块,用于在用户的登录期间根据预设的周期检测所述用户的第一数据指纹表是否发生变化。
作为更优选地,所述云盘文件同步更新装置还包括:
数据块查找模块,用于根据所有用户的第一数据指纹表,在服务器查找不属于任何用户的数据块,或与其他数据块具有相同指纹但具有不同存储地址的数据块;
数据块删除模块,用于根据查找到的数据块的存储地址删除查找到的数据块。
相比于现有技术,本发明的有益效果在于:本发明提供了一种云盘文件同步更新方法与装置,其中方法包括在检测到用户登录到客户端时或在用户登录期间所述用户的第一数据指纹表发生变化时,向所述用户所登录的客户端发送第一同步请求;在接收到所述客户端响应于所述第一同步请求返回的所述用户的第二数据指纹表时,对比所述用户的第一数据指纹表和第二数据指纹表,根据对比结果向所述客户端发送所述客户端缺少的数据块,并通知所述客户端更新所述用户的第二数据指纹表以完成对所述用户的客户端同步文件的更新;响应于所述客户端发送的记载有用户的第二数据指纹表的第二同步请求,对比所述用户的第一数据指纹表和第二数据指纹表,根据对比结果从所述客户端中获取所述服务器缺少的数据块,并更新所述用户的第一数据指纹表以完成对所述用户的服务器同步文件的更新。由于客户端同步文件和服务器同步文件都被分割为若干个数据块,在发生变化时,只需要传输新增的数据块即对方缺少的数据块,而无需传输整个文件,大大减少了文件同步需要的数据流量,并且提高了同步效率;文件同步全自动,并且同步所需的时间减少了,提高了用户的体验。
附图说明
图1是本发明实施例提供的云盘文件同步更新方法的流程示意图;
图2是本发明实施例提供的云盘文件同步更新装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明实施例提供的云盘文件同步更新方法的流程示意图,该方法包括以下步骤:
S1,将用户存储在服务器上的服务器同步文件分割成若干个数据块,并通过第一数据指纹表记录其中每个数据块的指纹以及存储地址;
S2,在检测到用户登录到客户端时或在用户登录期间所述用户的第一数据指纹表发生变化时,向所述用户所登录的客户端发送第一同步请求;其中,所述客户端预先按照与所述服务器同步文件相同的数据块分割算法,将所述用户存储在所述客户端上的客户端同步文件分割成若干个数据块,并通过第二数据指纹表记录其中每个数据块的指纹及存储地址;
S3,在接收到所述客户端响应于所述第一同步请求返回的所述用户的第二数据指纹表时,对比所述用户的第一数据指纹表和第二数据指纹表,根据对比结果向所述客户端发送所述客户端缺少的数据块,并通知所述客户端更新所述用户的第二数据指纹表以完成对所述用户的客户端同步文件的更新;
S4,响应于所述客户端发送的记载有用户的第二数据指纹表的第二同步请求,对比所述用户的第一数据指纹表和第二数据指纹表,根据对比结果从所述客户端中获取所述服务器缺少的数据块,并更新所述用户的第一数据指纹表以完成对所述用户的服务器同步文件的更新;其中,所述第二同步请求为所述客户端在用户登录期间检测到所述用户的第二数据指纹表变化时生成的。
在步骤S1之前,用户需要先注册账号,然后服务器会为用户创建文件夹以存放用户的服务器同步文件,同时也会为用户配置一份第一数据指纹表以记录所述服务器同步文件分割得到的数据块的指纹以及存储地址。当然,在用户为新注册用户时,所述服务器同步文件以及第一数据指纹表都是空的。同理,用户第一次在客户端登录后,客户端会为用户创建文件夹以存放用户的客户端同步文件,同时也会为用户配置一份第二数据指纹表以记录所述客户端同步文件分割得到的数据块的指纹以及存储地址。需要说明的是,数据块只是服务器同步文件或客户端同步文件在底层存储的表现形式,对用户来说看到的都是文件而不是数据块。每个数据块的指纹是唯一的,具有不同指纹的两个数据块一定是不相同的两个数据块,相同的数据块的指纹是相同的。
为了保证服务器和客户端两侧相同的数据块的指纹是相同的,服务器同步文件的数据块分割算法和客户端同步文件的数据块分割算法必须是相同的。在本实施例中,所述数据分割算法为基于内容的可变长度分块算法。
步骤S2和步骤S3是为了实现服务器同步文件发生变化时,客户端同步文件的同步更新。服务器需要检测用户在登录期间用户的第一数据指纹表是否发生变化,即用户的服务器同步文件是否被修改过。若是,则需要向相应的客户端发送第一同步请求以获取所述用户存储在客户端的第二数据指纹表,并将第一数据指纹表与第二数据指纹表进行对比,目的是查找出第一数据指纹表有记载而第二数据指纹表没有记载的数据块,即客户端缺少的数据块,并发送到客户端。客户端接收所述客户端缺少的数据块并对第二数据指纹表进行更新,那么所述客户端同步文件就能够在客户端中得到了更新。另外,如果在用户没有登录即离线的情况下,服务器不能向相应的客户端发送第一同步请求,那么服务器就需要在检测到用户登录时,向相应的客户端发送第一同步请求,以保证用户登录后,客户端同步文件会更新到与服务器同步文件是相同的。在这个过程中,服务器查找客户端缺少的数据块并发送给客户端,而不是发送完整的文件给客户端,大大地减少了客户端同步文件更新所需要的数据流量,并且大大提高了文件同步的效率。
步骤S4是为了实现客户端同步文件发生变化时,服务器同步文件的同步更新,是步骤S2和步骤S3的逆过程。客户端需要在用户登录期间,检测用户的第二数据指纹表是否发生变化,即客户端同步文件是否发生变化。若是,则将第二数据指纹表发送到服务器。服务器对比第一数据指纹表和第二数据指纹表,目的是查找出第一数据指纹表没有记载而第二数据指纹表有记载的数据块,即服务器缺少的数据块,从客户端中获取所述服务器缺少的数据块并更新第一数据指纹表,那么所述服务器同步文件就能够在服务器中得到了更新。在这个过程中,服务器查找服务器缺少的数据块并从客户端中获取,而不是从客户端获取完整的文件,大大地减少了客户端同步文件更新所需要的数据流量,并且大大提高了文件同步的效率。
作为更优选地,所述步骤S4具体包括:
响应于所述客户端发送的记载有用户的第二数据指纹表的第二同步请求,对比所述用户的第一数据指纹表和第二数据指纹表,以查找所述用户的第一数据指纹表没有记录而所述用户的第二数据指纹表有记录的数据块;
根据其他用户的第二数据指纹表判断查找到的数据块是否属于其他用户的服务器同步文件;
在查找不到相应的数据块时或查找到的数据块属于其他用户的服务器同步文件时,判定不存在所述服务器缺少的数据块,直接更新所述用户的第一数据指纹表以完成对所述用户的服务器同步文件的更新;
在查找到的数据块不属于其他用户的服务器同步文件时,将查找到的数据块作为所述服务器缺少的数据块从所述客户端中获取,并更新所述第一数据指纹表以完成对所述服务器同步文件的更新。
用户的第一数据指纹表只是记录用户的服务器同步文件分割得到的数据块的指纹,即只记录了属于用户的服务器同步文件有哪些数据块。如果只是对比用户的第一数据指纹表和第二数据指纹表,可能找到用户的服务器同步文件没有但属于其他用户的服务器同步文件的数据块。为了进一步减少服务器同步文件更新所需要的数据流量,如果在发现在查找不到相应的数据块时或查找到的数据块属于其他用户的服务器同步文件时,则不向客户端获取相应的数据块,而是直接更新所述用户的第一数据指纹表,即用户的服务器同步文件和其他用户的服务器同步文件共用数据块,这样也能达到节省服务器的存储空间的目的。
作为更优选地,所述云盘文件同步更新方法还包括:当同时接收到来自于同一个用户的不同客户端的第二同步请求时,选择对其中一个客户端发送的第二同步请求进行响应,并通知其他没有被响应的客户端在设定的时间间隔后重新发送第二同步请求。同一个账号是允许同时在不同的客户端登录的,因此服务器有可能会接收到来自于同一个用户的不同客户端的第二同步请求。为了保证操作的原子性,服务器只选择其中的一个进行响应,而其他客户端则在之后的一段时间重新发送第二同步请求。
作为更优选地,所述云盘文件同步更新方法还包括:在用户的登录期间,根据预设的周期检测所述用户的第一数据指纹表是否发生变化。为了避免第一数据指纹表因为经常发生变化而导致客户端频繁地接收服务器的第一同步请求,需要设定一个检测的周期。同理地,在客户端也可以设定一个检测的周期用来所述用户的第二数据指纹表是否发生变化。
作为更优选地,所述云盘文件同步更新方法还包括:
根据所有用户的第一数据指纹表,在服务器中查找不属于任何用户的数据块,或与其他数据块具有相同指纹但具有不同存储地址的数据块;
根据查找到的数据块的存储地址删除查找到的数据块。
当客户端同步文件变化而删除了数据块时,服务器不会从客户端获取数据块而是直接更新第一数据指纹表来更新服务器同步文件。这时,服务器就可能会产生不属于任何用户的数据块,为了避免这种数据块占用服务器的存储空间,需要对其清除。另外,两个文件可能会采用具有相同指纹但存储地址不同的两个数据块,为了进一步节省存储空间,可以把其中一个数据块删除,并用指针来代替,使其指向另一个数据块。这样两个文件就可以共用一个数据块了。
以下以两个具体的实施例来说明本发明的工作原理:
实施例一:假设用户在公司登录到客户端A,并上传了一份文件X,客户端A相应地更新客户端A上的第二数据指纹表,并上传给服务器。服务器获取到客户端A的第二数据指纹表,并与该用户的第一数据指纹表对比,查找出服务器上缺少的数据块并从客户端A中获取,并在获取完毕后对第一数据指纹表进行更新,那么该用户的服务器同步文件就会相应地增加所述文件X,实现了服务器同步文件的更新。
用户回到家里登录到客户端B。服务器检测到用户通过客户端B登录了,向客户端B发送第一同步请求以获取所述用户的在客户端B存储的第二数据指纹表,并与所述用户的第一数据指纹表对比,查找出客户端B缺少的数据块并发送给客户端B。客户端B在获取完毕后对第二数据指纹表进行更新,那么该用户在客户端B的客户端同步文件就会相应地增加所述文件X,实现了客户端同步文件的更新。
实施例二:假设用户在网页端和客户端C同时登陆了账号。用户在网页端上直接访问用户的服务器同步文件,并且上传了文件Y,服务器相应地更新用户的第一数据指纹表,并且向客户端C发送第一同步请求以获取所述用户的在客户端C存储的第二数据指纹表,并与所述用户的第一数据指纹表对比,查找出客户端C缺少的数据块并发送给客户端C。客户端C在获取完毕后对第二数据指纹表进行更新,那么该用户在客户端C的客户端同步文件就会相应地增加所述文件X,实现了客户端同步文件的更新。
相应地,本发明实施例还提供一种云盘文件同步更新装置,设于服务器。
如图2所示,其是本发明实施例提供的云盘文件同步更新装置的结构框图,包括:
文件分块模块1,用于将用户存储在服务器上的服务器同步文件被分割成若干个数据块,并通过第一数据指纹表记录其中每个数据块的指纹及存储地址;
同步请求发送模块2,用于在检测到用户登录到客户端时或在用户登录期间所述用户的第一数据指纹表发生变化时,向所述用户所登录的客户端发送第一同步请求;其中,所述客户端预先按照与所述服务器同步文件相同的数据块分割算法,将所述用户存储在所述客户端上的客户端同步文件分割成若干个数据块,并通过第二数据指纹表记录其中每个数据块的指纹及存储地址;
第一更新执行模块3,用于响应于所述客户端发送的记载有用户的第二数据指纹表的第二同步请求,对比所述用户的第一数据指纹表和第二数据指纹表,根据对比结果向所述客户端发送所述客户端缺少的数据块,并通知所述客户端更新所述用户的第二数据指纹表以完成对所述用户的客户端同步文件的更新。
第二更新执行模块4,用于在接收到所述客户端记载有用户的第二数据指纹表的第二同步请求时,对比所述用户的第一数据指纹表和第二数据指纹表,根据对比结果从所述客户端中获取所述服务器缺少的数据块,并更新所述用户的第一数据指纹表以完成对所述用户的服务器同步文件的更新;其中,所述第二同步请求为所述客户端在用户登录期间检测到所述用户的第二数据指纹表变化时生成的。
作为更优选地,所述第二更新执行模块具体包括:
对比单元,用于响应于所述客户端发送的记载有用户的第二数据指纹表的第二同步请求,对比所述用户的第一数据指纹表和第二数据指纹表,以查找所述用户的第一数据指纹表没有记录而所述用户的第二数据指纹表有记录的数据块;
判断单元,用于根据其他用户的第二数据指纹表判断查找到的数据块是否属于其他用户的服务器同步文件;
第一更新单元,用于在查找不到相应的数据块或查找到的数据块属于其他用户的服务器同步文件时,判定不存在所述服务器缺少的数据块,直接更新所述用户的第一数据指纹表以完成对所述用户的服务器同步文件的更新;
第二更新单元,用于在查找到的数据块不属于其他用户的服务器同步文件时,将查找到的数据块作为所述服务器缺少的数据块从所述客户端中获取,并更新所述第一数据指纹表以完成对所述服务器同步文件的更新。
作为更优选地,所述云盘文件同步更新装置还包括:
同步请求响应模块,用于当同时获取到来自于同一个用户的不同客户端的第二同步请求时,选择对其中一个客户端发送的第二同步请求进行响应,并通知其他没有被响应的客户端在设定的时间间隔后重新发送第二同步请求。
作为更优选地,所述云盘文件同步更新装置还包括:
指纹表检测模块,用于在用户的登录期间根据预设的周期检测所述用户的第一数据指纹表是否发生变化。
作为更优选地,所述云盘文件同步更新装置还包括:
数据块查找模块,用于根据所有用户的第一数据指纹表,在服务器查找不属于任何用户的数据块,或与其他数据块具有相同指纹但具有不同存储地址的数据块;
数据块删除模块,用于根据查找到的数据块的存储地址删除查找到的数据块。
需要说明的是,本实施例提供的云盘文件同步更新装置用于执行上述云盘文件同步更新方法的方法流程,其工作原理和有益效果一一对应,因而不再赘述。
相比于现有技术,本发明的有益效果在于:本发明提供了一种云盘文件同步更新方法与装置,其中方法包括在检测到用户登录到客户端时或在用户登录期间所述用户的第一数据指纹表发生变化时,向所述用户所登录的客户端发送第一同步请求;在接收到所述客户端响应于所述第一同步请求返回的所述用户的第二数据指纹表时,对比所述用户的第一数据指纹表和第二数据指纹表,根据对比结果向所述客户端发送所述客户端缺少的数据块,并通知所述客户端更新所述用户的第二数据指纹表以完成对所述用户的客户端同步文件的更新;响应于所述客户端发送的记载有用户的第二数据指纹表的第二同步请求,对比所述用户的第一数据指纹表和第二数据指纹表,根据对比结果从所述客户端中获取所述服务器缺少的数据块,并更新所述用户的第一数据指纹表以完成对所述用户的服务器同步文件的更新。由于客户端同步文件和服务器同步文件都被分割为若干个数据块,在发生变化时,只需要传输新增的数据块即对方缺少的数据块,而无需传输整个文件,大大减少了文件同步需要的数据流量,并且提高了同步效率;文件同步全自动,并且同步所需的时间减少了,提高了用户的体验。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种云盘文件同步更新方法,其特征在于,包括:
将用户存储在服务器上的服务器同步文件分割成若干个数据块,并通过第一数据指纹表记录其中每个数据块的指纹以及存储地址;
在检测到用户登录到客户端时或在用户登录期间所述用户的第一数据指纹表发生变化时,向所述用户所登录的客户端发送第一同步请求;其中,所述客户端预先按照与所述服务器同步文件相同的数据块分割算法,将所述用户存储在所述客户端上的客户端同步文件分割成若干个数据块,并通过第二数据指纹表记录其中每个数据块的指纹及存储地址;
在接收到所述客户端响应于所述第一同步请求返回的所述用户的第二数据指纹表时,对比所述用户的第一数据指纹表和第二数据指纹表,根据对比结果向所述客户端发送所述客户端缺少的数据块,并通知所述客户端更新所述用户的第二数据指纹表以完成对所述用户的客户端同步文件的更新;
响应于所述客户端发送的记载有用户的第二数据指纹表的第二同步请求,对比所述用户的第一数据指纹表和第二数据指纹表,根据对比结果从所述客户端中获取所述服务器缺少的数据块,并更新所述用户的第一数据指纹表以完成对所述用户的服务器同步文件的更新;其中,所述第二同步请求为所述客户端在用户登录期间检测到所述用户的第二数据指纹表变化时生成的。
2.如权利要求1所述的云盘文件同步更新方法,其特征在于,所述响应于所述客户端发送的记载有用户的第二数据指纹表的第二同步请求,对比所述用户的第一数据指纹表和第二数据指纹表,根据对比结果从所述客户端中获取所述服务器缺少的数据块,并更新所述用户的第一数据指纹表以完成对所述用户的服务器同步文件的更新,具体包括:
响应于所述客户端发送的记载有用户的第二数据指纹表的第二同步请求,对比所述用户的第一数据指纹表和第二数据指纹表,以查找所述用户的第一数据指纹表没有记录而所述用户的第二数据指纹表有记录的数据块;
根据其他用户的第二数据指纹表判断查找到的数据块是否属于其他用户的服务器同步文件;
在查找不到相应的数据块时或查找到的数据块属于其他用户的服务器同步文件时,判定不存在所述服务器缺少的数据块,直接更新所述用户的第一数据指纹表以完成对所述用户的服务器同步文件的更新;
在查找到的数据块不属于其他用户的服务器同步文件时,将查找到的数据块作为所述服务器缺少的数据块从所述客户端中获取,并更新所述第一数据指纹表以完成对所述服务器同步文件的更新。
3.如权利要求1所述的云盘文件同步更新方法,其特征在于,还包括:
当同时接收到来自于同一个用户的不同客户端的第二同步请求时,选择对其中一个客户端发送的第二同步请求进行响应,并通知其他没有被响应的客户端在设定的时间间隔后重新发送第二同步请求。
4.如权利要求1所述的云盘文件同步更新方法,其特征在于,还包括:
在用户的登录期间,根据预设的周期检测所述用户的第一数据指纹表是否发生变化。
5.如权利要求1~4任一项所述的云盘文件同步更新方法,其特征在于,还包括:
根据所有用户的第一数据指纹表,在服务器中查找不属于任何用户的数据块,或与其他数据块具有相同指纹但具有不同存储地址的数据块;
根据查找到的数据块的存储地址删除查找到的数据块。
6.一种云盘文件同步更新装置,其特征在于,设于服务器,包括:
文件分块模块,用于将用户存储在服务器上的服务器同步文件被分割成若干个数据块,并通过第一数据指纹表记录其中每个数据块的指纹及存储地址;
同步请求发送模块,用于在检测到用户登录到客户端时或在用户登录期间所述用户的第一数据指纹表发生变化时,向所述用户所登录的客户端发送第一同步请求;其中,所述客户端预先按照与所述服务器同步文件相同的数据块分割算法,将所述用户存储在所述客户端上的客户端同步文件分割成若干个数据块,并通过第二数据指纹表记录其中每个数据块的指纹及存储地址;
第一更新执行模块,用于响应于所述客户端发送的记载有用户的第二数据指纹表的第二同步请求,对比所述用户的第一数据指纹表和第二数据指纹表,根据对比结果向所述客户端发送所述客户端缺少的数据块,并通知所述客户端更新所述用户的第二数据指纹表以完成对所述用户的客户端同步文件的更新。
第二更新执行模块,用于在接收到所述客户端记载有用户的第二数据指纹表的第二同步请求时,对比所述用户的第一数据指纹表和第二数据指纹表,根据对比结果从所述客户端中获取所述服务器缺少的数据块,并更新所述用户的第一数据指纹表以完成对所述用户的服务器同步文件的更新;其中,所述第二同步请求为所述客户端在用户登录期间检测到所述用户的第二数据指纹表变化时生成的。
7.如权利要求6所述的云盘文件同步更新装置,其特征在于,所述第二更新执行模块具体包括:
对比单元,用于响应于所述客户端发送的记载有用户的第二数据指纹表的第二同步请求,对比所述用户的第一数据指纹表和第二数据指纹表,以查找所述用户的第一数据指纹表没有记录而所述用户的第二数据指纹表有记录的数据块;
判断单元,用于根据其他用户的第二数据指纹表判断查找到的数据块是否属于其他用户的服务器同步文件;
第一更新单元,用于在查找不到相应的数据块或查找到的数据块属于其他用户的服务器同步文件时,判定不存在所述服务器缺少的数据块,直接更新所述用户的第一数据指纹表以完成对所述用户的服务器同步文件的更新;
第二更新单元,用于在查找到的数据块不属于其他用户的服务器同步文件时,将查找到的数据块作为所述服务器缺少的数据块从所述客户端中获取,并更新所述第一数据指纹表以完成对所述服务器同步文件的更新。
8.如权利要求6所述的云盘文件同步更新装置,其特征在于,还包括:
同步请求响应模块,用于当同时获取到来自于同一个用户的不同客户端的第二同步请求时,选择对其中一个客户端发送的第二同步请求进行响应,并通知其他没有被响应的客户端在设定的时间间隔后重新发送第二同步请求。
9.如权利要求6所述的云盘文件同步更新方法,其特征在于,还包括:
指纹表检测模块,用于在用户的登录期间根据预设的周期检测所述用户的第一数据指纹表是否发生变化。
10.如权利要求6~9任一项所述的云盘文件同步更新装置,其特征在于,还包括:
数据块查找模块,用于根据所有用户的第一数据指纹表,在服务器查找不属于任何用户的数据块,或与其他数据块具有相同指纹但具有不同存储地址的数据块;
数据块删除模块,用于根据查找到的数据块的存储地址删除查找到的数据块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610256045.4A CN105763644A (zh) | 2016-04-21 | 2016-04-21 | 云盘文件同步更新方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610256045.4A CN105763644A (zh) | 2016-04-21 | 2016-04-21 | 云盘文件同步更新方法与装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105763644A true CN105763644A (zh) | 2016-07-13 |
Family
ID=56324808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610256045.4A Pending CN105763644A (zh) | 2016-04-21 | 2016-04-21 | 云盘文件同步更新方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105763644A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108062399A (zh) * | 2017-12-21 | 2018-05-22 | 新华三大数据技术有限公司 | 数据处理方法及装置 |
CN108337303A (zh) * | 2018-01-24 | 2018-07-27 | 中国银联股份有限公司 | 一种数据同步方法和分布式系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102065098A (zh) * | 2010-12-31 | 2011-05-18 | 网宿科技股份有限公司 | 网络节点之间数据同步的方法和系统 |
CN103414759A (zh) * | 2013-07-22 | 2013-11-27 | 华为技术有限公司 | 网盘文件传输方法和装置 |
CN103647829A (zh) * | 2013-12-11 | 2014-03-19 | 北京荣之联科技股份有限公司 | 一种云盘文件同步装置和方法 |
US20150081633A1 (en) * | 2012-05-28 | 2015-03-19 | Tencent Technology (Shenzhen) Company Limited | Data synchronization method and device |
-
2016
- 2016-04-21 CN CN201610256045.4A patent/CN105763644A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102065098A (zh) * | 2010-12-31 | 2011-05-18 | 网宿科技股份有限公司 | 网络节点之间数据同步的方法和系统 |
US20150081633A1 (en) * | 2012-05-28 | 2015-03-19 | Tencent Technology (Shenzhen) Company Limited | Data synchronization method and device |
CN103414759A (zh) * | 2013-07-22 | 2013-11-27 | 华为技术有限公司 | 网盘文件传输方法和装置 |
CN103647829A (zh) * | 2013-12-11 | 2014-03-19 | 北京荣之联科技股份有限公司 | 一种云盘文件同步装置和方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108062399A (zh) * | 2017-12-21 | 2018-05-22 | 新华三大数据技术有限公司 | 数据处理方法及装置 |
CN108337303A (zh) * | 2018-01-24 | 2018-07-27 | 中国银联股份有限公司 | 一种数据同步方法和分布式系统 |
WO2019144761A1 (zh) * | 2018-01-24 | 2019-08-01 | 中国银联股份有限公司 | 一种数据同步方法和分布式系统、设备 |
TWI751402B (zh) * | 2018-01-24 | 2022-01-01 | 大陸商中國銀聯股份有限公司 | 一種資料同步方法、分散式系統、電腦可讀取儲取媒體、電腦設備及分散式設備 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017167171A1 (zh) | 一种数据操作方法,服务器及存储系统 | |
CN103167026B (zh) | 一种云存储环境数据处理方法、系统及设备 | |
TWI734744B (zh) | 路由表的同步方法、裝置及系統 | |
CN104202375A (zh) | 同步数据的方法及系统 | |
CN108776682B (zh) | 基于对象存储的随机读写对象的方法和系统 | |
CN103617007B (zh) | 多级智能存储实现方法和系统 | |
CN104111804A (zh) | 一种分布式文件系统 | |
CN107147748B (zh) | 文件上传方法和装置 | |
CN103916465A (zh) | 一种基于分布式文件系统的数据预读装置及其方法 | |
CN105376277A (zh) | 一种数据同步方法及装置 | |
CN104717314A (zh) | 一种ip管理方法及系统、客户端、服务器 | |
CN113806300B (zh) | 数据存储方法、系统、装置、设备及存储介质 | |
CN104580432A (zh) | memcached系统及内存缓存数据提供、维护和集群维护方法及装置 | |
CN104348859A (zh) | 文件同步方法、装置、服务器、终端及系统 | |
CN104281673A (zh) | 一种数据库的缓存构建系统及对应的构建方法 | |
CN104376122A (zh) | 浏览器客户端获得静态文件的方法及服务器 | |
CN102572011B (zh) | 数据处理方法、装置和系统 | |
CN103229480A (zh) | 分布式存储系统中的数据处理方法及设备、客户端 | |
CN103942301A (zh) | 一种面向多数据类型访问应用的分布式文件系统 | |
CN105763644A (zh) | 云盘文件同步更新方法与装置 | |
CN108241639B (zh) | 一种数据去重方法 | |
WO2014146448A1 (en) | Method and system for synchronizing browser bookmarks | |
CN107040455B (zh) | 一种基于redis的即时消息通讯方法和系统 | |
CN102223405A (zh) | 一种媒体类型分析的方法、系统及媒体服务器 | |
CN109408467A (zh) | 一种实现数据存储的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160713 |
|
RJ01 | Rejection of invention patent application after publication |