CN102811260B - 文件云同步***及方法 - Google Patents
文件云同步***及方法 Download PDFInfo
- Publication number
- CN102811260B CN102811260B CN201210284873.0A CN201210284873A CN102811260B CN 102811260 B CN102811260 B CN 102811260B CN 201210284873 A CN201210284873 A CN 201210284873A CN 102811260 B CN102811260 B CN 102811260B
- Authority
- CN
- China
- Prior art keywords
- user terminal
- metadata information
- information table
- file
- server
- 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
- 238000000034 method Methods 0.000 title claims abstract description 18
- 230000001360 synchronised effect Effects 0.000 claims description 10
- 230000009471 action Effects 0.000 claims description 9
- 238000011160 research Methods 0.000 claims description 4
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011191 terminal modification Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及文件同步技术领域,公开了一种文件云同步方法,建立元数据信息表;执行用户对文件的操作指令,并根据用户的每一次操作都生成新的操作码,同时更新元数据信息表;将用户终端保存的操作码与服务器的保存的操作码做比较,如果小于服务器保存的操作码,则表明用户的云存储空间有更新,需要同步,并根据操作码的差值执行同步更新。本发明还提供一种文件云同步***。通过采用本发明的技术方案,可以实现一种简单、高效、便于管理、易扩展的机制,有效的实现不同终端间的文件同步。
Description
技术领域
本发明涉及文件同步技术领域,特别是涉及一种文件云同步***及方法。
背景技术
文件同步的需求自PC出现并大规模普及之后就随之而来,过去的软盘,现在的U盘、移动硬盘,包括MSN,Email、QQ等即时通讯工具,都是人们同步、分享文件的主要途径。进入云的时代,云存储来帮助人们存储文件、管理文件、同步文件、分享文件,有自己得天独厚的优势与便捷性。人们不需要去来回比较文件的差异性,选择、拖动、拷贝文件,所有的事情云存储在后台悄无声息的完成。目前,华为网盘、酷盘等云存储产品都可以实现多终端间文件同步的功能。
随着移动办公、移动互联网的迅速发展,人们会通过不同的终端(例如笔记本、ipad、智能手机等)编辑、使用同一文件。如何让这些不同终端上的同一文件保持同步,是一个非常现实的问题。
目前利用云存储的自动同步备份功能是一个比较流行的解决方案。例如,用户在笔记本上创建并且编辑了一个doc文档,自动同步到云存储空间。当用户使用智能手机的时候,可以通过云存储空间把该doc文档下载到手机存储卡上,实现了笔记本和手机的文件同步。
实现多终端的同步,就要记录不同终端保存文件的差异。现在的做法是通过比较文件元数据信息,或者将元数据信息的变化记录到log日志中,来发现客户端和服务器数据的差异,并进一步同步这些差异化的文件。这里,元数据是一组信息的集合,用于标识用户的文件特征属性,包括文件名、路径、修改时间、作者、权限、内容、hash值等内容。
这种做法存在几点问题:
在云存储平台上,文件元数据信息量很大,搜索匹配会带来大量的***开销,影响服务器性能;元数据信息无法记录增量,A终端修改了一个文件,B终端只能重新下载,无法做到只下载增量部分,这样会加大服务器IO和带宽压力;数据结构复杂,不易扩展;由于元数据信息记录的是最终状态,无法做到历史版本和记录的追踪、还原。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何设计一种用于在不同的终端之间执行文件同步处理的简单、高效的方案。
(二)技术方案
为了解决上述技术问题,本发明提供一种文件云同步方法,所述方法包括步骤:
S1、在服务器端以及多个用户终端分别建立元数据信息表,服务器端的元数据信息表中包含服务器操作码,各个用户终端的元数据信息表中包含用户终端操作码;所述元数据信息表存储于云存储空间中
S2、执行当前所使用的用户终端对文件的操作指令,并根据当前所使用的用户终端的每一次操作,同时更新服务器端和当前所使用的用户终端的元数据信息表;
S3、将当前所使用的用户终端的用户终端操作码与服务器端操作码做比较,如果前者小于后者,则根据二者的差值执行当前所使用的用户终端中元数据信息表的更新;
其中,所述元数据信息表存储于云存储空间中。
优选地,所述服务器端以及多个用户终端的元数据信息表中还包括文件编号、内容编码、父节点ID、文件名以及操作类别中的至少一个。
优选地,所述文件编号是文件的唯一标记号。
优选地,服务器操作码和用户终端操作码的初始值均为0,且每执行一次文件操作,服务器操作码和用户终端操作码的值都分别加1。
优选地,所述操作类别包括对文件的创建、修改、重命名、移动、删除动作中的一种。
优选地,所述元数据信息表存储于云存储空间中。
本发明还提供了一种文件云同步***,包括管理模块、操作模块以及同步模块,其中,
所述管理模块用于在服务器端以及多个用户终端分别建立元数据信息表,服务器端的元数据信息表中包含服务器操作码,各个用户终端的元数据信息表中包含用户终端操作码;所述元数据信息表存储于云存储空间中;
所述操作模块用于执行当前所使用的用户终端对文件的操作指令,并根据当前所使用的用户终端的每一次操作,同时更新服务器端和当前所使用的用户终端的元数据信息表;
所述同步模块用于将当前所使用的用户终端的用户终端操作码与服务器端操作码做比较,如果前者小于后者,则根据二者的差值执行当前所使用的用户终端中元数据信息表的更新。
(三)有益效果
上述技术方案具有如下优点:本发明的方案在云存储平台上实现一种简单、高效、便于管理、易扩展的机制,有效地实现了不同终端间的文件同步。
附图说明
图1是本发明的***结构示意图;
图2是本发明的方法流程图;
图3是本发明的方法使用场景示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,本发明的一个实施例提供一种文件云同步***,用于在不同的终端之间执行文件同步处理,具体包括:管理模块11、操作模块13以及同步模块15,其中,管理模块11用于在服务器端以及多个用户终端分别建立元数据信息表,服务器端的元数据信息表中包含服务器操作码,各个用户终端的元数据信息表中包含用户终端操作码,所述元数据信息表存储于云存储空间中。管理模块11还管理用户云存储空间,为在用户终端所创建的每个文件分配唯一的文件编号,并将文件编号添加到对应的元数据信息表中;操作模块13,用于执行当前所使用的用户终端对文件的操作指令,并根据当前所使用的用户终端的每一次操作,同时更新服务器端和当前所使用的用户终端的元数据信息表;同步模块15,用于将当前所使用的用户终端的用户终端操作码与服务器端操作码做比较,如果前者小于后者,则表明云存储空间有更新,需要同步,则根据二者的差值执行当前所使用的用户终端中元数据信息表的更新。
其中,文件编号(fileGuid),是文件的唯一标记号,不会重复,伴随文件的整个生命周期。当一个文件被创建的时候,fileGuid由服务器生成并分配,修改、移动、重命名等做操作不会改变fileGuid,直至文件被删除;操作码(OperationCode),用于标识用户针对元数据信息的每一次操作,用户的每一操作都对应一个操作码,操作码是一个递增序列。唯一的文件编号的产生在现有的技术中有多种实现手段,例如在UGID中,根据用户的MAC地址结合当前时间以及一串随机整数可产生的唯一编码来作为文件编号,对此,本发明采用现有成熟的技术实现文件编号的生成,故对如何生成文件编号本发明将不再多做赘述。
本发明同时提供一种文件云同步方法,如图2所示,所述方法具体包括如下步骤:
步骤21,在服务器端以及多个用户终端分别建立元数据信息表,服务器端的元数据信息表中包含服务器操作码,各个用户终端的元数据信息表中包含用户终端操作码,所述元数据信息表存储于云存储空间中。此步骤由管理模块11执行。
本发明提供的一种具体实施场景如图3所示,用户具有多台终端设备,办公室的台式机为用户终端A、个人笔记本为用户终端B,智能手机为用户终端C。初始化的时候,该用户的云存储空间是空的,用户终端A、B、C对应的为同一云存储空间,用户登录以后,服务器针对该用户建立元数据信息表,并且在每个用户终端中也分别建立元数据信息表。A的本地操作码(为上述的用户终端操作码,以下简称操作码A)、B的本地操作码(以下简称操作码B)、C的本地操作码(以下简称操作码C)以及服务器操作码都为初始码0。元数据信息表内的主要参数包括用户的文件编号、内容编码、父节点ID、文件名,操作码以及操作类别等,所述元数据信息表在初始化时如表1所示:
FileGuid | ContentGuid | ParentID | Filename | OperationCode | Action |
表1元数据信息表
表1中各参数定义如下:
FileGuid,文件编号,由服务器生成并分配,全球唯一。
ContentGuid,内容编码,由服务器生成并分配,全球唯一。如果是文件夹,则该表项为空。
ParentID,父节点ID。
Filename,文件名。
OperationCode,操作码,用户在每一次操作后加1。
Action,操作类别,包括创建、修改、重命名、移动、删除。
步骤22,执行当前所使用的用户终端对文件的操作指令,并根据当前所使用的用户终端的每一次操作,同时更新服务器端和当前所使用的用户终端的元数据信息表。此步骤由操作模块13执行。
如图3的所示场景中,当用户使用用户终端A创建了一个名为“work”的文件夹,服务器上元数据信息表更新如表2所示:
FileGuid | ContentGuid | ParentID | Filename | OperationCode | Action |
409B5A3678 | / | work | 1 | 创建 |
表2更新后的元数据信息表
用户使用终端A创建了一个名为“project.ppt”的文件,服务器上元数据信息表更新为:
FileGuid | ContentGuid | ParentID | Filename | OperationCode | Action |
409B5A3678 | / | work | 1 | 创建 | |
3241CV018N | 342FSD9X76 | / | project.ppt | 2 | 创建 |
表3更新后的元数据信息表
用户使用终端A将“project.ppt”文件移动到“work”文件夹中,服务器上元数据信息表更新为:
FileGuid | ContentGuid | ParentID | Filename | OperationCode | Action |
409B5A3678 | / | work | 1 | 创建 | |
3241CV018N | 342FSD9X76 | / | project.ppt | 2 | 创建 |
3241CV018N | 342FSD9X76 | 409B5A3678 | project.ppt | 3 | 移动 |
表4更新后的元数据信息表
此时终端A的操作码A=服务器操作码=3,这意味着终端A的数据和服务器同步。
步骤23,将当前所使用的用户终端的用户终端操作码与服务器端操作码做比较,如果前者小于后者,则表明云存储空间有更新,需要同步,则根据二者的差值执行当前所使用的用户终端中元数据信息表的更新。此步骤由同步模块15执行。
如图3所示,当用户再使用终端B登录,终端B发送操作码B=0给服务器,服务器根据自身保存的元数据信息表比对后发现自身操作码=3,操作码B<服务器操作码,通知终端B执行服务器操作码1-3之间的更新。
更新结束后,操作码B=服务器操作码=3,意味着终端B也和服务器同步。
后续,用户继续使用终端B对自身的文件进行整理,将“project.ppt”重命名为“project_cloud.ppt”,服务器上元数据信息表更新为:
FileGuid | ContentGuid | ParentID | Filename | OperationCode | Action |
409B5A3678 | / | Work | 1 | 创建 | |
3241CV018N | 342FSD9X76 | / | project.ppt | 2 | 创建 |
3241CV018N | 342FSD9X76 | 409B5A3678 | project.ppt | 3 | 移动 |
3241CV018N | 342FSD9X76 | 409B5A3678 | project_cloud.ppt | 4 | 重命名 |
表5更新后的元数据信息表
用户使用终端B修改“project_cloud.ppt”文件,添加了几页内容,服务器为其重新分配了ContentGuid,服务器上元数据信息表更新为:
FileGuid | ContentGuid | ParentID | Filename | OperationCode | Action |
409B5A3678 | / | Work | 1 | 创建 | |
3241CV018N | 342FSD9X76 | / | project.ppt | 2 | 创建 |
3241CV018N | 342FSD9X76 | 409B5A3678 | project.ppt | 3 | 移动 |
3241CV018N | 342FSD9X76 | 409B5A3678 | project_cloud.ppt | 4 | 重命名 |
3241CV018N | WER808234 | 409B5A3678 | project_cloud.ppt | 5 | 修改 |
表6更新后的元数据信息表
当后续用户再使用终端A登录云存储***时,发送操作码A=3给服务器,服务器比对后发现操作码A<服务器操作码,通知终端A执行服务器操作码3-5之间的更新。
当执行到OperationCode=5这一项的时候,发现ContentGuid变化了,此时仅需要更新ContentGuid=342F SD9X76到ContentGuid=WER808234之间的增量数据。
更新结束后,用户终端A操作码A=服务器操作码=5,意味着终端A也和服务器同步。
这样,根据服务器保存的用户元数据信息表,在用户使用的任一终端上均可以追溯“project_cloud.ppt”历史版本的变化:
a)x年x月x日在根目录创建“project.ppt”文件。
b)x年x月x日“project.ppt”文件移动到“work”目录下。
c)x年x月x日“project.ppt”文件改名为“project_cloud.ppt”文件。
d)x年x月x日“project_cloud.ppt”被修改,添加了xxx内容。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。
Claims (5)
1.一种文件云同步方法,其特征在于,所述方法包括步骤:
S1、在服务器端以及多个用户终端分别建立元数据信息表,服务器端的元数据信息表中包含服务器操作码,各个用户终端的元数据信息表中包含用户终端操作码;
S2、执行当前所使用的用户终端对文件的操作指令,并根据当前所使用的用户终端的每一次操作,同时更新服务器端和当前所使用的用户终端的元数据信息表;
S3、将当前所使用的用户终端的用户终端操作码与服务器端操作码做比较,如果前者小于后者,则根据二者的差值执行当前所使用的用户终端中元数据信息表的更新;
其中,所述元数据信息表存储于云存储空间中,服务器操作码和用户终端操作码的初始值均为0,且每执行一次文件操作,服务器操作码和用户终端操作码的值都分别加1。
2.根据权利要求1所述的方法,其特征在于,所述服务器端以及多个用户终端的元数据信息表中还包括文件编号、内容编码、父节点ID、文件名以及操作类别中的至少一个。
3.根据权利要求2所述的方法,其特征在于,所述文件编号是文件的唯一标记号。
4.根据权利要求2或3所述的方法,其特征在于,所述操作类别包括对文件的创建、修改、重命名、移动、删除动作中的一种。
5.一种文件同步***,其特征在于,包括管理模块、操作模块以及同步模块,其中,
所述管理模块用于在服务器端以及多个用户终端分别建立元数据信息表,服务器端的元数据信息表中包含服务器操作码,各个用户终端的元数据信息表中包含用户终端操作码;所述元数据信息表存储于云存储空间中;
所述操作模块用于执行当前所使用的用户终端对文件的操作指令,并根据当前所使用的用户终端的每一次操作,同时更新服务器端和当前所使用的用户终端的元数据信息表;
所述同步模块用于将当前所使用的用户终端的用户终端操作码与服务器端操作码做比较,如果前者小于后者,则根据二者的差值执行当前所使用的用户终端中元数据信息表的更新;
其中,所述元数据信息表存储于云存储空间中,服务器操作码和用户终端操作码的初始值均为0,且每执行一次文件操作,服务器操作码和用户终端操作码的值都分别加1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210284873.0A CN102811260B (zh) | 2012-08-10 | 2012-08-10 | 文件云同步***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210284873.0A CN102811260B (zh) | 2012-08-10 | 2012-08-10 | 文件云同步***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102811260A CN102811260A (zh) | 2012-12-05 |
CN102811260B true CN102811260B (zh) | 2015-04-15 |
Family
ID=47234833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210284873.0A Active CN102811260B (zh) | 2012-08-10 | 2012-08-10 | 文件云同步***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102811260B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102857570A (zh) * | 2012-09-13 | 2013-01-02 | 清华大学 | 文件的云同步方法及云存储服务器 |
CN103152398B (zh) * | 2013-02-07 | 2016-05-11 | 中国科学院计算技术研究所 | 一种多终端文件间的文件同步方法及*** |
CN103986738B (zh) * | 2013-02-07 | 2018-10-16 | 百度在线网络技术(北京)有限公司 | 一种多终端间的同步方法及*** |
CN103281798A (zh) * | 2013-05-30 | 2013-09-04 | 腾讯科技(深圳)有限公司 | 一种实现修改同步的方法、装置及*** |
CN103841180B (zh) * | 2014-01-17 | 2018-07-03 | 北京京东尚科信息技术有限公司 | 一种基于操作指令的网络数据同步方法、装置、终端设备和服务器 |
CN104866497B (zh) * | 2014-02-24 | 2018-06-15 | 华为技术有限公司 | 分布式文件***列式存储的元数据更新方法、装置、主机 |
CN104102692A (zh) * | 2014-06-19 | 2014-10-15 | 肖龙旭 | 基于日志的电子文档追踪方法 |
CN105956491B (zh) * | 2016-05-19 | 2018-12-18 | 北京春鸿科技有限公司 | 对公有云存储***的数据进行多账号备份的方法及*** |
CN107645532B (zh) | 2016-07-22 | 2020-07-24 | 腾讯科技(深圳)有限公司 | 混合云的用户管理方法和装置 |
CN106302732A (zh) * | 2016-08-16 | 2017-01-04 | 瓦戈科技(上海)有限公司 | 多终端设备间同步照片的方法 |
CN107357864B (zh) * | 2017-06-30 | 2021-02-19 | 联想(北京)有限公司 | 一种文件处理方法及终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453418A (zh) * | 2007-12-05 | 2009-06-10 | 高德软件有限公司 | 客户端与服务器同步的更新方法 |
CN101706781A (zh) * | 2009-09-29 | 2010-05-12 | 北京星网锐捷网络技术有限公司 | 一种数据库缓存集中管理方法和*** |
CN102541941A (zh) * | 2010-12-31 | 2012-07-04 | 上海可鲁***软件有限公司 | 一种多方协同操作文件的版本管理控制方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459503A (zh) * | 2007-12-12 | 2009-06-17 | 华为技术有限公司 | 一种实现数据同步的方法和装置 |
CN101291342A (zh) * | 2008-06-18 | 2008-10-22 | 中兴通讯股份有限公司 | 一种分布式体系中的数据同步方法及*** |
CN102480494B (zh) * | 2010-11-23 | 2014-04-02 | 金蝶软件(中国)有限公司 | 一种文件更新的方法、装置及*** |
CN102355478B (zh) * | 2011-07-12 | 2013-08-14 | 北京大学 | 基于半分布式实时协同编辑软件的协同处理方法 |
CN102360410B (zh) * | 2011-09-30 | 2014-03-19 | 许式伟 | 一种文件***的用户操作发现方法和装置 |
-
2012
- 2012-08-10 CN CN201210284873.0A patent/CN102811260B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453418A (zh) * | 2007-12-05 | 2009-06-10 | 高德软件有限公司 | 客户端与服务器同步的更新方法 |
CN101706781A (zh) * | 2009-09-29 | 2010-05-12 | 北京星网锐捷网络技术有限公司 | 一种数据库缓存集中管理方法和*** |
CN102541941A (zh) * | 2010-12-31 | 2012-07-04 | 上海可鲁***软件有限公司 | 一种多方协同操作文件的版本管理控制方法 |
Non-Patent Citations (1)
Title |
---|
魏建华.智能移动终端软件平台及其数据同步的研究.《中国优秀博硕士学位论文全文数据库 (硕士) 信息科技辑》.2005,第50-59页. * |
Also Published As
Publication number | Publication date |
---|---|
CN102811260A (zh) | 2012-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102811260B (zh) | 文件云同步***及方法 | |
CN102857570A (zh) | 文件的云同步方法及云存储服务器 | |
CN102790760B (zh) | 安全网盘***中一种基于目录树的数据同步方法 | |
CN102915336B (zh) | 一种基于时间戳和日志的增量数据捕获和抽取方法 | |
CN103841180B (zh) | 一种基于操作指令的网络数据同步方法、装置、终端设备和服务器 | |
US8495022B1 (en) | Systems and methods for synthetic backups | |
CN110879813A (zh) | 一种基于二进制日志解析的MySQL数据库增量同步实现方法 | |
JP2014526748A (ja) | 効率的なデータ回復 | |
CN107256182A (zh) | 一种数据库还原的方法及设备 | |
WO2010150277A4 (en) | A method and system for directory management | |
CN103731483A (zh) | 一种基于云计算的虚拟文件*** | |
CN104156278A (zh) | 一种文件版本控制***及其方法 | |
CN102882985A (zh) | 基于云存储的文件共享方法 | |
CN102360320A (zh) | 一种基于云架构的终端备份对象共享恢复方法 | |
CN102024005B (zh) | 信息项目集合目录的发布***和方法 | |
CN104778175A (zh) | 一种实现异构数据库数据同步的方法及*** | |
CN105376277A (zh) | 一种数据同步方法及装置 | |
CN102231163B (zh) | 将指定文件优先同步更新的***及方法 | |
US20130325932A1 (en) | Electronic device and method for storing distributed documents | |
CN103020137A (zh) | 对数据单据进行自定义项扩展的***和方法 | |
CN103019891A (zh) | 一种还原被删除文件的方法及*** | |
US11297135B2 (en) | Data synchronization | |
CN102521218A (zh) | 文件合成方法及装置 | |
CN102291453B (zh) | 一种数据同步的方法及装置 | |
CN103235811A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |