虚拟磁盘系统中的文件同步方法、系统、设备及介质转让专利

申请号 : CN202311630259.X

文献号 : CN117312264B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 常新正魏东晓李本学

申请人 : 中孚信息股份有限公司

摘要 :

本申请公开了一种虚拟磁盘系统中的文件同步方法、系统、设备及介质,主要涉及文件同步技术领域,用以解决现有技术存储服务器上文件属性信息时一般存储在本地数据库或内存中,在同步比较文件是否发生变化时查找速度慢,且实现数据一致性的程序比较繁琐的问题。包括:通过虚拟磁盘系统获取新增commit信息,获取服务端commit信息,将差异commit信息返回至虚拟磁盘系统;获取对应的文件内容Blocks块,以使服务端对文件内容Blocks块进行入库操作,基于预设定时下载时间段,虚拟磁盘系统获取进行信息比对,以使虚拟磁盘系统更新系统fs信息;在客户端触发文件操作时,确定是否需要将客户端文件更新为服务端文件。

权利要求 :

1.一种虚拟磁盘系统中的文件同步方法,其特征在于,所述方法包括:

在客户端启动虚拟磁盘系统后,将服务端元数据中存储提交修改信息的commit信息和表示文件目录结构的fs信息克隆至客户端对应的虚拟磁盘系统中;

通过虚拟磁盘系统获取预设上传时间段内系统的文件变化信息,生成文件变化信息对应的新增commit信息,将新增commit信息提交至服务端;在服务端收到新增commit信息后,获取服务端在预设上传时间段内的服务端commit信息,进行信息比对以获得差异commit信息;将差异commit信息添加至服务端commit信息中,并将差异commit信息返回至虚拟磁盘系统;通过虚拟磁盘系统,获取差异commit信息对应的文件内容Blocks块,上传文件内容Blocks块至服务端,以使服务端对文件内容Blocks块进行入库操作,并更新对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态;

基于预设定时下载时间段,虚拟磁盘系统获取系统新增commit信息和服务端新增commit信息,以进行信息比对,在存在信息差异时,虚拟磁盘系统提交系统新增commit信息至服务端,以获得返回的服务端fs信息,以使虚拟磁盘系统更新系统fs信息;

在客户端触发文件操作时,虚拟磁盘系统确定客户端是否存在文件操作对应的文件内容Blocks块,以在不存在对应的文件内容Blocks块时,通过客户端对应的虚拟磁盘系统从服务端中下载到客户端中,并更新文件内容Blocks块对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态;在存在对应的文件内容Blocks块时,通过比对文件内容Blocks块对应的客户端文件与服务端文件的文件扩展属性,确定是否需要将客户端文件更新为服务端文件;在将客户端文件更新为服务端文件的同时,更新对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态。

2.根据权利要求1所述的虚拟磁盘系统中的文件同步方法,其特征在于,元数据包括存储提交修改信息的commit信息、表示文件目录结构的fs信息和文件的文件内容Blocks块。

3.根据权利要求1所述的虚拟磁盘系统中的文件同步方法,其特征在于,在通过虚拟磁盘系统获取预设上传时间段内系统的文件变化信息之前,所述方法还包括:客户端通过文件资源管理器,对虚拟磁盘系统中的文件进行修改操作,进而生成文件变化信息。

4.根据权利要求1所述的虚拟磁盘系统中的文件同步方法,其特征在于,上述各commit信息均包括对应文件信息和文件内容Blocks块信息;

通过虚拟磁盘系统,获取差异commit信息对应的文件内容Blocks块,具体包括:

通过虚拟磁盘系统,获取差异commit信息对应的文件;

进而对文件进行分Blocks块处理,以获取差异commit信息对应的文件内容Blocks块。

5.根据权利要求1所述的虚拟磁盘系统中的文件同步方法,其特征在于,文件角标状态分为:本地态、云端态、同步上传中态,同步下载中态;其中,本地态为存在于虚拟磁盘系统的状态,云端态为存在于服务端的状态,同步上传中态为存在于虚拟磁盘系统中且在向服务端同步的状态,同步下载中态为存在于服务端中且在向虚拟磁盘系统同步的状态。

6.根据权利要求1所述的虚拟磁盘系统中的文件同步方法,其特征在于,将客户端文件更新为服务端文件,具体包括:删除客户端文件,通过虚拟磁盘系统从服务端获取客户端文件对应的服务端文件,将服务端文件缓存至客户端中,进而将服务端文件返回给客户端触发文件操作的应用;

或,删除客户端文件,通过虚拟磁盘系统从服务端获取客户端文件对应的服务端文件,直接将服务端文件返回给客户端触发文件操作的应用。

7.一种虚拟磁盘系统中的文件同步系统,其特征在于,所述系统包括:

文件信息克隆模块,用于在客户端启动虚拟磁盘系统后,将服务端元数据中存储提交修改信息的commit信息和表示文件目录结构的fs信息克隆至客户端对应的虚拟磁盘系统中;

文件同步上传模块,用于通过虚拟磁盘系统获取预设上传时间段内系统的文件变化信息,生成文件变化信息对应的新增commit信息,将新增commit信息提交至服务端;在服务端收到新增commit信息后,获取服务端在预设上传时间段内的服务端commit信息,进行信息比对以获得差异commit信息;将差异commit信息添加至服务端commit信息中,并将差异commit信息返回至虚拟磁盘系统;通过虚拟磁盘系统,获取差异commit信息对应的文件内容Blocks块,上传文件内容Blocks块至服务端,以使服务端对文件内容Blocks块进行入库操作,并更新对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态;

fs信息同步模块,用于基于预设定时下载时间段,虚拟磁盘系统获取系统新增commit信息和服务端新增commit信息,以进行信息比对,在存在信息差异时,虚拟磁盘系统提交系统新增commit信息至服务端,以获得返回的服务端fs信息,以使虚拟磁盘系统更新系统fs信息;

文件同步下载模块,用于在客户端触发文件操作时,虚拟磁盘系统确定客户端是否存在文件操作对应的文件内容Blocks块,以在不存在对应的文件内容Blocks块时,通过客户端对应的虚拟磁盘系统从服务端中下载到客户端中,并更新文件内容Blocks块对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态;在存在对应的文件内容Blocks块时,通过比对文件内容Blocks块对应的客户端文件与服务端文件的文件扩展属性,确定是否需要将客户端文件更新为服务端文件;在将客户端文件更新为服务端文件的同时,更新对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态。

8.根据权利要求7所述的虚拟磁盘系统中的文件同步系统,其特征在于,文件同步下载模块包括下载单元,

用于删除客户端文件,通过虚拟磁盘系统从服务端获取客户端文件对应的服务端文件,将服务端文件缓存至客户端中,进而将服务端文件返回给客户端触发文件操作的应用;

或,删除客户端文件,通过虚拟磁盘系统从服务端获取客户端文件对应的服务端文件,直接将服务端文件返回给客户端触发文件操作的应用。

9.一种虚拟磁盘系统中的文件同步设备,其特征在于,所述设备包括:

处理器;

以及存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如权利要求1‑6任一项所述的一种虚拟磁盘系统中的文件同步方法。

10.一种非易失性计算机存储介质,其特征在于,其上存储有计算机指令,所述计算机指令在被执行时实现如权利要求1‑6任一项所述的一种虚拟磁盘系统中的文件同步方法。

说明书 :

虚拟磁盘系统中的文件同步方法、系统、设备及介质

技术领域

[0001] 本申请涉及文件同步技术领域,尤其涉及一种虚拟磁盘系统中的文件同步方法、系统、设备及介质。

背景技术

[0002] 虚拟磁盘(Virtual disk),就是在本地电脑里面虚拟出一个远程电脑里面的磁盘。
[0003] 目前,业界存在将服务端文件映射到本地的虚拟盘技术,例如Dropbox和微软的OneDrive,访问服务端文件和虚拟磁盘系统类似,能够实现客户端文件的同步上传和服务器最新文件同步下载。
[0004] 但是,现有技术存储服务器存储文件属性信息时一般存储在本地数据库或内存中,在同步比较文件是否发生变化时查找速度慢,且实现数据一致性的程序比较繁琐。

发明内容

[0005] 针对现有技术的上述不足,本申请提供一种虚拟磁盘系统中的文件同步方法、系统、设备及介质,以解决现有技术存储服务器上文件属性信息时一般存储在本地数据库或内存中,在同步比较文件是否发生变化时查找速度慢,且实现数据一致性的程序比较繁琐的问题。
[0006] 第一方面,本申请提供了一种虚拟磁盘系统中的文件同步方法,方法包括:
[0007] 在客户端启动虚拟磁盘系统后,将服务端元数据中存储提交修改信息的commit信息和表示文件目录结构的fs信息克隆至客户端对应的虚拟磁盘系统中;
[0008] 通过虚拟磁盘系统获取预设上传时间段内系统的文件变化信息,生成文件变化信息对应的新增commit信息,将新增commit信息提交至服务端;在服务端收到新增commit信息后,获取服务端在预设上传时间段内的服务端commit信息,进行信息比对以获得差异commit信息;将差异commit信息添加至服务端commit信息中,并将差异commit信息返回至虚拟磁盘系统;通过虚拟磁盘系统,获取差异commit信息对应的文件内容Blocks块,上传文件内容Blocks块至服务端,以使服务端对文件内容Blocks块进行入库操作,并更新对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态;
[0009] 基于预设定时下载时间段,虚拟磁盘系统获取系统新增commit信息和服务端新增commit信息,以进行信息比对,在存在信息差异时,虚拟磁盘系统提交系统新增commit信息至服务端,以获得返回的服务端fs信息,以使虚拟磁盘系统更新系统fs信息;
[0010] 在客户端触发文件操作时,虚拟磁盘系统确定客户端是否存在文件操作对应的文件内容Blocks块,以在不存在对应的文件内容Blocks块时,通过客户端对应的虚拟磁盘系统从服务端中下载到客户端中,并更新文件内容Blocks块对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态;在存在对应的文件内容Blocks块时,通过比对文件内容Blocks块对应的客户端文件与服务端文件的文件扩展属性,确定是否需要将客户端文件更新为服务端文件;在将客户端文件更新为服务端文件的同时,更新对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态。
[0011] 进一步地,元数据包括存储提交修改信息的commit信息、表示文件目录结构的fs信息和文件的文件内容Blocks块。
[0012] 进一步地,在通过虚拟磁盘系统获取预设上传时间段内系统的文件变化信息之前,方法还包括:
[0013] 客户端通过文件资源管理器,对虚拟磁盘系统中的文件进行修改操作,进而生成文件变化信息。
[0014] 进一步地,commit信息包括对应文件信息和文件内容Blocks块信息;通过虚拟磁盘系统,获取差异commit信息对应的文件内容Blocks块,具体包括:通过虚拟磁盘系统,获取差异commit信息对应的文件;进而对文件进行分Blocks块处理,以获取差异commit信息对应的文件内容Blocks块。
[0015] 进一步地,文件角标状态分为:本地态、云端态、同步上传中态,同步下载中态;其中,本地态为存在于虚拟磁盘系统的状态,云端态为存在于服务端的状态,同步上传中态为存在于虚拟磁盘系统中且在向服务端同步的状态,同步下载中态为存在于服务端中且在向虚拟磁盘系统同步的状态。
[0016] 进一步地,将客户端文件更新为服务端文件,具体包括:删除客户端文件,通过虚拟磁盘系统从服务端获取客户端文件对应的服务端文件,将服务端文件缓存至客户端中,进而将服务端文件返回给客户端触发文件操作的应用;或,删除客户端文件,通过虚拟磁盘系统从服务端获取客户端文件对应的服务端文件,直接将服务端文件返回给客户端触发文件操作的应用。
[0017] 第二方面,本申请提供了一种虚拟磁盘系统中的文件同步系统,系统包括:文件信息克隆模块,用于在客户端启动虚拟磁盘系统后,将服务端元数据中存储提交修改信息的commit信息和表示文件目录结构的fs信息克隆至客户端对应的虚拟磁盘系统中;文件同步上传模块,用于通过虚拟磁盘系统获取预设上传时间段内系统的文件变化信息,生成文件变化信息对应的新增commit信息,将新增commit信息提交至服务端;在服务端收到新增commit信息后,获取服务端在预设上传时间段内的服务端commit信息,进行信息比对以获得差异commit信息;将差异commit信息添加至服务端commit信息中,并将差异commit信息返回至虚拟磁盘系统;通过虚拟磁盘系统,获取差异commit信息对应的文件内容Blocks块,上传文件内容Blocks块至服务端,以使服务端对文件内容Blocks块进行入库操作,并更新对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态;fs信息同步模块,用于基于预设定时下载时间段,虚拟磁盘系统获取系统新增commit信息和服务端新增commit信息,以进行信息比对,在存在信息差异时,虚拟磁盘系统提交系统新增commit信息至服务端,以获得返回的服务端fs信息,以使虚拟磁盘系统更新系统fs信息;文件同步下载模块,用于在客户端触发文件操作时,虚拟磁盘系统确定客户端是否存在文件操作对应的文件内容Blocks块,以在不存在对应的文件内容Blocks块时,通过客户端对应的虚拟磁盘系统从服务端中下载到客户端中,并更新文件内容Blocks块对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态;在存在对应的文件内容Blocks块时,通过比对文件内容Blocks块对应的客户端文件与服务端文件的文件扩展属性,确定是否需要将客户端文件更新为服务端文件;在将客户端文件更新为服务端文件的同时,更新对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态。
[0018] 进一步地,文件同步下载模块包括下载单元,用于删除客户端文件,通过虚拟磁盘系统从服务端获取客户端文件对应的服务端文件,将服务端文件缓存至客户端中,进而将服务端文件返回给客户端触发文件操作的应用;或,删除客户端文件,通过虚拟磁盘系统从服务端获取客户端文件对应的服务端文件,直接将服务端文件返回给客户端触发文件操作的应用。
[0019] 第三方面,本申请提供了一种虚拟磁盘系统中的文件同步设备,设备包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被执行时,使得处理器执行如上述任一项的一种虚拟磁盘系统中的文件同步方法。
[0020] 第四方面,本申请提供了一种非易失性计算机存储介质,其上存储有计算机指令,计算机指令在被执行时实现如上述任一项的一种虚拟磁盘系统中的文件同步方法。
[0021] 本领域技术人员能够理解的是,本申请至少具有如下有益效果:
[0022] 本申请通过服务端与虚拟磁盘系统之间的commit信息的信息比较,实现了差异commit信息的获取,进而能够实时监控变化,并且是将变化文件内容Blocks分块上传至服务端。另外,本申请能够定时检测虚拟磁盘系统和服务端之间是否存在信息差异时,以在存在信息差异时,更新虚拟磁盘系统的fs信息。在涉及文件操作时,能够实时更新服务端增量变化数据,且在更新文件内容时,通过扩展属性方式快速判断已缓存文件是否需要更新。最后,本申请通过虚拟磁盘系统实现客户端和服务端数据一致性,实时的保证了虚拟磁盘系统中文件信息与服务端的文件信息同步,保证了用户端使用最新的文件且本地的更新能够实时同步至服务端。

附图说明

[0023] 下面参照附图来描述本公开的部分实施例,附图中:
[0024] 图1是本申请实施例提供的一种虚拟磁盘系统中的文件同步方法流程图。
[0025] 图2是本申请实施例提供的一种虚拟磁盘系统中的文件同步系统内部结构示意图。
[0026] 图3是本申请实施例提供的一种虚拟磁盘系统中的文件同步设备内部结构示意图。

具体实施方式

[0027] 本领域技术人员应当理解的是,下文所描述的实施例仅仅是本公开的优选实施例,并不表示本公开仅能通过该优选实施例实现,该优选实施例仅仅是用于解释本公开的技术原理,并非用于限制本公开的保护范围。基于本公开提供的优选实施例,本领域普通技术人员在没有付出创造性劳动的情况下所获得的其它所有实施例,仍应落入到本公开的保护范围之内。
[0028] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0029] 下面通过附图对本申请实施例提出的技术方案进行详细的说明。
[0030] 本申请实施例提供了一种虚拟磁盘系统中的文件同步方法,如图1所示,本申请实施例提供的方法,主要包括以下步骤:
[0031] 步骤110、在客户端启动虚拟磁盘系统后,将服务端元数据中存储提交修改信息的commit信息和表示文件目录结构的fs信息克隆至客户端对应的虚拟磁盘系统中。
[0032] 需要说明的是,元数据包括存储提交修改信息的commit信息、表示文件目录结构的fs(File System)信息和文件的文件内容Blocks块。
[0033] 步骤120、通过虚拟磁盘系统获取预设上传时间段内系统的文件变化信息,生成文件变化信息对应的新增commit信息,将新增commit信息提交至服务端;在服务端收到新增commit信息后,获取服务端在预设上传时间段内的服务端commit信息,进行信息比对以获得差异commit信息;将差异commit信息添加至服务端commit信息中,并将差异commit信息返回至虚拟磁盘系统;通过虚拟磁盘系统,获取差异commit信息对应的文件内容Blocks块,上传文件内容Blocks块至服务端,以使服务端对文件内容Blocks块进行入库操作,并更新对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态。
[0034] 需要说明的是,文件扩展属性为现有定义,对此进行的更新为现有更新方法,本申请不做限定。文件角标状态分为:本地态、云端态、同步上传中态,同步下载中态;其中,本地态为存在于虚拟磁盘系统的状态,云端态为存在于服务端的状态,同步上传中态为存在于虚拟磁盘系统中且在向服务端同步的状态,同步下载中态为存在于服务端中且在向虚拟磁盘系统同步的状态。这几种状态以文件角标的方式展示给用户,用户可以根据这几种状态清楚的分析出文件所处的状态。角标状态的配合同步流程更新,系统在完成一个流程后会实时更新文件角标状态。
[0035] 另外,文件变化信息的生成过程可以具体为:
[0036] 在通过虚拟磁盘系统获取预设上传时间段内系统的文件变化信息之前,方法还包括:客户端通过文件资源管理器,对虚拟磁盘系统中的文件进行修改操作,进而生成文件变化信息。
[0037] 另外,commit信息包括对应文件信息和文件内容Blocks块信息;步骤中通过虚拟磁盘系统,获取差异commit信息对应的文件内容Blocks块,具体可以为:通过虚拟磁盘系统,获取差异commit信息对应的文件;进而对文件进行分Blocks块处理,以获取差异commit信息对应的文件内容Blocks块。
[0038] 需要补充说明的是,对文件进行分Blocks块处理的方法为现有方法,本申请对此不做限定。
[0039] 步骤130、基于预设定时下载时间段,虚拟磁盘系统获取系统新增commit信息和服务端新增commit信息,以进行信息比对,在存在信息差异时,虚拟磁盘系统提交系统新增commit信息至服务端,以获得返回的服务端fs信息,以使虚拟磁盘系统更新系统fs信息。
[0040] 需要说明的是,预设定时下载时间段可由本领域技术人员根据实际情况确定。
[0041] 步骤140、在客户端触发文件操作时,虚拟磁盘系统确定客户端是否存在文件操作对应的文件内容Blocks块,以在不存在对应的文件内容Blocks块时,通过客户端对应的虚拟磁盘系统从服务端中下载到客户端中,并更新文件内容Blocks块对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态;在存在对应的文件内容Blocks块时,通过比对文件内容Blocks块对应的客户端文件与服务端文件的文件扩展属性,确定是否需要将客户端文件更新为服务端文件;在将客户端文件更新为服务端文件的同时,更新对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态。
[0042] 需要说明的是,文件操作为客户端对应客户端进行的文件操作,具体可以为调用、修改等现有的文件操作方法。
[0043] 其中,将客户端文件更新为服务端文件,具体可以为:
[0044] 删除客户端文件,通过虚拟磁盘系统从服务端获取客户端文件对应的服务端文件,将服务端文件缓存至客户端中,进而将服务端文件返回给客户端触发文件操作的应用;或,删除客户端文件,通过虚拟磁盘系统从服务端获取客户端文件对应的服务端文件,直接将服务端文件返回给客户端触发文件操作的应用。
[0045] 除此之外,图2为本申请实施例提供的一种虚拟磁盘系统中的文件同步系统。如图2所示,本申请实施例提供的系统,主要包括:
[0046] 文件信息克隆模块210,用于在客户端启动虚拟磁盘系统后,将服务端元数据中存储提交修改信息的commit信息和表示文件目录结构的fs信息克隆至客户端对应的虚拟磁盘系统中。
[0047] 需要说明的是,文件信息克隆模块210可以为任意可行的能够将服务端元数据中存储提交修改信息的commit信息和表示文件目录结构的fs信息克隆至客户端对应的虚拟磁盘系统中的设备或装置等。
[0048] 文件同步上传模块220,用于通过虚拟磁盘系统获取预设上传时间段内系统的文件变化信息,生成文件变化信息对应的新增commit信息,将新增commit信息提交至服务端;在服务端收到新增commit信息后,获取服务端在预设上传时间段内的服务端commit信息,进行信息比对以获得差异commit信息;将差异commit信息添加至服务端commit信息中,并将差异commit信息返回至虚拟磁盘系统;通过虚拟磁盘系统,获取差异commit信息对应的文件内容Blocks块,上传文件内容Blocks块至服务端,以使服务端对文件内容Blocks块进行入库操作,并更新对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态。
[0049] 需要说明的是,文件同步上传模块220可以为任意可行的能够进行信息比对以获得差异commit信息、获取差异commit信息对应的文件内容Blocks块,上传文件内容Blocks块至服务端,以使服务端对文件内容Blocks块进行入库操作,并更新对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态的设备或装置等。
[0050] fs信息同步模块230,用于基于预设定时下载时间段,虚拟磁盘系统获取系统新增commit信息和服务端新增commit信息,以进行信息比对,在存在信息差异时,虚拟磁盘系统提交系统新增commit信息至服务端,以获得返回的服务端fs信息,以使虚拟磁盘系统更新系统fs信息。
[0051] 需要说明的是,fs信息同步模块230可以为任意可行的能够进行信息比对,在存在信息差异时,虚拟磁盘系统提交系统新增commit信息至服务端,以获得返回的服务端fs信息,以使虚拟磁盘系统更新系统fs信息的设备或装置等。
[0052] 文件同步下载模块240,用于在客户端触发文件操作时,虚拟磁盘系统确定客户端是否存在文件操作对应的文件内容Blocks块,以在不存在对应的文件内容Blocks块时,通过客户端对应的虚拟磁盘系统从服务端中下载到客户端中,并更新文件内容Blocks块对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态;在存在对应的文件内容Blocks块时,通过比对文件内容Blocks块对应的客户端文件与服务端文件的文件扩展属性,确定是否需要将客户端文件更新为服务端文件;在将客户端文件更新为服务端文件的同时,更新对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态。
[0053] 需要说明的是,文件同步下载模块240可以为任意可行的能够确定客户端触发文件操作涉及的文件更新为最新文件的设备或装置等。
[0054] 其中,将客户端文件更新为服务端文件,具体可以为:
[0055] 文件同步下载模块240中的下载单元241删除客户端文件,通过虚拟磁盘系统从服务端获取客户端文件对应的服务端文件,将服务端文件缓存至客户端中,进而将服务端文件返回给客户端触发文件操作的应用;或,删除客户端文件,通过虚拟磁盘系统从服务端获取客户端文件对应的服务端文件,直接将服务端文件返回给客户端触发文件操作的应用。
[0056] 以上为本申请中的方法实施例,基于同样的发明构思,本申请实施例还提供了一种虚拟磁盘系统中的文件同步设备。如图3所示,该设备包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被执行时,使得处理器执行如上述实施例中的一种虚拟磁盘系统中的文件同步方法。
[0057] 具体地,服务器端在客户端启动虚拟磁盘系统后,将服务端元数据中存储提交修改信息的commit信息和表示文件目录结构的fs信息克隆至客户端对应的虚拟磁盘系统中;通过虚拟磁盘系统获取预设上传时间段内系统的文件变化信息,生成文件变化信息对应的新增commit信息,将新增commit信息提交至服务端;在服务端收到新增commit信息后,获取服务端在预设上传时间段内的服务端commit信息,进行信息比对以获得差异commit信息;
将差异commit信息添加至服务端commit信息中,并将差异commit信息返回至虚拟磁盘系统;通过虚拟磁盘系统,获取差异commit信息对应的文件内容Blocks块,上传文件内容Blocks块至服务端,以使服务端对文件内容Blocks块进行入库操作,并更新对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态;基于预设定时下载时间段,虚拟磁盘系统获取系统新增commit信息和服务端新增commit信息,以进行信息比对,在存在信息差异时,虚拟磁盘系统提交系统新增commit信息至服务端,以获得返回的服务端fs信息,以使虚拟磁盘系统更新系统fs信息;在客户端触发文件操作时,虚拟磁盘系统确定客户端是否存在文件操作对应的文件内容Blocks块,以在不存在对应的文件内容Blocks块时,通过客户端对应的虚拟磁盘系统从服务端中下载到客户端中,并更新文件内容Blocks块对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态;在存在对应的文件内容Blocks块时,通过比对文件内容Blocks块对应的客户端文件与服务端文件的文件扩展属性,确定是否需要将客户端文件更新为服务端文件;在将客户端文件更新为服务端文件的同时,更新对应的文件在虚拟磁盘系统中的文件扩展属性和文件角标状态。
[0058] 除此之外,本申请实施例还提供了一种非易失性计算机存储介质,其上存储有可执行指令,在该可执行指令被执行时,实现如上述的一种虚拟磁盘系统中的文件同步方法。
[0059] 至此,已经结合前文的多个实施例描述了本公开的技术方案,但是,本领域技术人员容易理解的是,本公开的保护范围并不仅限于这些具体实施例。在不偏离本公开技术原理的前提下,本领域技术人员可以对上述各个实施例中的技术方案进行拆分和组合,也可以对相关技术特征作出等同的更改或替换,凡在本公开的技术构思和/或技术原理之内所做的任何更改、等同替换、改进等都将落入本公开的保护范围之内。