CN110727650A - 一种云端文档的同步方法和系统 - Google Patents
一种云端文档的同步方法和系统 Download PDFInfo
- Publication number
- CN110727650A CN110727650A CN201911305966.5A CN201911305966A CN110727650A CN 110727650 A CN110727650 A CN 110727650A CN 201911305966 A CN201911305966 A CN 201911305966A CN 110727650 A CN110727650 A CN 110727650A
- Authority
- CN
- China
- Prior art keywords
- transaction
- document
- cloud
- client
- synchronization
- 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.)
- Granted
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
-
- 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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种云端文档的同步方法,所述方法采用事务暂存元信息法,所述事务暂存元信息法只保存文档元信息,而不保存文档的二进制内容,待所有同步操作完成后,统一在云端进行一次同步,所述方法包括:客户端向云端服务器发送事务开启请求;所述云端服务器在接收到所述事务开启请求后,提取所述事务开启请求中的文档元信息,对所述文档元信息进行云端校验;如果所述云端校验成功,则云端服务器为客户端分配事务,生成一个全局唯一事务id,返回给客户端;客户端开始同步文档的操作,将所述全局唯一事务id发送给所述云端服务器作为事务操作标示;所述云端服务器校验当前操作是否合法,如果当前操作合法,则所述云端服务器进行事务所声明的具体的文档同步操作。
Description
技术领域
本发明属于计算机软件应用技术领域,特别涉及一种云端文档的同步方法和装置。
背景技术
在文档协作领域,使用人员总是需要将本地文档同步到远程云端服务器,这样既可以实现文档的备份,也能实现跨地域办公,提高工作效率。
由于在批量文档双向同步的过程中,面临着网络质量不可靠等因素,经常会出现同步失败,导致本地文档结构和远程文档结构不一致。使用人员无法快速判定哪些文档同步成功,哪些文档同步失败,这种不一致的状态给使用人员带来了很多不便。
市面上的文档协作平台大都使用了同步状态跟踪法,用以帮助使用人员快速的对文档同步过程进行跟踪与恢复。现有的同步状态跟踪解决方案除了需要消耗大量额外的存储,还需要使用人员进行一次额外的比对操作,既拖慢了同步的速度,也增加了软件的操作复杂度。
发明内容
针对现有技术中的缺陷,本发明提供了一种云端文档的同步方法和系统,使用的事务提交法,只存储元信息节约存储空间,事务取消/超时不影响任何云端文档结构,减少使用人员的人工比对步骤。
本发明提供了一种云端文档的同步方法,所述方法采用事务暂存元信息法,所述事务暂存元信息法只保存文档元信息,而不保存文档的二进制内容,待事务中每一个独立的文档同步操作完成且事务提交成功后,实现了客户端和云端的文档同步,所述方法包括以下步骤:
步骤1:客户端收集本地需要同步的批量文档信息,向云端服务器发送事务开启请求,所述事务开启请求将对应需要的操作提交给云端服务器;
步骤2:所述云端服务器在接收到所述事务开启请求后,提取所述事务开启请求中的文档元信息,对所述文档元信息进行云端校验,所述云端校验包括判断所述事务开启请求的资源是否被锁定和判断同步申请提交者是否有文档操作权限;
步骤3:如果所述云端校验成功,则云端服务器为客户端分配事务,生成一个全局唯一事务ID,返回给客户端,同时还向客户端返回此次事务所占用的云端目录锁定信息和所述事务的超时时间,执行步骤4;如果所述云端校验失败,则向客户端返回同步事务开启失败响应,流程结束;
步骤4:客户端开始同步文档的操作,将所述全局唯一事务ID发送给所述云端服务器作为事务操作标示;
步骤5:所述云端服务器校验当前操作是否合法,如果当前操作合法,则所述云端服务器进行事务所声明的具体的文档同步操作;如果当前操作不合法,则同步失败,并向客户端返回同步失败响应。
进一步地,所述批量文档信息包括文档内容和/或文档逻辑结构。
进一步地,所述对应需要的操作包括:上传本地文档、移动云端文档、复制云端文档、重命名云端文档或删除云端文档。
进一步地,针对所述对应需要的操作,所述判断事务开启请求的资源是否被锁定和判断同步申请提交者是否有文档操作权限包括:
(1)针对上传本地文档的操作,要校验上传的本地文档的路径是否需要在云端补全,是否有其它正在进行的事务与本次上传的本地文档的绝对路径冲突,同时校验当前用户是否有创建新文件的权限;
(2)针对移动云端文档的操作,校验被移动的文档逻辑结构在云端是否存在,如果在云端不存在时提示源不存在,同时校验当前用户是否有创建新文件的权限和删除源文件的权限;
(3)针对复制云端文档的操作,校验目标文档逻辑结构在云端是否存在,如果在云端存在则查看所述事务开启请求中是否有允许自动覆盖的参数,同时校验当前用户是否有创建新文件的权限和读取源文件的权限,所述复制云端文档的操作具体是指将云端文档从云端的源位置复制到云端的目标位置的操作;
(4)针对重命名云端文档的操作,校验新的文档名称是否在同一目录中被占用,同时校验当前用户是否有修改源文件的权限;
(5)针对删除云端文档的操作,校验源文档逻辑结构在云端是否已经存在,同时校验当前用户是否有删除源文件的权限。
进一步地,所述全局唯一事务ID是32位的。
进一步地,所述事务包括5种状态:开启状态、客户端请求取消状态、服务端自动取消状态、已超时状态、已提交状态,其中:
在云端服务器校验成功并向客户端分配事务后,所述事务的状态为开启状态;
只有开启状态的事务可以被提交并转变为已提交状态,且已经提交的事务,其对应的文档数据全都被持久化;
所有被取消和超时状态的事务,不能再进行任何操作,事务对应的文档数据不会持久化到云端文档结构。
进一步地,所述校验当前操作是否合法包括:事务是否存在、事务是否在有效期内、事务状态是否为开启状态或本次同步文档的操作的目录是否与所述全局唯一事务ID对应事务锁定的目录一致。
进一步地,所述校验当前操作是否合法,具体为:
所述云端服务器根据所述全局唯一事务ID查找是否存在相应的事务资源,如果不存在相应的事务资源,则当前操作不合法;如果存在相应的事务资源,则继续校验当前操作文档是否和所述事务资源匹配,如果匹配,则当前操作合法,如果不匹配,则当前操作不合法。
进一步地,所述方法还包括:
步骤6:所述客户端在整个操作过程中能够随时根据所述全局唯一事务ID申请取消或者提交事务。
本发明还提供了一种云端文档的同步系统,所述所述系统采用事务暂存元信息法,所述事务暂存元信息法只保存文档元信息,而不保存文档的二进制内容,待事务中每一个独立的文档同步操作完成且事务提交成功后,实现了客户端和云端的文档同步,所述系统包括客户端和云端服务器;
所述客户端,用于收集本地需要同步的批量文档信息,向所述云端服务器发送事务开启请求,将对应需要的操作提交给云端服务器;接收云端服务器发送的全局唯一事务ID;开始同步文档的操作,将所述全局唯一事务ID发送给所述云端服务器作为事务操作标示;
所述云端服务器,用于接收到所述客户端发送的所述事务开启请求,提取所述事务开启请求中的文档元信息,对所述文档元信息进行云端校验,所述云端校验包括判断所述事务开启请求的资源是否被锁定和判断同步申请提交者是否有文档操作权限;如果所述云端校验成功,则为客户端分配事务,生成一个全局唯一事务ID,返回给客户端,同时还向客户端返回此次事务所占用的云端目录锁定信息和所述事务的超时时间;如果所述云端校验失败,则向客户端返回同步事务开启失败响应;校验当前操作是否合法,如果当前操作合法,则进行事务所声明的具体的文档同步操作;如果当前操作不合法,则同步失败,并向客户端返回同步失败响应。
进一步地,所述客户端,还用于在整个操作过程中随时根据所述全局唯一事务ID申请取消或者提交事务。
相对于现有技术,本发明提供的一种云端文档的同步方法和系统,在事务处理未成功前,将所有文档元信息暂存起来,即将要操作的云端文档结构统一暂存在一个其他文档空间,待所有操作完成后,统一在云端进行一次同步,有效的降低了存储空间,减少网络质量带来的失败可能性。同时,针对同步过程中有任何错误或者操作不当,使用人员可以随时取消本次同步事务(取消事务不会影响任何其他文档数据和结构),重新发起一次同步即可,能够实现同步过程中所有批量文档操作的整体成功和整体失败,且不需要软件使用人员进行繁杂的比对工作。
附图说明
图1是本申请的系统结构示意图。
图2是本申请的一种云端文档的同步方法的流程示意图。
图3是本申请的事务状态变化示意图。
图4是本申请的事务开启请求和云端校验流程示意图。
图5是本申请的文档同步的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明的方案集中于云端文档的逻辑结构同步处理上。针对客户端上传到云端的二进制文件,云端服务器会转换成逻辑文档结构进行处理。当客户端在本地处理好一批文件之后,需要同步到云端服务器时,就需要有一个机制来保证所有的文档内容和逻辑结构要么全部同步成功,要么全部不成功,客户端不希望有中间混乱状态。本发明提供的文档处理事务方式,能够保证不会有部分成功或者部分失败的情况发生。
实施例一:
如图1-5所示,本发明的实施例一提供了一种云端文档的同步方法,所述方法采用事务暂存元信息法,所述事务暂存元信息法只保存文档元信息,而不保存文档的二进制内容,待事务中每一个独立的文档同步操作完成且事务提交成功后,实现了客户端和云端的文档同步,保障了同步过程的整体性。所述方法包括以下步骤:
步骤1:客户端收集本地需要同步的批量文档信息,向云端服务器发送事务开启请求,所述事务开启请求将对应需要的操作提交给云端服务器。
所述批量文档信息包括文档内容和/或文档逻辑结构,所述对应需要的操作包括:上传本地文档、移动云端文档、复制云端文档、重命名云端文档或删除云端文档。所有的操作均可以在同一个事务申请中出现多次,同时可以指定一个事务操作超时时间。
步骤2:所述云端服务器在接收到所述事务开启请求后,提取所述事务开启请求中的文档元信息,对所述文档元信息进行云端校验。
所述云端校验包括判断所述事务开启请求的资源是否被锁定和判断同步申请提交者是否有文档操作权限;
针对所述对应的操作,所述判断事务开启请求的资源是否被锁定和判断同步申请提交者是否有文档操作权限包括:
(1)针对上传本地文档的操作,要校验上传的本地文档的路径是否需要在云端补全,是否有其它正在进行的事务与本次上传的本地文档的绝对路径冲突,同时校验当前用户是否有创建新文件的权限。假如有事务A锁定了目录/a/b(根据前缀匹配法,以/a和以/a/b为前缀的路径均被锁定),那么后续事务如果请求锁定/a或者/a/b或者/a/b/c目录,都会锁定失败。
(2)针对移动云端文档的操作,校验被移动的文档逻辑结构在云端是否存在,如果在云端不存在时提示源不存在,同时校验当前用户是否有创建新文件的权限和删除源文件的权限。
(3)针对复制云端文档的操作,校验目标文档逻辑结构在云端是否存在,如果在云端存在则查看所述事务开启请求中是否有允许自动覆盖的参数,同时校验当前用户是否有创建新文件的权限和读取源文件的权限,所述复制云端文档的操作具体是指将云端文档从云端的源位置复制到云端的目标位置的操作。
(4)针对重命名云端文档的操作,校验新的文档名称是否在同一目录中被占用,同时校验当前用户是否有修改源文件的权限。
(5)针对删除云端文档的操作,校验源文档逻辑结构在云端是否已经存在,同时校验当前用户是否有删除源文件的权限。
步骤3:如果所述云端校验成功,即如果所述事务开启请求的资源未被锁定且所述同步请求提交者有文档操作权限,则云端服务器为客户端分配事务,生成一个全局唯一事务ID,返回给客户端,执行步骤4,其中,所述全局唯一事务ID是32位的;如果所述事务开启请求的资源被抢占或所述同步请求提交者没有文档操作权限,则向客户端返回同步事务开启失败响应,流程结束。具体参见图4。
在步骤3中,所述云端服务器在向客户端返回所述全局唯一事务ID的同时还向客户端返回此次事务所占用的云端目录锁定信息和所述事务的超时时间。
如图3所示,所述事务一共包括5种状态:开启状态(OPEN)、客户端请求取消状态(REQUEST_ABORT)、服务端自动取消状态(SYSTEM_ABORT)、已超时状态(TIMEOUT)、已提交状态(COMMITTED),其中:
在云端服务器校验成功并向客户端分配事务后,所述事务的状态为开启状态;
只有开启状态的事务可以被提交并转变为已提交状态,且已经提交的事务,其对应的文档数据全都被持久化;
所有被取消和超时状态的事务,不能再进行任何操作,事务对应的文档数据不会持久化到云端文档结构。
步骤4:客户端开始同步文档的操作,将所述全局唯一事务ID发送给所述云端服务器作为事务操作标示。所述发送全局唯一事务ID是以参数的方式发送的。
所述同步文档的操作包括:上传本地文档、移动云端文档、复制云端文档、重命名云端文档或删除云端文档。
步骤5:所述云端服务器校验当前操作是否合法,如果当前操作合法,则所述云端服务器进行事务所声明的具体的文档同步操作;如果当前操作不合法,则同步失败,并向客户端返回同步失败响应。具体参见图5。
所述当前操作是否合法的校验可以是:事务是否存在、事务是否在有效期内、事务状态是否为开启状态、本次同步文档的操作的目录是否与所述全局唯一事务ID对应事务锁定的目录一致。
所述校验当前操作是否合法,具体为:所述云端服务器根据所述全局唯一事务ID查找是否存在相应的事务资源,如果不存在相应的事务资源,则当前操作不合法;如果存在相应的事务资源,则继续校验当前操作文档是否和所述事务资源匹配,如果匹配则当前操作合法,如果不匹配,则当前操作不合法。
步骤6:所述客户端在整个操作过程中能够随时根据所述全局唯一事务ID申请取消或者提交事务。其中,在客户端申请取消事务时,云端服务器在判断事务在有效期内且处于打开状态时,成功取消该事务,成功取消事务即该事务所有的关联操作全部失败;在客户端申请提交事务时,云端服务器要判断事务相关的所有操作是否完成,在所有操作都完成后,成功提交该事务,成功提交事务即该事务所有的关联操作全部成功,不会出现中间状态。
实施例二:
如图1所示,本发明的实施例二提供了一种云端文档的同步系统,所述同步系统采用事务暂存元信息法,所述事务暂存元信息法只保存文档元信息,而不保存文档的二进制内容,待事务中每一个独立的文档同步操作完成且事务提交成功后,实现了客户端和云端的文档同步。所述系统包括客户端和云端服务器。
所述客户端,收集本地需要同步的批量文档信息,向云端服务器发送事务开启请求,所述事务开启请求将对应需要的操作提交给云端服务器。
所述批量文档信息包括文档内容和/或文档逻辑结构,所述对应需要的操作包括:上传本地文档、移动云端文档、复制云端文档、重命名云端文档或删除云端文档。所有的操作均可以在同一个事务申请中出现多次,同时可以指定一个事务操作超时时间。
所述云端服务器,接收客户端发送的所述事务开启请求,提取所述事务开启请求中的文档元信息,对所述文档元信息进行云端校验。
所述云端校验包括判断所述事务开启请求的资源是否被锁定和判断同步申请提交者是否有文档操作权限;
针对所述对应的操作,所述判断事务开启请求的资源是否被锁定和判断同步申请提交者是否有文档操作权限包括:
(1)针对上传本地文档的操作,要校验上传的本地文档的路径是否需要在云端补全,是否有其它正在进行的事务与本次上传的本地文档的绝对路径冲突,同时校验当前用户是否有创建新文件的权限。假如有事务A锁定了目录/a/b(根据前缀匹配法,以/a和以/a/b为前缀的路径均被锁定),那么后续事务如果请求锁定/a或者/a/b或者/a/b/c目录,都会锁定失败。
(2)针对移动云端文档的操作,校验被移动的文档逻辑结构在云端是否存在,如果在云端不存在时提示源不存在,同时校验当前用户是否有创建新文件的权限和删除源文件的权限。
(3)针对复制云端文档的操作,校验目标文档逻辑结构在云端是否存在,如果在云端存在则查看所述事务开启请求中是否有允许自动覆盖的参数,同时校验当前用户是否有创建新文件的权限和读取源文件的权限,所述复制云端文档的操作具体是指将云端文档从云端的源位置复制到云端的目标位置的操作。
(4)针对重命名云端文档的操作,校验新的文档名称是否在同一目录中被占用,同时校验当前用户是否有修改源文件的权限。
(5)针对删除云端文档的操作,校验源文档逻辑结构在云端是否已经存在,同时校验当前用户是否有删除源文件的权限。
所述云端服务器,在所述云端校验成功后,即如果所述事务开启请求的资源未被锁定且所述同步请求提交者有文档操作权限,则为客户端分配事务,生成一个全局唯一事务ID,返回给客户端,其中,所述全局唯一事务ID是32位的;在云端校验失败后,即如果所述事务开启请求的资源被抢占或所述同步请求提交者没有文档操作权限,则向客户端返回同步事务开启失败响应,流程结束。具体参见图4。
所述云端服务器在向客户端返回所述全局唯一事务ID的同时还向客户端返回此次事务所占用的云端目录锁定信息和所述事务的超时时间。
如图3所示,所述事务一共包括5种状态:开启状态(OPEN)、客户端请求取消状态(REQUEST_ABORT)、服务端自动取消状态(SYSTEM_ABORT)、已超时状态(TIMEOUT)、已提交状态(COMMITTED),其中:
在云端服务器校验成功并向客户端分配事务后,所述事务的状态为开启状态;
只有开启状态的事务可以被提交并转变为已提交状态,且已经提交的事务,其对应的文档数据全都被持久化;
所有被取消和超时状态的事务,不能再进行任何操作,事务对应的文档数据不会持久化到云端文档结构。
所述客户端,开始同步文档的操作,将所述全局唯一事务ID发送给所述云端服务器作为事务操作标示。所述发送全局唯一事务ID是以参数的方式发送的。
所述同步文档的操作包括:上传本地文档、移动云端文档、复制云端文档、重命名云端文档或删除云端文档。
所述云端服务器,校验所述客户端所发送的同步文档的操作是否合法,如果当前操作合法,则所述云端服务器进行事务所声明的具体的文档同步操作;如果当前操作不合法,则同步失败,并向客户端返回同步失败响应。具体参见图5。
所述当前操作是否合法的校验可以是:事务是否存在、事务是否在有效期内、事务状态是否为开启状态、本次同步文档的操作的目录是否与所述全局唯一事务ID对应事务锁定的目录一致。
所述校验当前操作是否合法,具体为:所述云端服务器根据所述全局唯一事务ID查找是否存在相应的事务资源,如果不存在相应的事务资源,则当前操作不合法;如果存在相应的事务资源,则继续校验当前操作文档是否和所述事务资源匹配,如果匹配则当前操作合法,如果不匹配,则当前操作不合法。
所述客户端,在整个操作过程中能够随时根据所述全局唯一事务ID申请取消或者提交事务。其中,在客户端申请取消事务时,云端服务器在判断事务在有效期内且处于打开状态时,成功取消该事务,成功取消事务即该事务所有的关联操作全部失败;在客户端申请提交事务时,云端服务器要判断事务相关的所有操作是否完成,在所有操作都完成后,成功提交该事务,成功提交事务即该事务所有的关联操作全部成功,不会出现中间状态。
附图中的流程图和框图显示了根据本申请的多个实施例的方法、装置和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图和框图中的每个方框可以代表一个单元、模块、程序段或代码的一部分,包含一个或多个用于实现逻辑功能的计算机可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。也要注意的是,框图和流程图中的每个方框或方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请不限制于任何特定形式的硬件和软件的结合。综上所述,以上仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种云端文档的同步方法,其特征在于,所述方法采用事务暂存元信息法,所述事务暂存元信息法只保存文档元信息,而不保存文档的二进制内容,待事务中每一个独立的文档同步操作完成且事务提交成功后,实现了客户端和云端的文档同步,所述方法包括以下步骤:
步骤1:客户端收集本地需要同步的批量文档信息,向云端服务器发送事务开启请求,所述事务开启请求将对应需要的操作提交给云端服务器;
步骤2:所述云端服务器在接收到所述事务开启请求后,提取所述事务开启请求中的文档元信息,对所述文档元信息进行云端校验,所述云端校验包括判断所述事务开启请求的资源是否被锁定和判断同步申请提交者是否有文档操作权限;
步骤3:如果所述云端校验成功,则云端服务器为客户端分配事务,生成一个全局唯一事务ID,返回给客户端,同时还向客户端返回此次事务所占用的云端目录锁定信息和所述事务的超时时间,执行步骤4;如果所述云端校验失败,则向客户端返回同步事务开启失败响应,流程结束;
步骤4:客户端开始同步文档的操作,将所述全局唯一事务ID发送给所述云端服务器作为事务操作标示;
步骤5:所述云端服务器校验当前操作是否合法,如果当前操作合法,则所述云端服务器进行事务所声明的具体的文档同步操作;如果当前操作不合法,则同步失败,并向客户端返回同步失败响应。
2.根据权利要求1所述的方法,其特征在于,所述批量文档信息包括文档内容和/或文档逻辑结构。
3.根据权利要求1所述的方法,其特征在于,所述对应需要的操作包括:上传本地文档、移动云端文档、复制云端文档、重命名云端文档或删除云端文档。
4.根据权利要求1所述的方法,其特征在于,针对所述对应需要的操作,所述判断事务开启请求的资源是否被锁定和判断同步申请提交者是否有文档操作权限包括:
(1)针对上传本地文档的操作,要校验上传的本地文档的路径是否需要在云端补全,是否有其它正在进行的事务与本次上传的本地文档的绝对路径冲突,同时校验当前用户是否有创建新文件的权限;
(2)针对移动云端文档的操作,校验被移动的文档逻辑结构在云端是否存在,如果在云端不存在时提示源不存在,同时校验当前用户是否有创建新文件的权限和删除源文件的权限;
(3)针对复制云端文档的操作,校验目标文档逻辑结构在云端是否存在,如果在云端存在则查看所述事务开启请求中是否有允许自动覆盖的参数,同时校验当前用户是否有创建新文件的权限和读取源文件的权限,所述复制云端文档的操作具体是指将云端文档从云端的源位置复制到云端的目标位置的操作;
(4)针对重命名云端文档的操作,校验新的文档名称是否在同一目录中被占用,同时校验当前用户是否有修改源文件的权限;
(5)针对删除云端文档的操作,校验源文档逻辑结构在云端是否已经存在,同时校验当前用户是否有删除源文件的权限。
5.根据权利要求1所述的方法,其特征在于,所述全局唯一事务ID是32位的。
6.根据权利要求1所述的方法,其特征在于,所述事务包括5种状态:开启状态、客户端请求取消状态、服务端自动取消状态、已超时状态、已提交状态,其中:
在云端服务器校验成功并向客户端分配事务后,所述事务的状态为开启状态;
只有开启状态的事务可以被提交并转变为已提交状态,且已经提交的事务,其对应的文档数据全都被持久化;
所有被取消和超时状态的事务,不能再进行任何操作,事务对应的文档数据不会持久化到云端文档结构。
7.根据权利要求1所述的方法,其特征在于,所述校验当前操作是否合法包括:事务是否存在、事务是否在有效期内、事务状态是否为开启状态或本次同步文档的操作的目录是否与所述全局唯一事务ID对应事务锁定的目录一致。
8.根据权利要求1所述的方法,其特征在于,所述校验当前操作是否合法,具体为:
所述云端服务器根据所述全局唯一事务ID查找是否存在相应的事务资源,如果不存在相应的事务资源,则当前操作不合法;如果存在相应的事务资源,则继续校验当前操作文档是否和所述事务资源匹配,如果匹配,则当前操作合法,如果不匹配,则当前操作不合法。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
步骤6:所述客户端在整个操作过程中能够随时根据所述全局唯一事务ID申请取消或者提交事务。
10.一种云端文档的同步系统,其特征在于,所述系统采用事务暂存元信息法,所述事务暂存元信息法只保存文档元信息,而不保存文档的二进制内容,待事务中每一个独立的文档同步操作完成且事务提交成功后,实现了客户端和云端的文档同步,所述系统包括客户端和云端服务器;
所述客户端,用于收集本地需要同步的批量文档信息,向所述云端服务器发送事务开启请求,将对应需要的操作提交给云端服务器;接收云端服务器发送的全局唯一事务ID;开始同步文档的操作,将所述全局唯一事务ID发送给所述云端服务器作为事务操作标示;
所述云端服务器,用于接收到所述客户端发送的所述事务开启请求,提取所述事务开启请求中的文档元信息,对所述文档元信息进行云端校验,所述云端校验包括判断所述事务开启请求的资源是否被锁定和判断同步申请提交者是否有文档操作权限;如果所述云端校验成功,则为客户端分配事务,生成一个全局唯一事务ID,返回给客户端,同时还向客户端返回此次事务所占用的云端目录锁定信息和所述事务的超时时间;如果所述云端校验失败,则向客户端返回同步事务开启失败响应;校验当前操作是否合法,如果当前操作合法,则进行事务所声明的具体的文档同步操作;如果当前操作不合法,则同步失败,并向客户端返回同步失败响应。
11.根据权利要求10所述的系统,其特征在于,所述客户端,还用于在整个操作过程中随时根据所述全局唯一事务ID申请取消或者提交事务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911305966.5A CN110727650B (zh) | 2019-12-18 | 2019-12-18 | 一种云端文档的同步方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911305966.5A CN110727650B (zh) | 2019-12-18 | 2019-12-18 | 一种云端文档的同步方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110727650A true CN110727650A (zh) | 2020-01-24 |
CN110727650B CN110727650B (zh) | 2021-06-25 |
Family
ID=69226028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911305966.5A Active CN110727650B (zh) | 2019-12-18 | 2019-12-18 | 一种云端文档的同步方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110727650B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112025713A (zh) * | 2020-09-09 | 2020-12-04 | 上海有个机器人有限公司 | 一种机器人与云端的运单状态同步方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488924A (zh) * | 2009-02-16 | 2009-07-22 | 成都市华为赛门铁克科技有限公司 | 一种元数据的修改方法和元数据服务器 |
CN103037008A (zh) * | 2012-12-24 | 2013-04-10 | 珠海金山办公软件有限公司 | 一种同步网盘的权限管理方法及系统 |
CN103152398A (zh) * | 2013-02-07 | 2013-06-12 | 中国科学院计算技术研究所 | 一种多终端文件间的文件同步方法及系统 |
CN103914439A (zh) * | 2013-01-04 | 2014-07-09 | 中国移动通信集团公司 | 一种文档在线编辑方法、设备以及系统 |
US20150205979A1 (en) * | 2012-06-19 | 2015-07-23 | Beijing Qihoo Technology Company Limited | Method and system for repairing file at user terminal |
-
2019
- 2019-12-18 CN CN201911305966.5A patent/CN110727650B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488924A (zh) * | 2009-02-16 | 2009-07-22 | 成都市华为赛门铁克科技有限公司 | 一种元数据的修改方法和元数据服务器 |
US20150205979A1 (en) * | 2012-06-19 | 2015-07-23 | Beijing Qihoo Technology Company Limited | Method and system for repairing file at user terminal |
CN103037008A (zh) * | 2012-12-24 | 2013-04-10 | 珠海金山办公软件有限公司 | 一种同步网盘的权限管理方法及系统 |
CN103914439A (zh) * | 2013-01-04 | 2014-07-09 | 中国移动通信集团公司 | 一种文档在线编辑方法、设备以及系统 |
CN103152398A (zh) * | 2013-02-07 | 2013-06-12 | 中国科学院计算技术研究所 | 一种多终端文件间的文件同步方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112025713A (zh) * | 2020-09-09 | 2020-12-04 | 上海有个机器人有限公司 | 一种机器人与云端的运单状态同步方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110727650B (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8296358B2 (en) | Method and system for journaling data updates in a distributed file system | |
CN106407356B (zh) | 一种数据备份方法及装置 | |
CN107077382B (zh) | 在多租户应用服务器环境中进行事务恢复的系统和方法 | |
US7552148B2 (en) | Shutdown recovery | |
CN111527487A (zh) | 用于内容项同步的唯一标识符的指配和再分配 | |
CN105573828A (zh) | 一种操作处理方法及装置 | |
EP2939446B1 (en) | Joining memberships in distributed computing systems | |
US20060288056A1 (en) | File version management device, method, and program | |
US20080229142A1 (en) | Self-service recovery of application data | |
US7668880B1 (en) | Offsite computer file backup system providing rapid recovery and method thereof | |
CN110691077B (zh) | 一种联盟链的业务校验方法及联盟链系统 | |
JP6342425B2 (ja) | 分散型コンピューター環境におけるノードのグループへのノードの安全かつ認証された導入を可能にする方法、装置、及びシステム | |
CN110188103A (zh) | 数据对账方法、装置、设备和存储介质 | |
CN110781525A (zh) | 一种基于区块链的档案信息安全管理系统和方法 | |
CN112286728A (zh) | 数据备份方法、装置、设备及计算机存储介质 | |
US6526417B1 (en) | System and method for change accumulation unmerged update reduction | |
CN102801754A (zh) | 一种断点续传的方法及系统 | |
US20240143386A1 (en) | Using multiple blockchains for applying transactions to a set of persistent data objects in persistent storage systems | |
CN112118269A (zh) | 一种身份认证方法、系统、计算设备及可读存储介质 | |
CN110727650B (zh) | 一种云端文档的同步方法和系统 | |
CN111522791B (zh) | 一种分布式文件重复数据删除系统及方法 | |
Groß et al. | Analyzing android's file-based encryption: information leakage through unencrypted metadata | |
US8312237B2 (en) | Automated relocation of in-use multi-site protected data storage | |
CN210691319U (zh) | 一种基于区块链的档案信息安全管理系统 | |
CN115098889B (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 |