本发明涉及计算机,更具体的说是涉及一种网盘终端的文件同步系统及方法。
背景技术:
1、网盘,又称网络硬盘、网络u盘、云盘,是一种基于网络的在线存储服务。网盘向用户提供文件的存储、共享、访问、备份等文档管理功能。用户可以通过因特网管理、编辑网盘里的文件。
2、为了便于用户直接从本地访问服务器上最新的文件,无论是公网云盘(例如dropbox、mega、icloud、百度网盘等)还是私有云盘(nextcloud、seafile等)均提供终端同步功能,该功能可以及时将用户本地变更提交到远端服务器(称之为上传),也可以及时将远端服务器变更同步到本地(称之为下载),极大地提升用户访问网盘的效率。
3、由于云盘特别是适合于文件的集中存储和分享,因此在企业内部得到了广泛的应用。但是,由于企业内部相比于个人网盘有着更为严苛的文档权限管理以及多人协作场景更频繁,网盘终端同步技术应用于企业级环境时,较容易出现由于权限变更或并发访问文件加锁导致的同步失败,特别是上传流程,此时大概率需要人工介入或者等待异常自行消失(例如目标文件被锁住后等待他人解锁),影响了用户使用网盘的效率,并带来不好的使用体验。
技术实现思路
1、针对现有技术中存在的问题,本发明的目的在于提供一种网盘终端的文件同步系统及方法,能够提高网盘终端文件同步的效率以及成功率。
2、本发明为实现上述目的,通过以下技术方案实现:
3、一种网盘终端的文件同步系统,包括:网盘终端、网盘服务器和通知服务器,网盘终端分别与网盘服务器和通知服务器网络连接,通知服务器与网盘服务器网络连接。
4、网盘终端包括文件变动探测组件、操作记录组件、权限管控组件和上传下载能力组件。文件变动探测组件用于通过比较网盘终端和网盘服务器的同步文件目录的版本号探测网盘终端的同步文件目录是否变化;权限管控组件用于网盘服务器同步的权限管控信息;操作记录组件用于记录未处理的文件变更事件;
5、上传下载能力组件用于上传本地变更文件和下载网盘服务器变更文件,使网盘终端和网盘服务器的文件保持同步。
6、网盘服务器用于向网盘终端分配文件同步权限,生成相应的权限管控信息发送至通知服务器。
7、通知服务器用于将权限管控信息下发至相应的网盘终端,以更新其本地的权限管控信息。
8、进一步,所述权限管控信息包括:可读权限、可写权限、可下载权限和文件加锁标识信息。
9、相应的,本发明还公开了一种网盘终端的文件同步方法,包括:
10、通过网盘服务器向网盘终端分配文件同步权限,生成相应的权限管控信息发送至通知服务器;
11、通过通知服务器将权限管控信息下发至相应的网盘终端;
12、网盘终端收到权限管控信息后,进行权限管控信息的更新;
13、当用户在对网盘终端对同步目录文件进行操作后,网盘终端进行操作识别并进行权限检查,权限检查通过后生成并存储同步目录文件的操作记录;
14、提取同步目录文件的操作记录,根据预设算法计算同步目录文件的版本号;
15、根据同步目录文件的版本号确认目录文件是否变更;
16、当目录文件发生变更时,将变更后的目录文件和相关数据上传到网盘服务器,进行文件同步更新。
17、进一步,所述网盘终端进行操作识别并进行权限检查,包括:
18、通过文件变动探测组件监控并进行操作识别;
19、通过权限管控组件根据用户名、文件路径和文件操作,结合权限管控信息判断是否允许执行当前的文件操作;
20、如果具备文件操作权限,则进行相应的文件操作,操作完成后由操作记录组件将同步目录文件的操作记录以追加的方式记录到数据库。
21、进一步,所述提取同步目录文件的操作记录,根据预设算法计算同步目录文件的版本号,包括:
22、通过上传下载组件从数据库中读取当前尚未处理同步目录文件的操作记录;
23、根据同步目录文件的操作记录获取变更后的同步目录文件及其结构信息;
24、根据变更后的同步目录文件及其结构信息使用预设算法计算变更后的同步目录文件的校验和,并将其记为变更后的版本号。
25、进一步,所述根据同步目录文件的版本号确认目录文件是否变更,包括:
26、将同步目录文件的基础版本号与变更后的版本号进行对比;
27、如果一致,则目录文件未发生变更,结束本次操作;
28、如果不一致,则目录文件发送变更。
29、进一步,所述将变更后的目录文件和相关数据上传到网盘服务器,进行文件同步更新,包括:
30、提交变更后的版本号和变更后的同步目录文件的结构信息到网盘服务器;
31、网盘服务器根据提交的信息进行权限检查,权限检查通过后将检查结果返回网盘终端;
32、网盘终端将变更后的同步目录文件上传至网盘服务器,上传完毕后,提交变更确认信息到网盘服务器,并更新相应的基础版本号。
33、进一步,所述根据变更后的同步目录文件及其结构信息使用预设算法计算变更后的同步目录文件的校验和,包括:
34、将变更后的同步目录文件映射到一个特征文件中,基于特征文件内容使用sha-1算法或md5算法计算校验和。
35、进一步,所述将变更后的同步目录文件映射到一个特征文件中,包括:
36、根据变更后的同步目录文件及其结构信息生成文件或目录的条目;
37、将文件或目录的条目集合存储在特征文件中;
38、所述条目用于记录基于当前目录下的子目录或文件内容使用sha-1算法或md5算法计算校验和,作为其id信息,还用于记录相关的数据信息。
39、进一步,所述相关的数据信息,包括:
40、子目录或文件的名称、条目类型、文件修改时间、文件修改人和文件大小;
41、其中,条目类型取值为0或1,1表示子目录,0表示文件。
42、对比现有技术,本发明有益效果在于:本发明提供了一种网盘终端的文件同步系统及方法,利用网盘服务器通过通知服务器向网盘终端分配文件同步权限,使网盘终端对同步目录文件进行操作时首先进行权限检查,检查通过后在启动同步上传流程,有效避免了因权限问题导致的同步失败。在同步上传过程中,通过利用同步目录文件计算出变更的版本号,采用版本号对比的方式确认目录文件的变更,提高了同步目录文件的变更识别效率和准确性,进而能够提高网盘终端文件同步的效率以及成功率。
1.一种网盘终端的文件同步系统,其特征在于,包括:网盘终端、网盘服务器和通知服务器,网盘终端分别与网盘服务器和通知服务器网络连接,通知服务器与网盘服务器网络连接;
2.根据权利要求1所述的网盘终端的文件同步系统,其特征在于,所述权限管控信息包括:可读权限、可写权限、可下载权限和文件加锁标识信息。
3.一种网盘终端的文件同步方法,其特征在于, 包括:
4.根据权利要求3所述的网盘终端的文件同步方法,其特征在于,所述网盘终端进行操作识别并进行权限检查,包括:
5.根据权利要求3所述的网盘终端的文件同步方法,其特征在于,所述提取同步目录文件的操作记录,根据预设算法计算同步目录文件的版本号,包括:
6.根据权利要求5所述的网盘终端的文件同步方法,其特征在于, 所述根据同步目录文件的版本号确认目录文件是否变更,包括:
7.根据权利要求6所述的网盘终端的文件同步方法,其特征在于,所述将变更后的目录文件和相关数据上传到网盘服务器,进行文件同步更新,包括:
8.根据权利要求5所述的网盘终端的文件同步方法,其特征在于,所述根据变更后的同步目录文件及其结构信息使用预设算法计算变更后的同步目录文件的校验和,包括:
9.根据权利要求8所述的网盘终端的文件同步方法,其特征在于,所述将变更后的同步目录文件映射到一个特征文件中,包括:
10.根据权利要求9所述的网盘终端的文件同步方法,其特征在于,所述相关的数据信息,包括: