CN114328428A - 一种文件同步方法、装置、电子设备及存储介质 - Google Patents
一种文件同步方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114328428A CN114328428A CN202111647878.0A CN202111647878A CN114328428A CN 114328428 A CN114328428 A CN 114328428A CN 202111647878 A CN202111647878 A CN 202111647878A CN 114328428 A CN114328428 A CN 114328428A
- Authority
- CN
- China
- Prior art keywords
- file
- client
- synchronization
- information file
- cloud storage
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开提供了一种文件同步方法、装置、电子设备及存储介质,涉及计算机技术领域,尤其涉及云计算、数据同步等领域。具体实现方案为:客户端向云端存储服务器发送文件同步请求;所述客户端接收所述云端存储服务器反馈的云端存储信息文件;所述客户端根据所述云端存储信息文件、所述客户端的本地修改信息文件和所述客户端的本地历史同步信息文件,确定文件同步策略;所述客户端根据所述文件同步策略,执行对应所述文件同步策略的文件同步操作。采用本公开,提高了文件同步的准确性。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及云计算、数据同步等领域。
背景技术
多端双向同步技术是指在多个客户端中,用户更新文件后,能够及时与其它客户端进行双向同步,保持每个客户端的文件均处于最新的状态。目前的客户端与客户端间的交互,要么是单向同步,要么是双向同步但文件同步不一致,降低了文件同步的准确性。
发明内容
本公开提供了一种文件同步方法、装置、电子设备及存储介质。
根据本公开的一方面,提供了一种文件同步方法,包括:
客户端向云端存储服务器发送文件同步请求;
所述客户端接收所述云端存储服务器反馈的云端存储信息文件;
所述客户端根据所述云端存储信息文件、所述客户端的本地修改信息文件和所述客户端的本地历史同步信息文件,确定文件同步策略;
所述客户端根据所述文件同步策略,执行对应所述文件同步策略的文件同步操作。
根据本公开的另一方面,提供了一种文件同步装置,包括:
请求发送单元,用于向云端存储服务器发送文件同步请求;
接收单元,用于接收所述云端存储服务器反馈的云端存储信息文件;
策略确定单元,用于根据所述云端存储信息文件、客户端的本地修改信息文件和客户端的本地历史同步信息文件,确定文件同步策略;
同步处理单元,用于根据所述文件同步策略,执行对应所述文件同步策略的文件同步操作。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开实施例所提供的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其上存储有计算机指令,所述计算机指令用于使计算机执行本公开实施例所提供的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开实施例所提供的方法。
采用本公开,客户端可以向云端存储服务器发送文件同步请求,客户端接收该云端存储服务器反馈的云端存储信息文件,可以根据该云端存储信息文件、客户端的本地修改信息文件和客户端的本地历史同步信息文件,确定文件同步策略,从而客户端可以根据该文件同步策略执行对应该文件同步策略的文件同步操作,提高了文件同步的准确性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的文件同步方法的流程示意图;
图2是根据本公开实施例的文件同步方法的数据交互示意图;
图3是根据本公开实施例的星型结构和中心化结构的示意图;
图4是根据本公开实施例的同步冲突解决策略的示意图;
图5是根据本公开实施例的0/1切换机制示意图;
图6是根据本公开实施例的分布式锁机制示意图;
图7是根据本公开实施例的文件同步装置的结构框图;
图8是根据本公开实施例的文件同步系统中客户端与云端存储服务器通信的示意图;
图9是用来实现本公开实施例的文件同步方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
多端文件同步技术目前可以采用如下三种方案来解决:
(1)采用Rclone sync模式(即:将文件从原文件夹同步至目标文件夹,只修改目的地)实现文件同步:将本地修改和新增的文件同步到远端存储,并且会在远端删除本地已经删除的文件,实现本地与远端存储文件一致。然而由于Rclone sync只是单向同步,远端的文件变化并不会被同步到本地。另外基于Rclone改进的rclonesync-V2增加了双向同步的功能,但并没解决多端并发同步过程中同步文件一致性问题,也不保证同步过程中的文件完整性。
(2)采用VTFS的版本机制实现增量式文件同步:每个客户端在同步前,在同步中,先拉取最新的远程修改,然后与本地进行融合生成一个增量版本,然后再进行同步。但是VTFS的版本机制在高频同步中,其生成版本数量过多,没有合并机制,元信息呈指数型增加,存储资源消耗过大,并且基于用户空间中的文件系统(File system in User Space,fuse)机制的实现导致读写性能相比磁盘大幅下降,挂载点稳定性差。
(3)基于JuiceFs共享文件系统(即:针对云原生环境设计的共享文件系统,支持所有类型数据的管理、分析、归档和备份)实现文件同步:采用中心化服务存储文件的元信息,元信息在所有客户端中共享,客户端直接访问远端文件元信息,保证文件实时一致性。通过中心化的元信息服务,用户编辑文件将会实时同步,但在离线客户端中,本地文件将不可使用,使用范围受限,并且增加了运维成本。
根据本公开的实施例,提供了一种文件同步方法,图1是根据本公开实施例的文件同步方法的流程示意图,如图1所示,该方法包括:
S101、客户端向云端存储服务器发送文件同步请求。
S102、客户端接收云端存储服务器反馈的云端存储信息文件。
S103、客户端根据云端存储信息文件、客户端的本地修改信息文件和客户端的本地历史同步信息文件,确定文件同步策略。
S104、客户端根据文件同步策略,执行对应文件同步策略的文件同步操作。
S101-S104的一示例中,客户端可以定期向云端存储服务器发送该同步请求,进行双向的文件同步(比如,同步间隔的时间可以为1分钟、10分钟、1小时等)。在云端存储服务器响应该文件同步请求后,客户端可以接收到云端存储服务器反馈的云端存储信息文件。客户端可以将云端存储信息文件(即云端存储的最新变更)与客户端本地文件(即客户端的本地修改信息文件和客户端的本地历史同步信息文件)进行比较,以找到冲突的文件和冲突的类型并据此得到该文件同步策略,从而根据文件同步策略,执行对应该文件同步策略的文件同步操作(如下载、上传、删除、不处理等操作)。
采用本公开,客户端可以向云端存储服务器发送文件同步请求,客户端接收该云端存储服务器反馈的云端存储信息文件,可以根据该云端存储信息文件、客户端的本地修改信息文件和客户端的本地历史同步信息文件,确定文件同步策略,从而客户端可以根据该文件同步策略执行对应该文件同步策略的文件同步操作,提高了文件同步的准确性。
一实施方式中,客户端根据云端存储信息文件、客户端的本地修改信息文件和客户端的本地历史同步信息文件,确定文件同步策略,包括:该客户端根据该云端存储信息文件、该客户端的本地修改信息文件和该客户端的本地历史同步信息文件,确定目标冲突文件和目标冲突类型。该客户端根据该目标冲突类型,得到文件同步策略。采用本实施方式,可以根据该云端存储信息文件、该客户端的本地修改信息文件和该客户端的本地历史同步信息文件确定目标冲突文件和目标冲突类型,并根据目标冲突类型得到文件同步策略,从而可以根据该文件同步策略对目标冲突文件执行相应的文件同步操作,提高了文件同步的准确性。由于高可用的云端存储服务器能够持久化数据,因此,通过客户端与云端存储服务器之间的文件同步,还可以保证数据不丢失,确保数据的完整性。
一实施方式中,客户端根据文件同步策略,执行对应文件同步策略的文件同步操作,包括:客户端根据文件同步策略,针对目标冲突文件执行文件下载、文件上传、文件删除中任一种的所述文件同步操作。采用本实施方式,可以根据文件同步策略,针对性的完成诸如下载、上传、不处理、删除等文件同步操作,以确保文件同步的准确性。
一实施方式中,云端存储信息文件包括:第一目录存储信息文件和第二目录存储信息文件。客户端根据该云端存储信息文件、该客户端的本地修改信息文件和该客户端的本地历史同步信息文件,确定目标冲突文件和目标冲突类型,包括:该客户端通过比较该第一目录存储信息文件和该第二目录存储信息文件,确定该第一目录存储信息文件为目标云端存储信息文件,其中,该目标云端存储信息文件用于表征云端存储服务器最新同步信息的文件。采用本实施方式,云端存储服务器可以存储两个文件目录(可以记为“0目录”和“1目录”),分别存储该第一目录存储信息文件和该第二目录存储信息文件,从而客户端通过比较该第一目录存储信息文件、该客户端的本地修改信息文件和该客户端的本地历史同步信息文件可以确定待执行文件同步操作的目标冲突文件。在该目标冲突文件位于该客户端的情况下,确定当前的目标冲突类型为新增或修改。
一实施方式中,客户端根据目标冲突类型,得到文件同步策略,包括:目标冲突类型为新增或修改的情况下,得到文件同步策略为文件上传。在该客户端上传目标冲突文件后可以发送更新的第二目录存储信息文件。采用本实施方式,在上传目标冲突文件后,对客户端侧更新得到的第二目录存储信息文件进行执行文件同步操作,并据此替换存储于云端存储服务器的原始第二目录存储信息文件,提高文件同步准确性。
一实施方式中,还包括:客户端融合第一目录存储信息文件、客户端的本地修改信息文件和客户端的本地历史同步信息文件,得到更新的第二目录存储信息文件。采用本实施方式,可以融合本地和云端的文件,以得到更新的第二目录存储信息文件,始终保持文件同步的准确性。
一实施方式中,还包括:客户端向云端存储服务器发送获取锁文件状态标识请求;在获取的锁文件状态标识为失效状态或者过期状态的情况下,该客户端向云端存储服务器的文件系统锁文件中写入相应的加锁信息。采用本实施方式,为客户端的文件同步操作设置分布锁机制,比如,在获取的锁文件状态标识为失效状态或者过期状态的情况下,该客户端向云端存储服务器的文件系统锁文件中写入相应的加锁信息,设置加锁信息的文件不允许同步,避免其他客户端与云端存储服务器执行文件同步操作时误操作,提高了文件同步的准确性。
根据本公开的实施例,提供了一种文件同步方法,图2是根据本公开实施例的文件同步方法的数据交互示意图,如图2所示,包括:
S201、客户端向云端存储服务器发送文件同步请求。
在本公开实施例中,客户端定期向云端存储服务器发送同步请求,即客户端定期与云端存储服务器进行双向同步过程,这里同步间隔的时间可以为一分钟、十分钟或者一小时,当然还可以为其他时间,在此不做具体限定。
在本公开实施例中,客户端的数量为多个,例如2个、3个、4个、5个或者更多,每个客户端均与云端存储服务器进行同步,一个客户端通过云端存储服务器与另一个客户端进行同步。这里客户端可以为应用程序客户端,当然也可以为其他客户端,在此不做具体限定。
图3是根据本公开实施例的星型结构和中心化结构的示意图,以星型结构为例,多个客户端(客户端301-客户端304)之间采用星型同步方式进行端到端的通信,需要每个客户端都能感知到其它的客户端的存在,这种方式需要引用中心化的客户端注册和同步服务来确保每个客户端能够及时的发现其它客户端,并且需要心跳机制来检测客户端的存活状态。考虑到这样端到端的通信,会加重服务端的资源消耗,而且每个客户端都单独与其它客户端进行同步,在保持一定同步频率或客户端较多的情况下,也加重了客户端的CPU资源消耗。则在实际应用中采用中心化结构不仅降低服务端和客户端的资源消耗,还可以提高文件同步准确性。在本公开实施例中,基于该中心化结构采用中心化的存储方式,将客户端与客户端之间采用该星型同步方式进行文件同步转化成客户端与中心化存储服务之间的同步,即:多个客户端(客户端301-客户端304)分别与云端存储服务器进行通信,该云端存储服务器采用高可用的存储服务器,能够持久化存储数据,保证数据不丢失,确保数据完整性。
S202:响应于文件同步请求,云端存储服务器发送云端存储信息文件到客户端。
在本公开实施例中,云端存储服务器直接接收客户端发送的文件同步请求,无需经过Git服务来处理。相较于传统的Git服务采用C/S架构,客户端通过提交(commit)、拉取(pull)命令来合并最新的文件,在推送(push)时,需要在服务器端架设Git服务器来处理各个客户端的push请求,然后再将数据持久化存储到Git服务器中,本公开实施例采用无服务化的方式,客户端可以直接与云端存储服务器进行同步,不需要云端存储服务器来协调各个客户端的同步请求,节约服务器端的资源。
在本公开实施例中,云端存储信息文件保存在云端存储服务器的文件系统中,用于记录存储的所有文件的最新更新信息(同步信息),客户端每次同步前都需要先获取该文件以进行后续的冲突文件判断。
S203、基于云端存储信息文件、客户端的本地修改信息文件和客户端的本地历史同步信息文件确定目标冲突文件和目标冲突类型,并根据目标冲突类型得到文件同步冲突解决策略。
在本公开实施例中,客户端与云端存储服务器同步过程中,需要将本地修改信息文件、本地历史同步信息文件与云端存储的最新变更进行比较,找到冲突的文件,并根据预先梳理同步过程中可能发生的冲突类型确定冲突文件的分类类型,并根据冲突文件的分类类型在预先建立的冲突解决策略模型中获取冲突解决策略。
图4是根据本公开实施例的同步冲突解决策略的示意图,该冲突解决策略模型可以为图表的形式(参见图4),其中,“有”代表存在某文件,“无”代表不存在某文件,“删除”代表删除了某文件,“上传”指的是将某文件从客户端上传到云端存储服务器,“下载”指的是将某文件从云端存储服务器上载到客户端,“不处理”指的是客户端和云端存储服务器不进行任何操作;“大于”、“小于”及“等于”比较的是客户端中文件与客户端云端存储服务器中文件的最新更新信息的时间大小,例如:客户端有文件A,云端存储服务器上也存在相应的映射文件A’(同一命名的文件,这里为了区分用A’指代),如果“端<云”,则说明客户端中文件A的最新更新时间早于云端存储服务器上映射文件A’的最新更新时间,则需要将映射文件A’下载到客户端上,以实现客户端与云端存储服务器的文件同步。
S204、客户端与云端存储服务器基于文件同步冲突解决策略对目标冲突文件进行相应的文件同步操作。
在本公开实施例中,客户端与云端存储服务器根据图表4中对应的同步冲突解决策略进行相应的上传、下载或者删除操作。
本公开实施例的文件同步方法将客户端与客户端的文件同步转化成客户端与云端存储服务器之间的同步,采用高可用的云端存储服务器能够持久化数据,保证数据不丢失,提升了文件同步的效率和用户体验,可应用于多端项目协作开发以及多端项目文件同步。
一实施方式中,云端存储信息文件包括第一目录存储信息文件和第二目录存储信息文件,第一目录存储信息文件用于记录云端存储服务器上第一文件系统存储目录存储的所有文件的同步信息,第二目录存储信息文件用于记录云端存储服务器上第二文件系统存储目录存储的所有文件的同步信息;其中,通过对第一文件系统存储目录进行映射得到第二文件系统存储目录。
一实施方式中,通过比较第一目录存储信息文件和第二目录存储信息文件确定目标云端存储信息文件,目标云端存储信息文件为记录云端存储服务器最新同步信息的文件,如果确定第一目录存储信息文件为目标云端存储信息文件,则融合第一目录存储信息文件、客户端的本地修改信息文件和客户端的本地历史同步信息文件得到更新的第二目录存储信息文件。
图5是根据本公开实施例的0/1切换机制示意图,一些示例中,如图5所示,云端存储服务器包括两个文件系统存储目录,第一文件系统存储目录可以命名为“0目录”,第一文件系统存储目录可以命名“1目录”,两个目录是映射关系。客户端同步前,先分别拉取“0目录”和“1目录”的目录存储信息文件,该文件为meta文件,该meta文件文件中存储的同步信息包括存储的所有文件信息、文件存储位置信息以及文件更新时间信息。客户端在执行文件同步之前,先分别拉取“0目录”和“1目录”的meta文件,然后比较两个meta的标记,获取最新且完整的meta文件。假设最新meta文件来自0目录,记为0.meta。在客户端本地存在两个meta文件(本地修改信息文件“local.meta”和本地历史同步信息文件“history.meta”),具体的,local.meta记录当前文件修改信息,history.meta记录最新一次同步后的文件信息,在客户端根据冲突解决策略融合生成1.meta,即为上述更新的第二目录存储信息文件。
一实施方式中,如果通过比较第一目录存储信息文件、客户端的本地修改信息文件和客户端的本地历史同步信息文件确定目标冲突文件位于客户端,目标冲突类型为新增/修改,则将目标冲突文件上传至第二文件系统存储目录。待目标冲突文件上传完毕后,发送更新的第二目录存储信息文件到第二文件系统存储目录。
一些示例中,如图5所示,在冲突解决中,如果A文件在0.meta中记录存储的位置为“0目录”,本地修改后,在1.meta中,其存储位置将反转成“1目录”。在所有文件推送成功后,会将1.meta文件推送到“1目录”中。即使在推送A文件到“1目录”的过程中出现异常,推送不成功,依然不影响“0目录”中的A文件使用,并且1.meta不会被推送到“1目录”中,其它客户端在执行文件同步过程中,依然能够获取到正确的云端最新的文件信息,从而保证文件同步异常时云端文件不被破坏,上述同步异常解决机制可以称为0/1切换机制。
由于本公开实施例中采用的云端存储服务器为对象存储系统,对象文件系统不支持MV等语义,因此在上传文件时,无法采用先同步成一个临时文件,同步成功后再MV成最后的文件名;如果云端存储已经有A文件,在客户端修改了A文件,在客户端向云端存储同步过程中出现网络异常,系统错误等导致同步终端,云端的A文件将变成一个错误的文件。本公开实施例的文件同步方法采用上述0/1切换机制可以有效的保证文件同步异常时云端文件不被破坏。
一实施方式中,如果通过比较第一目录存储信息文件、客户端的本地修改信息文件和客户端的本地历史同步信息文件确定目标冲突文件位于客户端,目标冲突类型为删除,则发送更新的第二目录存储信息文件到第二文件系统存储目录。本公开实施例中客户端删除了某文件,只需要发送更新的目录存储信息文件到第二文件系统存储目录即可,云端存储服务器不需要真正的进行文件删除操作,通过该存储信息标识即可。
一实施方式中,客户端可以向云端存储服务器发送获取锁文件状态标识请求,如果获取的锁文件状态标识为失效状态或者过期状态,则客户端向云端存储服务器的文件系统锁文件中写入相应的加锁信息。
图6是根据本公开实施例的分布式锁机制示意图,一些示例中,如图6所示,多个客户端(客户端601-客户端603)同时进行文件同步会造成文件相互覆盖,文件写入冲突等问题,因此引入分布式锁机制保证同一时间只有一个客户端在进行文件同步操作。为了不引入新的组件,本公开实施例中设计了包括加锁、解锁、锁续租、死锁释放等功能的分布式锁机制,以针对客户端603加锁为例,具体描述如下:
1)加锁流程:执行文件同步操作前,先尝试获取云端存储服务器中的锁文件,该锁文件中存储有锁文件状态标识,如果锁文件状态标识为失效状态或者过期状态,即不存在锁,则进行加锁,向云端存储服务器中写入锁文件即repo.lock文件,并且写入加锁的客户端603以及加锁的时间。如果锁文件状态标识为有效状态即锁存在,则根据是否是客户端603本身加的锁以及锁是否过期来综合判断客户端603是否可以加锁。
2)锁续租:一旦客户端603加锁成功,处于加锁状态后,在锁的有效期内未同步完成,需要启动额外的服务来及时对锁进行续租,防止锁失效,被其它客户端抢走。
3)释放锁:客户端603执行的文件同步操作完成后,主动释放锁,如释放失败,则在锁的有效期内,其它客户端(如客户端601-客户端602)无法镜像同步,需要等到锁过期。
本公开实施例中加锁过程中多个客户端同时向云端存储服务器中写入repo.lock,哪个客户端先写入,对应的客户端就抢锁成功;锁释放就是删除写入的repo.lock,加锁的客户端可以删除该锁文件,其他客户端也可以,器方式都是通过抢锁实现。
根据本公开的实施例,提供了一种文件同步装置,图7是根据本公开实施例的文件同步装置的结构框图,如图7所示,文件同步装置700位于客户端侧,包括:请求发送单元701,用于向云端存储服务器发送文件同步请求;接收单元702,用于接收所述云端存储服务器反馈的云端存储信息文件;策略确定单元703,用于根据所述云端存储信息文件、所述客户端的本地修改信息文件和所述客户端的本地历史同步信息文件,确定文件同步策略;同步处理单元704,用于根据所述文件同步策略,执行对应所述文件同步策略的文件同步操作。
一实施方式中,所述策略确定单元,用于所述客户端根据所述云端存储信息文件、所述客户端的本地修改信息文件和所述客户端的本地历史同步信息文件,确定目标冲突文件和目标冲突类型;所述客户端根据所述目标冲突类型,得到所述文件同步策略。
一实施方式中,所述同步处理单元,用于所述客户端根据所述文件同步策略,针对所述目标冲突文件执行文件下载、文件上传、文件删除中任一种的所述文件同步操作。
一实施方式中,所述云端存储信息文件包括:第一目录存储信息文件和第二目录存储信息文件;所述策略确定单元,用于所述客户端通过比较所述第一目录存储信息文件和所述第二目录存储信息文件,确定所述第一目录存储信息文件为目标云端存储信息文件,所述目标云端存储信息文件用于表征所述云端存储服务器最新同步信息的文件;所述客户端通过比较所述第一目录存储信息文件、所述客户端的本地修改信息文件和所述客户端的本地历史同步信息文件,确定所述目标冲突文件;在所述目标冲突文件位于所述客户端的情况下,确定所述目标冲突类型为新增或修改。
一实施方式中,所述策略确定单元,用于所述目标冲突类型为所述新增或修改的情况下,得到所述文件同步策略为文件上传;所述装置还包括文件更新单元,用于在所述目标冲突文件上传完毕后,发送更新的第二目录存储信息文件。
一实施方式中,还包括融合单元,用于融合所述第一目录存储信息文件、所述客户端的本地修改信息文件和所述客户端的本地历史同步信息文件,得到所述更新的第二目录存储信息文件。
一实施方式中,还包括加锁处理单元,用于向所述云端存储服务器发送获取锁文件状态标识请求;在获取的所述锁文件状态标识为失效状态或者过期状态的情况下,向所述云端存储服务器的文件系统锁文件中写入相应的加锁信息。
根据本公开的实施例,提供了一种文件同步系统,图8是根据本公开实施例的文件同步系统中客户端与云端存储服务器通信的示意图,如图8所示,该文件同步系统包括多个客户端(客户端801-客户端804)和云端存储服务器805,多个客户端均与云端存储服务器进行双向通信。
以多个客户端中任一个客户端与云端存储服务器进行双向通信为例,其中,客户端可以包括:同步请求发送单元,用于向云端存储服务器发送文件同步请求;存储信息接收单元,用于接收云端存储服务器发送的云端存储信息文件;冲突确定单元,用于基于云端存储信息文件、客户端的本地修改信息文件和客户端的本地历史同步信息文件确定目标冲突文件和目标冲突类型,并根据目标冲突类型得到文件同步冲突解决策略;以及,第一同步操作单元,用于基于文件同步冲突解决策略对目标冲突文件进行相应同步操作。
其中,云端存储服务器包括:请求响应单元,用于响应于文件同步请求,并发送云端存储信息文件到客户端;以及,第二同步操作单元,用于基于文件同步冲突解决策略对目标冲突文件进行相应同步操作。
一实施方式中,云端存储信息文件包括第一目录存储信息文件和第二目录存储信息文件,第一目录存储信息文件用于记录云端存储服务器上第一文件系统存储目录存储的所有文件的同步信息,第二目录存储信息文件用于记录云端存储服务器上第二文件系统存储目录存储的所有文件的同步信息。其中,通过对第一文件系统存储目录进行映射得到第二文件系统存储目录。
一实施方式中,该冲突确定单元包括:同步信息比较模块,用于通过比较第一目录存储信息文件和第二目录存储信息文件确定目标云端存储信息文件,目标云端存储信息文件为记录云端存储服务器最新同步信息的文件;以及,融合模块,用于如果确定第一目录存储信息文件为目标云端存储信息文件,则融合第一目录存储信息文件、客户端的本地修改信息文件和客户端的本地历史同步信息文件得到更新的第二目录存储信息文件。
一实施方式中,该融合模块还用于如果通过比较第一目录存储信息文件、客户端的本地修改信息文件和客户端的本地历史同步信息文件确定目标冲突文件位于客户端,目标冲突类型为新增/修改,则将目标冲突文件上传至第二文件系统存储目录;待目标冲突文件上传完毕后,发送更新的第二目录存储信息文件到第二文件系统存储目录。
一实施方式中,该客户端还包括:锁文件获取单元,用于向云端存储服务器发送获取锁文件状态标识请求;加锁单元,用于如果获取的锁文件状态标识为失效状态或者过期状态,则向云端存储服务器的文件系统锁文件中写入相应的加锁信息。
本公开实施例还提供了一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上述公开实施例所述的文件同步方法。
本公开实施例还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其上存储有计算机指令,计算机指令用于使计算机执行如上述公开实施例所述的文件同步方法。
本公开实施例还提供了一种计算机程序产品,其特征在于,包括计算机程序,计算机程序在被处理器执行时实现如上述公开实施例所述的文件同步方法。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图9所示,电子设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元906加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储电子设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
电子设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元906,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许电子设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如文件同步方法。例如,在一些实施例中,文件同步方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元906。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到电子设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的文件同步方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行文件同步方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (17)
1.一种文件同步方法,包括:
客户端向云端存储服务器发送文件同步请求;
所述客户端接收所述云端存储服务器反馈的云端存储信息文件;
所述客户端根据所述云端存储信息文件、所述客户端的本地修改信息文件和所述客户端的本地历史同步信息文件,确定文件同步策略;
所述客户端根据所述文件同步策略,执行对应所述文件同步策略的文件同步操作。
2.根据权利要求1所述的方法,其中,所述客户端根据所述云端存储信息文件、所述客户端的本地修改信息文件和所述客户端的本地历史同步信息文件,确定文件同步策略,包括:
所述客户端根据所述云端存储信息文件、所述客户端的本地修改信息文件和所述客户端的本地历史同步信息文件,确定目标冲突文件和目标冲突类型;
所述客户端根据所述目标冲突类型,得到所述文件同步策略。
3.根据权利要求2所述的方法,其中,所述客户端根据所述文件同步策略,执行对应所述文件同步策略的文件同步操作,包括:
所述客户端根据所述文件同步策略,针对所述目标冲突文件执行文件下载、文件上传、文件删除中任一种的所述文件同步操作。
4.根据权利要求2所述的方法,其中,所述云端存储信息文件包括:第一目录存储信息文件和第二目录存储信息文件;
其中,所述客户端根据所述云端存储信息文件、所述客户端的本地修改信息文件和所述客户端的本地历史同步信息文件,确定目标冲突文件和目标冲突类型,包括:
所述客户端通过比较所述第一目录存储信息文件和所述第二目录存储信息文件,确定所述第一目录存储信息文件为目标云端存储信息文件,所述目标云端存储信息文件用于表征所述云端存储服务器最新同步信息的文件;
所述客户端通过比较所述第一目录存储信息文件、所述客户端的本地修改信息文件和所述客户端的本地历史同步信息文件,确定所述目标冲突文件;
在所述目标冲突文件位于所述客户端的情况下,确定所述目标冲突类型为新增或修改。
5.根据权利要求4所述的方法,其中,所述客户端根据所述目标冲突类型,得到所述文件同步策略,包括:
所述目标冲突类型为所述新增或修改的情况下,得到所述文件同步策略为文件上传;
所述方法还包括:
在上传所述目标冲突文件后,所述客户端发送更新的第二目录存储信息文件。
6.根据权利要求5所述的方法,还包括:
所述客户端融合所述第一目录存储信息文件、所述客户端的本地修改信息文件和所述客户端的本地历史同步信息文件,得到所述更新的第二目录存储信息文件。
7.根据权利要求1-6中任一项所述的方法,还包括:
所述客户端向所述云端存储服务器发送获取锁文件状态标识请求;
在获取的所述锁文件状态标识为失效状态或者过期状态的情况下,所述客户端向所述云端存储服务器的文件系统锁文件中写入相应的加锁信息。
8.一种文件同步装置,包括:
请求发送单元,用于向云端存储服务器发送文件同步请求;
接收单元,用于接收所述云端存储服务器反馈的云端存储信息文件;
策略确定单元,用于根据所述云端存储信息文件、客户端的本地修改信息文件和客户端的本地历史同步信息文件,确定文件同步策略;
同步处理单元,用于根据所述文件同步策略,执行对应所述文件同步策略的文件同步操作。
9.根据权利要求8所述的装置,其中,所述策略确定单元,用于:
所述客户端根据所述云端存储信息文件、所述客户端的本地修改信息文件和所述客户端的本地历史同步信息文件,确定目标冲突文件和目标冲突类型;
所述客户端根据所述目标冲突类型,得到所述文件同步策略。
10.根据权利要求9所述的装置,其中,所述同步处理单元,用于:
所述客户端根据所述文件同步策略,针对所述目标冲突文件执行文件下载、文件上传、文件删除中任一种的所述文件同步操作。
11.根据权利要求9所述的装置,其中,所述云端存储信息文件包括:第一目录存储信息文件和第二目录存储信息文件;
其中,所述策略确定单元,用于:
所述客户端通过比较所述第一目录存储信息文件和所述第二目录存储信息文件,确定所述第一目录存储信息文件为目标云端存储信息文件,所述目标云端存储信息文件用于表征所述云端存储服务器最新同步信息的文件;
所述客户端通过比较所述第一目录存储信息文件、所述客户端的本地修改信息文件和所述客户端的本地历史同步信息文件,确定所述目标冲突文件;
在所述目标冲突文件位于所述客户端的情况下,确定所述目标冲突类型为新增或修改。
12.根据权利要求11所述的装置,其中,所述策略确定单元,用于:
所述目标冲突类型为所述新增或修改的情况下,得到所述文件同步策略为文件上传;
所述装置还包括文件更新单元,用于在所述目标冲突文件上传完毕后,发送更新的第二目录存储信息文件。
13.根据权利要求12所述的装置,还包括融合单元,用于:
融合所述第一目录存储信息文件、所述客户端的本地修改信息文件和所述客户端的本地历史同步信息文件,得到所述更新的第二目录存储信息文件。
14.根据权利要求8-13中任一项所述的装置,还包括加锁处理单元,用于:
向所述云端存储服务器发送获取锁文件状态标识请求;
在获取的所述锁文件状态标识为失效状态或者过期状态的情况下,向所述云端存储服务器的文件系统锁文件中写入相应的加锁信息。
15.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令用于使计算机执行如权利要求1至7中任一项所述的方法。
17.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序在被处理器执行时实现如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111647878.0A CN114328428A (zh) | 2021-12-30 | 2021-12-30 | 一种文件同步方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111647878.0A CN114328428A (zh) | 2021-12-30 | 2021-12-30 | 一种文件同步方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114328428A true CN114328428A (zh) | 2022-04-12 |
Family
ID=81017623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111647878.0A Pending CN114328428A (zh) | 2021-12-30 | 2021-12-30 | 一种文件同步方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114328428A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115460227A (zh) * | 2022-11-14 | 2022-12-09 | 成都怡康科技有限公司 | 同步数据的方法、装置、系统、计算机设备及存储介质 |
CN117149727A (zh) * | 2023-09-18 | 2023-12-01 | 上海鸿翼软件技术股份有限公司 | 一种文件处理方法、装置、设备以及存储介质 |
CN117312264A (zh) * | 2023-12-01 | 2023-12-29 | 中孚信息股份有限公司 | 虚拟磁盘系统中的文件同步方法、系统、设备及介质 |
-
2021
- 2021-12-30 CN CN202111647878.0A patent/CN114328428A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115460227A (zh) * | 2022-11-14 | 2022-12-09 | 成都怡康科技有限公司 | 同步数据的方法、装置、系统、计算机设备及存储介质 |
CN117149727A (zh) * | 2023-09-18 | 2023-12-01 | 上海鸿翼软件技术股份有限公司 | 一种文件处理方法、装置、设备以及存储介质 |
CN117312264A (zh) * | 2023-12-01 | 2023-12-29 | 中孚信息股份有限公司 | 虚拟磁盘系统中的文件同步方法、系统、设备及介质 |
CN117312264B (zh) * | 2023-12-01 | 2024-02-20 | 中孚信息股份有限公司 | 虚拟磁盘系统中的文件同步方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114328428A (zh) | 一种文件同步方法、装置、电子设备及存储介质 | |
US9690671B2 (en) | Manifest-based snapshots in distributed computing environments | |
US10817498B2 (en) | Distributed transactions in cloud storage with hierarchical namespace | |
US20190370360A1 (en) | Cloud storage distributed file system | |
US10191915B2 (en) | Information processing system and data synchronization control scheme thereof | |
US20100088271A1 (en) | Hsm two-way orphan reconciliation for extremely large file systems | |
US20170161296A1 (en) | Automatic Detection, Retry, and Resolution of Errors in Data Synchronization | |
US20120278429A1 (en) | Cluster system, synchronization controlling method, server, and synchronization controlling program | |
US20170161313A1 (en) | Detection and Resolution of Conflicts in Data Synchronization | |
CN111506592B (zh) | 一种数据库的升级方法和装置 | |
US9075722B2 (en) | Clustered and highly-available wide-area write-through file system cache | |
US10235251B2 (en) | Distributed disaster recovery file sync server system | |
CN111338834B (zh) | 数据存储方法和装置 | |
CN111666134A (zh) | 一种分布式任务调度的方法和系统 | |
US11106635B2 (en) | Computer system, file storage controller, and data sharing method | |
CN113438275B (zh) | 数据迁移方法、装置、存储介质及数据迁移设备 | |
US10528546B1 (en) | File system consistency in a distributed system using version vectors | |
CN113361236A (zh) | 一种编辑文档的方法和装置 | |
CN114422537B (zh) | 多云存储系统、多云数据读写方法及电子设备 | |
CN113515574B (zh) | 一种数据同步方法及装置 | |
US10776134B2 (en) | Management of application properties | |
CN108196979B (zh) | 数据备份方法和装置 | |
CN113553488A (zh) | 搜索引擎中索引数据的更新方法、装置、电子设备及介质 | |
CN114968656A (zh) | 一种数据回滚方法、装置、设备及介质 | |
CN113742376A (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 |