CN103902663A - 文件同步方法和装置 - Google Patents
文件同步方法和装置 Download PDFInfo
- Publication number
- CN103902663A CN103902663A CN201410085630.3A CN201410085630A CN103902663A CN 103902663 A CN103902663 A CN 103902663A CN 201410085630 A CN201410085630 A CN 201410085630A CN 103902663 A CN103902663 A CN 103902663A
- Authority
- CN
- China
- Prior art keywords
- file
- event
- server
- terminal device
- cryptographic hash
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (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)
Abstract
本发明公开了一种文件同步方法和装置,属于云存储技术领域。所述方法应用于电子设备中,包括:通过所述电子设备获取第一事件集和第二事件集,所述第一事件集包括服务器中的文件发生的事件,所述第二事件集包括终端设备中的文件发生的事件,文件发生的事件包括增事件和减事件中的至少一项;当接收到同步指令时,根据所述第一事件集和所述第二事件集,对所述服务器和所述终端设备中的文件进行同步。本发明通过将文件发生的事件分为增事件和减事件两种,减少了冗余事件的发生,在根据该第一事件集和该第二事件集对该服务器和该终端设备中的文件进行同步时,极大地降低了冲突事件发生的概率,提高了文件同步的效率。
Description
技术领域
本发明涉及云存储技术领域,特别涉及一种文件同步方法和装置。
背景技术
随着云存储技术的发展,云存储的同步应用得到了广泛的使用。云存储的同步应用可以使用基于差异的判定方法,得到一段时间内服务器的文件的差异,并采用event(事件)或changelog(日志)的方式,将文件的差异以事件的方式保存在服务器。在对服务器和终端设备的文件进行同步时,服务器将发生的事件发送给终端设备,以事件驱动的方式提示终端设备对文件进行处理,使得终端设备的文件和服务器的文件达到同步。
其中,对于服务器和多个终端设备,可能会出现以下情况:(1)服务器新下载了文件A,而终端设备删除了文件A;(2)终端设备1修改了文件B,终端设备2也修改了文件B;(3)终端设备1新下载了文件C,而终端设备2删除了文件C等等。当发生上述冲突事件或类似事件时,需要在保证用户的数据安全的前提下,判断如何对服务器和多个终端设备中的文件进行处理,以使得服务器和多个终端设备中的文件同步。
但是,一个文件可能会发生多个冗余的事件,如A.txt被删除之前的创建A.txt的事件和修改A.txt的事件均可以看作冗余事件。由于文件可能发生多个冗余的事件,使得发生冲突事件的概率增大,则终端设备需要针对多个冗余事件进行判断,耗费的时间过长,降低了文件同步的效率。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种文件同步方法和装置。所述技术方案如下:
第一方面,提供了一种文件同步方法,应用于电子设备中,所述方法包括:
通过所述电子设备获取第一事件集和第二事件集,所述第一事件集包括服务器中的文件发生的事件,所述第二事件集包括终端设备中的文件发生的事件,文件发生的事件包括增事件和减事件中的至少一项;
当接收到同步指令时,根据所述第一事件集和所述第二事件集,对所述服务器和所述终端设备中的文件进行同步。
通过所述电子设备获取第一事件集和第二事件集包括:
当所述电子设备检测到所述服务器中的第一文件发生变化时,获取所述第一文件的变化类型,文件的变化类型包括创建、删除和修改;
根据所述第一文件的变化类型,确定所述第一文件发生的事件;
获取所述服务器中发生变化的每个文件所发生的事件,得到所述第一事件集。
通过所述电子设备获取第一事件集和第二事件集包括:
当所述电子设备检测到所述终端设备中的第二文件发生变化时,获取所述第二文件的变化类型;
根据所述第二文件的变化类型,确定所述第二文件发生的事件;
获取所述终端设备中发生变化的每个文件所发生的事件,得到所述第二事件集。
当接收到同步指令时,根据所述第一事件集和所述第二事件集,对所述服务器和所述终端设备中的文件进行同步包括:
当接收到同步指令时,根据所述第一事件集和所述第二事件集,确定执行事件集,所述执行事件集包括所述服务器和所述终端设备中的文件待执行的事件;
根据所述执行事件集,对所述服务器和所述终端设备中的文件进行处理,使得所述服务器中的文件与所述终端设备中的文件同步。
当接收到同步指令时,根据所述第一事件集和所述第二事件集,对所述服务器和所述终端设备中的文件进行同步包括:
当所述第一文件和所述第二文件为相同的文件,且所述第一事件集包括所述第一文件发生的第一事件,所述第二事件集包括所述第二文件发生的第二事件时,根据所述第一事件和所述第二事件,分别对所述第一文件和所述第二文件进行处理,使得所述第一文件和所述第二文件同步。
根据所述第一事件和所述第二事件,分别对所述第一文件和所述第二文件进行处理,使得所述第一文件和所述第二文件同步包括:
当所述第一事件和所述第二事件均为增事件时,将所述第二文件重新命名,并将所述第一文件下载至所述终端设备,将重命名后的第二文件上传至所述服务器;或,
当所述第一事件和所述第二事件均为增事件时,将所述第一文件重新命名,并将重命名后的第一文件下载至所述终端设备,将所述第二文件上传至所述服务器;或,
当所述第一事件为增事件,且所述第二事件为减事件时,将所述第一文件下载至所述终端设备;或,
当所述第一事件为减事件,且所述第二事件为增事件时,将所述第二文件上传至所述服务器;或,
当所述第一事件和所述第二事件均为减事件时,将所述第一文件和所述第二文件删除。
所述方法还包括:
当确定需要将所述第二文件上传至所述服务器时,获取所述第二文件的哈希值;
判断所述服务器中是否存在哈希值与所述第二文件的哈希值相同的文件;
如果是,根据所述第二文件的信息,对所述服务器中哈希值与所述第二文件的哈希值相同的文件的信息进行修改;
如果否,将所述第二文件上传至所述服务器。
第二方面,提供了一种文件同步装置,应用于电子设备中,所述装置包括:
事件集获取模块,用于获取第一事件集和第二事件集,所述第一事件集包括服务器中的文件发生的事件,所述第二事件集包括终端设备中的文件发生的事件,文件发生的事件包括增事件和减事件中的至少一项;
同步模块,用于当接收到同步指令时,根据所述第一事件集和所述第二事件集,对所述服务器和所述终端设备中的文件进行同步。
所述事件集获取模块包括:
第一变化获取单元,用于当所述电子设备检测到所述服务器中的第一文件发生变化时,获取所述第一文件的变化类型,文件的变化类型包括创建、删除和修改;
第一事件获取单元,用于根据所述第一文件的变化类型,确定所述第一文件发生的事件;
第一事件集获取单元,用于获取所述服务器中发生变化的每个文件所发生的事件,得到所述第一事件集。
所述事件集获取模块包括:
第二变化获取单元,用于当所述电子设备检测到所述终端设备中的第二文件发生变化时,获取所述第二文件的变化类型;
第二事件获取单元,用于根据所述第二文件的变化类型,确定所述第二文件发生的事件;
第二事件集获取单元,用于获取所述终端设备中发生变化的每个文件所发生的事件,得到所述第二事件集。
所述同步模块包括:
执行事件集确定单元,用于当接收到同步指令时,根据所述第一事件集和所述第二事件集,确定执行事件集,所述执行事件集包括所述服务器和所述终端设备中的文件待执行的事件;
第一同步单元,用于根据所述执行事件集,对所述服务器和所述终端设备中的文件进行处理,使得所述服务器中的文件与所述终端设备中的文件同步。
所述同步模块包括:
第二同步单元,用于当所述第一文件和所述第二文件为相同的文件,且所述第一事件集包括所述第一文件发生的第一事件,所述第二事件集包括所述第二文件发生的第二事件时,根据所述第一事件和所述第二事件,分别对所述第一文件和所述第二文件进行处理,使得所述第一文件和所述第二文件同步。
所述第二同步单元用于当所述第一事件和所述第二事件均为增事件时,将所述第二文件重新命名,并将所述第一文件下载至所述终端设备,将重命名后的第二文件上传至所述服务器;或,当所述第一事件和所述第二事件均为增事件时,将所述第一文件重新命名,并将重命名后的第一文件下载至所述终端设备,将所述第二文件上传至所述服务器;或,当所述第一事件为增事件,且所述第二事件为减事件时,将所述第一文件下载至所述终端设备;或,当所述第一事件为减事件,且所述第二事件为增事件时,将所述第二文件上传至所述服务器;或,当所述第一事件和所述第二事件均为减事件时,将所述第一文件和所述第二文件删除。
所述装置还包括:
哈希值获取模块,用于当确定需要将所述第二文件上传至所述服务器时,获取所述第二文件的哈希值;
判断模块。用于判断所述服务器中是否存在哈希值与所述第二文件的哈希值相同的文件;
信息修改模块,用于当所述服务器中存在哈希值与所述第二文件的哈希值相同的文件,根据所述第二文件的信息,对所述服务器中哈希值与所述第二文件的哈希值相同的文件的信息进行修改;
上传模块,用于当所述服务器中不存在哈希值与所述第二文件的哈希值相同的文件,将所述第二文件上传至所述服务器。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例提供的方法和装置,通过将文件发生的事件分为增事件和减事件两种,并通过电子设备获取服务器中文件发生的事件和终端设备中文件发生的事件,分别组成第一事件集和第二事件集,减少了冗余事件的发生,在根据该第一事件集和该第二事件集对该服务器和该终端设备中的文件进行同步时,极大地降低了冲突事件发生的概率,提高了文件同步的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种文件同步方法的流程图;
图2是本发明实施例提供的一种文件同步方法的流程图;
图3是本发明实施例提供的一种文件同步装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的一种文件同步方法的流程图。该方法应用于电子设备中,参见图1,该方法包括:
101、通过该电子设备获取第一事件集和第二事件集,该第一事件集包括服务器中的文件发生的事件,该第二事件集包括终端设备中的文件发生的事件,文件发生的事件包括增事件和减事件中的至少一项。
102、当接收到同步指令时,根据该第一事件集和该第二事件集,对该服务器和该终端设备中的文件进行同步。
本发明实施例提供的方法,通过将文件发生的事件分为增事件和减事件两种,并通过电子设备获取服务器中文件发生的事件和终端设备中文件发生的事件,分别组成第一事件集和第二事件集,减少了冗余事件的发生,在根据该第一事件集和该第二事件集对该服务器和该终端设备中的文件进行同步时,极大地降低了冲突事件发生的概率,提高了文件同步的效率。
可选地,通过该电子设备获取第一事件集和第二事件集包括:
当该电子设备检测到该服务器中的第一文件发生变化时,获取该第一文件的变化类型,文件的变化类型包括创建、删除和修改;
根据该第一文件的变化类型,确定该第一文件发生的事件;
获取该服务器中发生变化的每个文件所发生的事件,得到该第一事件集。
可选地,通过该电子设备获取第一事件集和第二事件集包括:
当该电子设备检测到该终端设备中的第二文件发生变化时,获取该第二文件的变化类型;
根据该第二文件的变化类型,确定该第二文件发生的事件;
获取该终端设备中发生变化的每个文件所发生的事件,得到该第二事件集。
可选地,当接收到同步指令时,根据该第一事件集和该第二事件集,对该服务器和该终端设备中的文件进行同步包括:
当接收到同步指令时,根据该第一事件集和该第二事件集,确定执行事件集,该执行事件集包括该服务器和该终端设备中的文件待执行的事件;
根据该待执行事件集,对该服务器和该终端设备中的文件进行处理,使得该服务器中的文件与该终端设备中的文件同步。
可选地,当接收到同步指令时,根据该第一事件集和该第二事件集,对该服务器和该终端设备中的文件进行同步包括:
当该第一文件和该第二文件为相同的文件,且该第一事件集包括该第一文件发生的第一事件,该第二事件集包括该第二文件发生的第二事件时,根据该第一事件和该第二事件,分别对该第一文件和该第二文件进行处理,使得该第一文件和该第二文件同步。
可选地,根据该第一事件和该第二事件,分别对该第一文件和该第二文件进行处理,使得该第一文件和该第二文件同步包括:
当该第一事件和该第二事件均为增事件时,将该第二文件重新命名,并将该第一文件下载至该终端设备,将重命名后的第二文件上传至该服务器;或,
当该第一事件和该第二事件均为增事件时,将该第一文件重新命名,并将重命名后的第一文件下载至该终端设备,将该第二文件上传至该服务器;或,
当该第一事件为增事件,且该第二事件为减事件时,将该第一文件下载至该终端设备;或,
当该第一事件为减事件,且该第二事件为增事件时,将该第二文件上传至该服务器;或,
当该第一事件和该第二事件均为减事件时,将该第一文件和该第二文件删除。
可选地,该方法还包括:
当确定需要将该第二文件上传至该服务器时,获取该第二文件的哈希值;
判断该服务器中是否存在哈希值与该第二文件的哈希值相同的文件;
如果是,根据该第二文件的信息,对该服务器中哈希值与该第二文件的哈希值相同的文件的信息进行修改;
如果否,将该第二文件上传至该服务器。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图2是本发明实施例提供的一种文件同步方法的流程图,参见图2,该方法包括:
201、对于该服务器中的第一文件,以及该终端设备中与该第一文件相同的第二文件,该电子设备监控该第一文件和该第二文件的变化。
在本发明实施例中,该第一文件位于该服务器中,该第二文件位于该终端设备中,该第一文件和该第二文件为相同的文件,该电子设备分别监控该第一文件所发生的变化以及该第二文件所发生的变化。其中,两个文件相同是指两个文件的文件名称相同,且两个文件存储在对应的文件路径下。
本发明实施例仅是以该电子设备实时监控该第一文件和该第二文件的变化,以便对该第一文件和该第二文件进行同步为例进行说明,而在实际应用过程中,该电子设备还可以设置检测时长,每隔该检测时长后,获取当前的该第一文件和该第二文件,比较本次获取到的文件与上一次获取到的文件的差异,以确定该第一文件和该第二文件在该检测时长内发生的变化,本发明实施例对此不做限定。进一步地,该电子设备实际上可以监控该服务器中的所有文件的变化,以及该终端设备中所有文件的变化,以便对该服务器和该终端设备中的所有相同的文件进行同步,本发明实施例对此也不做限定。
202、当该电子设备检测到该第一文件发生变化时,获取该第一文件的变化类型,并根据该第一文件的变化类型,确定该第一文件发生的第一事件。
在本发明实施例中,文件的变化类型包括创建、删除和修改,当在该服务器中新创建了该第一文件时,该第一文件的变化类型即为创建类型。当在该服务器中对该第一文件进行了修改时,该第一文件的变化类型即为修改类型。当在该服务器中删除了该第一文件,或者,将该第一文件移动至其他的文件路径下,或者将该第一文件重命名为其他的名称时,该第一文件已不存在,该第一文件的变化类型即为删除类型,此时,虽然该服务器中已不存在该第一文件,但由于之前该服务器中保存过该第一文件,因此,仍需要确定该第一文件的变化类型。
本发明实施例将文件发生的事件分为增事件(+)和减事件(-)两种,则当该第一文件的变化类型为删除类型时,该第一文件发生的第一事件为减事件,当该第一文件的变化类型为创建类型和修改类型时,该第一文件发生的第一事件为增事件。当对该第一文件进行了多次修改时,由于每次修改时确定的第一事件均为增事件,则无需记录该第一文件多次修改的事件,只需确定该第一文件发生了增事件即可,减少了冗余事件的发生,提高了文件同步的效率。
进一步地,当该电子设备监控该服务器中的所有文件时,根据每个文件的变化类型,分别确定每个文件所发生的事件,将每个文件所发生的事件组成第一事件集。
203、当该电子设备检测到该第二文件发生变化时,获取该第二文件的变化类型,根据该第二文件的变化类型,确定该第二文件发生的第二事件。
该步骤203与该步骤202类似,在此不再赘述。
同理地,当该电子设备监控该终端设备中的所有文件时,根据每个文件的变化类型,分别确定每个文件所发生的事件,将每个文件所发生的事件组成第二事件集。
需要说明的是,该第一文件发生的第一事件与该第二文件发生的第二事件均与上下文无关,因此,根据该第一事件和该第二事件,对该第一文件和该第二文件进行处理后,即可保证该第一文件和该第二文件同步。
204、当该电子设备接收到同步指令时,根据该第一事件和该第二事件,分别对该第一文件和该第二文件进行处理,使得该第一文件和该第二文件同步。
其中,该同步指令可以由用户在该终端设备上触发,或者由用户设置预设时长,该电子设备根据该预设时长周期性地触发该同步指令,本发明实施例对此不做限定。进一步地,本发明实施例以步骤204在该步骤202和步骤203之后执行为例,实际上,该电子设备还可以在接收到同步指令时,检测该第一文件和该第二文件的变化,得到该第一事件和该第二事件后再对该第一文件和该第二文件进行处理,本发明实施例对此不做限定。
具体地,该步骤204可以包括以下步骤(1)-(5)中的任一项:
(1)当该第一事件和该第二事件均为增事件时,将该第二文件重新命名,并将该第一文件下载至该终端设备,将重命名后的第二文件上传至该服务器。
当该第一事件为增事件时,表示该第一文件可能为新创建的文件或者修改过的文件,也即是该第一文件发生了“增量变化”,当该第一事件和该第二事件均为增事件时,表明该服务器上的第一文件和该终端设备上的第二文件均发生了“增量变化”,此时,需要在该第一文件和该第二文件同步的同时,保留该第一文件和该第二文件,因此,可以将该第二文件重新命名,上传至该服务器,将该第一文件下载至该终端设备。
例如,该服务器和该终端设备中均保存有文件“a.txt”,且文件“a.txt”在该服务器中发生的第一事件为增事件,在该终端设备中发生的第二事件也是增事件,则将终端设备中的文件“a.txt”重命名为“a.conflict.txt”,上传至该服务器,将服务器中的文件“a.txt”下载至该终端设备,使得该服务器和该终端设备中均保存有文件“a.txt”和文件“a.conflict.txt”。
(2)当该第一事件和该第二事件均为增事件时,将该第一文件重新命名,并将重命名后的第一文件下载至该终端设备,将该第二文件上传至该服务器。
当该服务器上的第一文件和该终端设备上的第二文件均发生了“增量变化”,还可以将该第一文件重新命名,下载至该终端设备,将该第二文件上传至该服务器。基于步骤(1)的举例,还可以将服务器中的文件“a.txt”重命名为“a.conflict.txt”,下载至该终端设备,将该终端设备中的文件“a.txt”上传至该服务器,使得该服务器和该终端设备中均保存有文件“a.txt”和文件“a.conflict.txt”。
(3)当该第一事件为增事件,且该第二事件为减事件时,将该第一文件下载至该终端设备。
当该第二事件为减事件时,表示该第二文件被删除、被移动为另一文件或者被重命名为另一文件,即该第二文件发生了“减量变化”。当该第一事件为增事件,且该第二事件为减事件时,为了保证该服务器和该终端设备上的文件同步,将该第一文件下载至该终端设备。
(4)当该第一事件和该第二事件均为减事件时,将该第一文件和该第二文件删除。
当该第一事件和该第二事件均为减事件时,表示该第一文件和该第二文件均被删除、被移动为另一文件或者被重命名为另一文件,则不再需要对该第一文件和该第二文件同步。
(5)当该第一事件为减事件,且该第二事件为增事件时,将该第二文件上传至该服务器。
当该第一事件为减事件,且该第二事件为增事件时,表示该第一文件被删除、被移动为另一文件或者被重命名为另一文件,该第二文件被创建或者被修改,此时,需要在该第一文件和该第二文件同步的同时保留该第二文件,因此,将该第二文件上传至该服务器。
在步骤(5)中,该第一文件被删除、被移动为另一文件或者被重命名为另一文件,该电子设备确定将该第二文件上传至该服务器,但是,如果该第一文件被移动为另一文件或者被重命名为另一文件时,该服务器中已保存该另一文件,且该另一文件的内容与该第二文件的内容相同,并不需要将该第二文件上传至该服务器。
因此,为了避免上传不必要的文件,该电子设备可以在确定需要将该第二文件上传至该服务器时,获取该第二文件的哈希值;判断该服务器中是否存在哈希值与该第二文件的哈希值相同的文件;如果是,根据该第二文件的信息,对该服务器中哈希值与该第二文件的哈希值相同的文件的信息进行修改;如果否,将该第二文件上传至该服务器。
其中,两个文件的哈希值相同,表示两个文件的内容相同,即实质上是相同的文件。该电子设备获取该第二文件的哈希值,判断该服务器中是否存在哈希值与该第二文件的哈希值相同的文件,当该服务器中存在哈希值与该第二文件的哈希值相同的文件时,表明该服务器已保存与该第二文件相同的文件,只是可能被移动或者被重命名,因此,对该哈希值与该第二文件的哈希值相同的文件的信息进行修改,使得该文件的信息与该第二文件的信息相同。当该文件的名称与该第二文件的名称不同时,将该文件重命名为该第二文件的名称,当该文件的文件路径与该第二文件的文件路径不对应时,将该文件移动至该服务器中与该第二文件在该终端设备中的文件路径对应的文件路径下。另外,当该服务器中不存在哈希值与该第二文件的哈希值相同的文件时,再将该第二文件上传至该服务器。
可选地,该电子设备向该服务器发送hasHash(hash)请求,获取该服务器中是否存在哈希值与该第二文件的哈希值相同的文件的判断结果。当该服务器中存在哈希值与该第二文件的哈希值相同的文件时,调用修改信息的API(Application Program Interface,应用程序接口),对该文件的信息进行修改,当该服务器中不存在哈希值与该第二文件的哈希值相同的文件时,调用数据传输API,将该第二文件上传至该服务器。
在本发明实施例中,当该电子设备接收到该同步指令时,根据该第一事件和该第二事件,先确定该第一文件应该执行的事件和该第二文件应该执行的事件,再对该第一文件和该第二文件进行处理,使得该第一文件和该第二文件同步。对于该服务器和该终端设备中的所有文件,该电子设备获取该第一事件集和该第二事件集,当接收到同步指令时,可以先根据该第一事件集和该第二事件集,确定执行事件集,该执行事件集包括该服务器和该终端设备中的文件待执行的事件,再根据该执行事件集,对该服务器和该终端设备中的文件进行处理,使得该服务器中的文件与该终端设备中的文件同步。
本发明实施例提供的方法,通过将文件发生的事件分为增事件和减事件两种,并通过电子设备获取服务器中文件发生的事件和终端设备中文件发生的事件,分别组成第一事件集和第二事件集,减少了冗余事件的发生,在根据该第一事件集和该第二事件集对该服务器和该终端设备中的文件进行同步时,极大地降低了冲突事件发生的概率,提高了文件同步的效率。
图3是本发明实施例提供的一种文件同步装置结构示意图,参见图3,该装置包括:
事件集获取模块301,用于获取第一事件集和第二事件集,该第一事件集包括服务器中的文件发生的事件,该第二事件集包括终端设备中的文件发生的事件,文件发生的事件包括增事件和减事件中的至少一项;
同步模块302与事件集获取模块301连接,用于当接收到同步指令时,根据该第一事件集和该第二事件集,对该服务器和该终端设备中的文件进行同步。
该事件集获取模块301包括:
第一变化获取单元,用于当该电子设备检测到该服务器中的第一文件发生变化时,获取该第一文件的变化类型,文件的变化类型包括创建、删除和修改;
第一事件获取单元,用于根据该第一文件的变化类型,确定该第一文件发生的事件;
第一事件集获取单元,用于获取该服务器中发生变化的每个文件所发生的事件,得到该第一事件集。
该事件集获取模块301包括:
第二变化获取单元,用于当该电子设备检测到该终端设备中的第二文件发生变化时,获取该第二文件的变化类型;
第二事件获取单元,用于根据该第二文件的变化类型,确定该第二文件发生的事件;
第二事件集获取单元,用于获取该终端设备中发生变化的每个文件所发生的事件,得到该第二事件集。
该同步模块302包括:
执行事件集确定单元,用于当接收到同步指令时,根据该第一事件集和该第二事件集,确定执行事件集,该执行事件集包括该服务器和该终端设备中的文件待执行的事件;
第一同步单元,用于根据该执行事件集,对该服务器和该终端设备中的文件进行处理,使得该服务器中的文件与该终端设备中的文件同步。
该同步模块302包括:
第二同步单元,用于当该第一文件和该第二文件为相同的文件,且该第一事件集包括该第一文件发生的第一事件,该第二事件集包括该第二文件发生的第二事件时,根据该第一事件和该第二事件,分别对该第一文件和该第二文件进行处理,使得该第一文件和该第二文件同步。
该第二同步单元用于当该第一事件和该第二事件均为增事件时,将该第二文件重新命名,并将该第一文件下载至该终端设备,将重命名后的第二文件上传至该服务器;或,当该第一事件和该第二事件均为增事件时,将该第一文件重新命名,并将重命名后的第一文件下载至该终端设备,将该第二文件上传至该服务器;或,当该第一事件为增事件,且该第二事件为减事件时,将该第一文件下载至该终端设备;或,当该第一事件为减事件,且该第二事件为增事件时,将该第二文件上传至该服务器;或,当该第一事件和该第二事件均为减事件时,将该第一文件和该第二文件删除。
该装置还包括:
哈希值获取模块,用于当确定需要将该第二文件上传至该服务器时,获取该第二文件的哈希值;
判断模块。用于判断该服务器中是否存在哈希值与该第二文件的哈希值相同的文件;
信息修改模块,用于当该服务器中存在哈希值与该第二文件的哈希值相同的文件,根据该第二文件的信息,对该服务器中哈希值与该第二文件的哈希值相同的文件的信息进行修改;
上传模块,用于当该服务器中不存在哈希值与该第二文件的哈希值相同的文件,将该第二文件上传至该服务器。
本发明实施例提供的装置,通过将文件发生的事件分为增事件和减事件两种,并通过电子设备获取服务器中文件发生的事件和终端设备中文件发生的事件,分别组成第一事件集和第二事件集,减少了冗余事件的发生,在根据该第一事件集和该第二事件集对该服务器和该终端设备中的文件进行同步时,极大地降低了冲突事件发生的概率,提高了文件同步的效率。
需要说明的是:上述实施例提供的文件同步装置在文件同步时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的文件同步装置与文件同步方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种文件同步方法,应用于电子设备中,其特征在于,所述方法包括:
通过所述电子设备获取第一事件集和第二事件集,所述第一事件集包括服务器中的文件发生的事件,所述第二事件集包括终端设备中的文件发生的事件,文件发生的事件包括增事件和减事件中的至少一项;
当接收到同步指令时,根据所述第一事件集和所述第二事件集,对所述服务器和所述终端设备中的文件进行同步。
2.根据权利要求1所述的方法,其特征在于,通过所述电子设备获取第一事件集和第二事件集包括:
当所述电子设备检测到所述服务器中的第一文件发生变化时,获取所述第一文件的变化类型,文件的变化类型包括创建、删除和修改;
根据所述第一文件的变化类型,确定所述第一文件发生的事件;
获取所述服务器中发生变化的每个文件所发生的事件,得到所述第一事件集。
3.根据权利要求1所述的方法,其特征在于,通过所述电子设备获取第一事件集和第二事件集包括:
当所述电子设备检测到所述终端设备中的第二文件发生变化时,获取所述第二文件的变化类型;
根据所述第二文件的变化类型,确定所述第二文件发生的事件;
获取所述终端设备中发生变化的每个文件所发生的事件,得到所述第二事件集。
4.根据权利要求1所述的方法,其特征在于,当接收到同步指令时,根据所述第一事件集和所述第二事件集,对所述服务器和所述终端设备中的文件进行同步包括:
当接收到同步指令时,根据所述第一事件集和所述第二事件集,确定执行事件集,所述执行事件集包括所述服务器和所述终端设备中的文件待执行的事件;
根据所述执行事件集,对所述服务器和所述终端设备中的文件进行处理,使得所述服务器中的文件与所述终端设备中的文件同步。
5.根据权利要求1所述的方法,其特征在于,当接收到同步指令时,根据所述第一事件集和所述第二事件集,对所述服务器和所述终端设备中的文件进行同步包括:
当所述第一文件和所述第二文件为相同的文件,且所述第一事件集包括所述第一文件发生的第一事件,所述第二事件集包括所述第二文件发生的第二事件时,根据所述第一事件和所述第二事件,分别对所述第一文件和所述第二文件进行处理,使得所述第一文件和所述第二文件同步。
6.根据权利要求5所述的方法,其特征在于,根据所述第一事件和所述第二事件,分别对所述第一文件和所述第二文件进行处理,使得所述第一文件和所述第二文件同步包括:
当所述第一事件和所述第二事件均为增事件时,将所述第二文件重新命名,并将所述第一文件下载至所述终端设备,将重命名后的第二文件上传至所述服务器;或,
当所述第一事件和所述第二事件均为增事件时,将所述第一文件重新命名,并将重命名后的第一文件下载至所述终端设备,将所述第二文件上传至所述服务器;或,
当所述第一事件为增事件,且所述第二事件为减事件时,将所述第一文件下载至所述终端设备;或,
当所述第一事件为减事件,且所述第二事件为增事件时,将所述第二文件上传至所述服务器;或,
当所述第一事件和所述第二事件均为减事件时,将所述第一文件和所述第二文件删除。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
当确定需要将所述第二文件上传至所述服务器时,获取所述第二文件的哈希值;
判断所述服务器中是否存在哈希值与所述第二文件的哈希值相同的文件;
如果是,根据所述第二文件的信息,对所述服务器中哈希值与所述第二文件的哈希值相同的文件的信息进行修改;
如果否,将所述第二文件上传至所述服务器。
8.一种文件同步装置,应用于电子设备中,其特征在于,所述装置包括:
事件集获取模块,用于获取第一事件集和第二事件集,所述第一事件集包括服务器中的文件发生的事件,所述第二事件集包括终端设备中的文件发生的事件,文件发生的事件包括增事件和减事件中的至少一项;
同步模块,用于当接收到同步指令时,根据所述第一事件集和所述第二事件集,对所述服务器和所述终端设备中的文件进行同步。
9.根据权利要求8所述的装置,其特征在于,所述事件集获取模块包括:
第一变化获取单元,用于当所述电子设备检测到所述服务器中的第一文件发生变化时,获取所述第一文件的变化类型,文件的变化类型包括创建、删除和修改;
第一事件获取单元,用于根据所述第一文件的变化类型,确定所述第一文件发生的事件;
第一事件集获取单元,用于获取所述服务器中发生变化的每个文件所发生的事件,得到所述第一事件集。
10.根据权利要求8所述的装置,其特征在于,所述事件集获取模块包括:
第二变化获取单元,用于当所述电子设备检测到所述终端设备中的第二文件发生变化时,获取所述第二文件的变化类型;
第二事件获取单元,用于根据所述第二文件的变化类型,确定所述第二文件发生的事件;
第二事件集获取单元,用于获取所述终端设备中发生变化的每个文件所发生的事件,得到所述第二事件集。
11.根据权利要求8所述的装置,其特征在于,所述同步模块包括:
执行事件集确定单元,用于当接收到同步指令时,根据所述第一事件集和所述第二事件集,确定执行事件集,所述执行事件集包括所述服务器和所述终端设备中的文件待执行的事件;
第一同步单元,用于根据所述执行事件集,对所述服务器和所述终端设备中的文件进行处理,使得所述服务器中的文件与所述终端设备中的文件同步。
12.根据权利要求8所述的装置,其特征在于,所述同步模块包括:
第二同步单元,用于当所述第一文件和所述第二文件为相同的文件,且所述第一事件集包括所述第一文件发生的第一事件,所述第二事件集包括所述第二文件发生的第二事件时,根据所述第一事件和所述第二事件,分别对所述第一文件和所述第二文件进行处理,使得所述第一文件和所述第二文件同步。
13.根据权利要求12所述的装置,其特征在于,所述第二同步单元用于当所述第一事件和所述第二事件均为增事件时,将所述第二文件重新命名,并将所述第一文件下载至所述终端设备,将重命名后的第二文件上传至所述服务器;或,当所述第一事件和所述第二事件均为增事件时,将所述第一文件重新命名,并将重命名后的第一文件下载至所述终端设备,将所述第二文件上传至所述服务器;或,当所述第一事件为增事件,且所述第二事件为减事件时,将所述第一文件下载至所述终端设备;或,当所述第一事件为减事件,且所述第二事件为增事件时,将所述第二文件上传至所述服务器;或,当所述第一事件和所述第二事件均为减事件时,将所述第一文件和所述第二文件删除。
14.根据权利要求8-13任一项所述的装置,其特征在于,所述装置还包括:
哈希值获取模块,用于当确定需要将所述第二文件上传至所述服务器时,获取所述第二文件的哈希值;
判断模块。用于判断所述服务器中是否存在哈希值与所述第二文件的哈希值相同的文件;
信息修改模块,用于当所述服务器中存在哈希值与所述第二文件的哈希值相同的文件,根据所述第二文件的信息,对所述服务器中哈希值与所述第二文件的哈希值相同的文件的信息进行修改;
上传模块,用于当所述服务器中不存在哈希值与所述第二文件的哈希值相同的文件,将所述第二文件上传至所述服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410085630.3A CN103902663A (zh) | 2014-03-10 | 2014-03-10 | 文件同步方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410085630.3A CN103902663A (zh) | 2014-03-10 | 2014-03-10 | 文件同步方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103902663A true CN103902663A (zh) | 2014-07-02 |
Family
ID=50993985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410085630.3A Pending CN103902663A (zh) | 2014-03-10 | 2014-03-10 | 文件同步方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103902663A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108234554A (zh) * | 2016-12-15 | 2018-06-29 | 北京金山云网络技术有限公司 | 一种云文件编辑方法及装置 |
CN109688176A (zh) * | 2017-10-18 | 2019-04-26 | 腾讯科技(深圳)有限公司 | 一种文件同步方法及终端、网络设备、存储介质 |
CN111787082A (zh) * | 2020-06-22 | 2020-10-16 | 珠海格力电器股份有限公司 | 一种多级业务数据上报的方法、设备及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101281543A (zh) * | 2008-05-13 | 2008-10-08 | 华为技术有限公司 | 文件同步方法及装置 |
CN101763421A (zh) * | 2009-12-24 | 2010-06-30 | 山东中创软件商用中间件股份有限公司 | 一种文件同步方法和装置 |
CN102457549A (zh) * | 2010-10-28 | 2012-05-16 | 盛乐信息技术(上海)有限公司 | 多个网络存储装置的数据同步系统及方法 |
CN102801783A (zh) * | 2012-06-29 | 2012-11-28 | 张建忠 | 一种本地云存储方法及系统 |
CN102821111A (zh) * | 2012-09-07 | 2012-12-12 | 普华基础软件股份有限公司 | 文件云存储实时同步方法 |
CN202737922U (zh) * | 2012-06-29 | 2013-02-13 | 张建忠 | 一种本地云存储系统 |
CN102946411A (zh) * | 2012-10-15 | 2013-02-27 | 北京奇虎科技有限公司 | 网络同步系统 |
CN103442042A (zh) * | 2013-08-14 | 2013-12-11 | 福建天晴数码有限公司 | 增量数据同步方法及系统 |
-
2014
- 2014-03-10 CN CN201410085630.3A patent/CN103902663A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101281543A (zh) * | 2008-05-13 | 2008-10-08 | 华为技术有限公司 | 文件同步方法及装置 |
CN101763421A (zh) * | 2009-12-24 | 2010-06-30 | 山东中创软件商用中间件股份有限公司 | 一种文件同步方法和装置 |
CN102457549A (zh) * | 2010-10-28 | 2012-05-16 | 盛乐信息技术(上海)有限公司 | 多个网络存储装置的数据同步系统及方法 |
CN102801783A (zh) * | 2012-06-29 | 2012-11-28 | 张建忠 | 一种本地云存储方法及系统 |
CN202737922U (zh) * | 2012-06-29 | 2013-02-13 | 张建忠 | 一种本地云存储系统 |
CN102821111A (zh) * | 2012-09-07 | 2012-12-12 | 普华基础软件股份有限公司 | 文件云存储实时同步方法 |
CN102946411A (zh) * | 2012-10-15 | 2013-02-27 | 北京奇虎科技有限公司 | 网络同步系统 |
CN103442042A (zh) * | 2013-08-14 | 2013-12-11 | 福建天晴数码有限公司 | 增量数据同步方法及系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108234554A (zh) * | 2016-12-15 | 2018-06-29 | 北京金山云网络技术有限公司 | 一种云文件编辑方法及装置 |
CN108234554B (zh) * | 2016-12-15 | 2021-05-25 | 北京金山云网络技术有限公司 | 一种云文件编辑方法及装置 |
CN109688176A (zh) * | 2017-10-18 | 2019-04-26 | 腾讯科技(深圳)有限公司 | 一种文件同步方法及终端、网络设备、存储介质 |
CN109688176B (zh) * | 2017-10-18 | 2022-01-11 | 腾讯科技(深圳)有限公司 | 一种文件同步方法及终端、网络设备、存储介质 |
CN111787082A (zh) * | 2020-06-22 | 2020-10-16 | 珠海格力电器股份有限公司 | 一种多级业务数据上报的方法、设备及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9992220B2 (en) | Graphical display of events indicating security threats in an information technology system | |
CN102360410B (zh) | 一种文件系统的用户操作发现方法和装置 | |
US9727625B2 (en) | Parallel transaction messages for database replication | |
US7953710B2 (en) | Multi-master database synchronization without loss of convergence | |
CN111399873A (zh) | 一种模型更新方法及装置 | |
CN103473277A (zh) | 文件系统的快照方法和装置 | |
CN111190962B (zh) | 一种文件同步方法、装置及本地终端 | |
CN104320325A (zh) | 一种消息推送方法及装置 | |
CN105306581A (zh) | 一种基于路由器和云盘数据同步的方法 | |
CN105320577B (zh) | 一种数据备份和恢复方法、系统及装置 | |
CN110650164A (zh) | 文件的上传方法、装置、终端以及计算机存储介质 | |
CN105450682A (zh) | 一种用于数据同步保存、向客户端同步数据的方法、装置和系统 | |
CN103902663A (zh) | 文件同步方法和装置 | |
CN107577798B (zh) | 一种快照创建方法、装置及计算机可读存储介质 | |
CN105373452A (zh) | 一种数据备份方法 | |
CN104079623A (zh) | 多级云存储同步控制方法及系统 | |
CN111666266A (zh) | 一种数据迁移方法及相关设备 | |
WO2015085901A1 (zh) | 一种文件传输方法、设备以及相关系统 | |
CN105721520A (zh) | 一种文件同步方法及装置 | |
CN105335186A (zh) | 数据下载管理方法及系统 | |
CN104572339A (zh) | 基于分布式文件系统的数据备份还原系统及方法 | |
CN103823701B (zh) | 一种移动终端产品版本自动升级控制方法 | |
CN103118092B (zh) | 单次登录实现方法和装置 | |
CN104065613B (zh) | 一种应用的离线操作数据的同步方法、系统及装置 | |
WO2017067397A1 (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140702 |