发明内容
有鉴于此,本发明的目的在于提出一种云盘文件同步装置和方法,能够有效解决多客户端与服务端之间文件同步的问题。
基于上述目的本发明提供的云盘文件同步装置,包括云盘客户端和云盘服务端,所述云盘客户端包括本地文件状态监控器、本地文件同步处理器、本地同步文件集合、同步规则和本地数据库;其中,所述本地文件状态监控器、所述本地文件同步处理器分别与所述本地同步文件集合连接,同时所述本地文件状态监控器和所述本地文件同步处理器相连;所述本地数据库分别与所述本地文件状态监控器、所述本地文件同步处理器连接,所述同步规则与所述本地文件同步处理器相连;
所述云盘服务端包括云端文件状态监控器、云端文件同步处理器、云端同步文件集合和云端数据库,所述云端文件状态监控器、所述云端文件同步处理器分别与所述云端同步文件集合连接,所述云端数据库与所述云端文件同步处理器相连;所述云端文件状态监控器和所述本地文件状态监控器相连,所述云端文件同步处理器和所述本地文件同步处理器相连。
可选地,所述云盘服务端还包括客户端集合,所述云端文件状态监控器、所述云端文件同步处理器分别与所述客户端集合连接;所述客户端集合是连接到所述云盘服务端的各客户端集合,该集合记录连接到该服务端的所有客户端。
进一步地,所述云盘服务端是单服务端模式,或者是分布式服务端模式。
进一步地,所述云盘客户端为PC机客户端、web客户端和手机应用客户端。
还有,本发明提供了一种云盘文件自动同步方法,其特征在于,包括步骤:
第一步,所述本地文件状态监控器监控到本地文件或者云端文件发生改变,并且所述本地文件状态监控器更新所述本地同步文件集合;
第二步,所述本地文件同步处理器根据所述同步规则启动同步任务;
第三步,所述本地文件同步处理器与所述云端文件同步处理器配合执行文件同步;
第四步,文件同步完成后,所述本地文件同步处理器更新所述本地数据库和所述本地同步文件集合的数据;所述云端文件同步处理器更新所述云端数据库和所述云端同步文件集合。
可选地,在进行步骤三之前,所述本地文件同步处理器向所述云端文件同步处理器发出文件同步请求,然后判断所述云端文件同步处理器是否接受该文件同步请求,若接受则进行步骤二,若不接受则返回所述本地文件同步处理器向所述云端文件同步处理器发出文件同步请求的步骤。
进一步地,在步骤一中,所述本地文件状态监控器监控云端文件发生改变,是所述本地文件状态监控器与所述云端文件状态监控器连接,所述云端文件状态监控器监控所述云端同步文件集合是否发生改变,若发生改变则告知所述本地文件状态监控器。
另外,本发明还提供了一种云盘文件手动同步方法,包括步骤:
第一步,手工触发文件同步事件;
第二步,所述本地文件状态监控器计算所述本地同步文件集合;
第三步,所述本地文件同步处理器根据所述同步规则启动同步任务;
第四步,所述本地文件同步处理器与所述云端文件同步处理器配合执行文件同步;
第五步,文件同步完成后,所述本地文件同步处理器更新所述本地数据库和所述本地同步文件集合的数据;所述云端文件同步处理器更新所述云端数据库和所述云端同步文件集合。
可选地,在进行步骤四之前,所述本地文件同步处理器向所述云端文件同步处理器发出文件同步请求;然后判断所述云端文件同步处理器是否接受该文件同步请求,若接受则进行步骤四,若没有接受则返回所述本地文件同步处理器向所述云端文件同步处理器发出文件同步请求的步骤。
从上面所述可以看出,本发明提供的一种云盘文件同步装置和方法,通过在云盘客户端中本地文件状态监控器、本地文件同步处理器分别与本地同步文件集合连接,本地文件状态监控器和本地文件同步处理器相连;本地数据库分别与本地文件状态监控器、本地文件同步处理器连接,同步规则与本地文件同步处理器相连;在云盘服务端中云端文件状态监控器、云端文件同步处理器分别与云端同步文件集合连接,云端数据库与云端文件同步处理器相连;云端文件状态监控器和本地文件状态监控器相连,云端文件同步处理器和本地文件同步处理器相连。从而,本发明所述的云盘文件同步装置和方法可以方便、快捷地实现客户端与服务端之间的文件同步。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
参阅图1所示,为本发明实施例一种云盘文件同步装置的结构示意图;所述云盘文件同步装置包括云盘客户端和云盘服务端,在本实施例中可能是至少一个云盘客户端,云盘客户端可以为PC机客户端、web客户端、手机应用客户端等等。所述云盘服务端包括应用服务和数据库,在本实施例中云盘服务端可能是单服务端模式,也可能分布式服务端模式。
作为本发明的一个实施例,云盘客户端包括本地文件状态监控器101、本地文件同步处理器102、本地同步文件集合103、同步规则104和本地数据库105。其中,本地文件状态监控器101、本地文件同步处理器102分别与本地同步文件集合103连接,同时本地文件状态监控器101和本地文件同步处理器102相连。本地数据库105分别与本地文件状态监控器101、本地文件同步处理器102连接,同步规则104与本地文件同步处理器102相连。
作为本发明的另一个实施例,云盘服务端包括云端文件状态监控器106、云端文件同步处理器107、云端同步文件集合109和云端数据库110。其中,云端文件状态监控器106、云端文件同步处理器107分别与云端同步文件集合109连接。云端数据库110与云端文件同步处理器107相连。另外,云端文件状态监控器106和本地文件状态监控器101相连,云端文件同步处理器107和本地文件同步处理器102相连。
较佳地,云盘服务端还设置有客户端集合108,云端文件状态监控器106、云端文件同步处理器107分别与客户端集合108连接。客户端集合108是连接到云盘服务端的各客户端集合,该集合记录连接到该服务端的所有客户端。另外,有可能同一个用户在多个客户端来请求文件同步,不同的客户端要进行同步的文件集合各不相同,服务端需要知道有哪些客户端需要同步哪些文件。
参阅图2所示,为本发明实施例一种云盘文件自动同步方法的流程示意图。所述云盘文件自动同步方法可以是定时或者是实时,定时则是设定好自动同步的时间,实时则是只要发现发生了文件变化就进行自动同步。包括以下步骤:
步骤201,本地文件状态监控器101监控到本地文件或者云端文件发生改变,并且本地文件状态监控器101更新本地同步文件集合103。
在本发明的实施例中,本地文件状态监控器101需要实时的更新本地同步文件集合103,以便作为本地文件同步处理器102执行文件同步的依据。其中,本地文件状态监控器101实时的更新本地同步文件集合103,可以是只要本地文件状态监控器101发现变化就可以更新本地同步文件集合103。
还有,本地文件状态监控器101监控到本地文件发生改变,可以是本地文件状态监控器101监控到本地数据库105发生数据变化。本地文件状态监控器101与云端文件状态监控器106连接,云端文件状态监控器106监控云端同步文件集合109是否发生改变,若发生改变则告知本地文件状态监控器101。
步骤202,本地文件同步处理器102根据同步规则104启动同步任务。
作为本发明的一个实施例,本地文件状态监控器101可以直接与本地文件同步处理器102相连,本地文件状态监控器101监控到本地文件或者云端文件发生改变时,本地文件状态监控器101自动触发本地文件同步处理器102。本地文件状态监控器101与本地文件同步处理器102之间也可以没有直接的触发关系,而是本地文件同步处理器102自行依据一定的规则轮询本地同步文件集合103,然后本地文件同步处理器102启动同步。
另外,所述的同步规则104可以是用户设定的也可以是默认设定,其规则可以例如是规定间隔多长时间进行同步,还例如当同步发生冲突的时候以时间为前后排序依据或者以客户端优选等级为前后排序依据。
步骤203,本地文件同步处理器102向云端文件同步处理器107发出文件同步请求。
在本发明的另一个实施例中,本地文件同步处理器102向云端文件同步处理器107发出文件同步请求,是本地文件同步处理器102和云端文件同步处理器107之间建立同步关系。当然,如果云盘客户端与云盘服务端是在线连接的,也可以直接开始同步。但有时,考虑到可能会有多个云盘客户端,就可能需要进行排队,这里优选先建立同步关系,然后执行同步操作。
步骤204,判断云端文件同步处理器107是否接受文件同步请求,若接受则进行步骤205,若不接受则返回步骤203。
步骤205,本地文件同步处理器102与云端文件同步处理器107配合执行文件同步。
在本发明的实施例中,文件同步可能有多种操作,例如:上传文件/文件夹、修改云端文件名/文件夹名、修改客户端文件名/文件夹名、删除本地文件/文件夹、删除云端文件/文件夹、移动本地文件/文件夹、移动云端文件/文件夹等。
具体来说,本地文件同步处理器102与云端文件同步处理器107互相配合执行文件的同步,例如上传文件,需要本地文件同步处理器102传递,云端文件同步处理器107接收并写入到云端数据库110中;若是改名,将本地文件同步处理器102的改名同步到云端文件同步处理器107,需要云端文件同步处理器107依据本地文件同步处理器102传过来的名称修改服务端文件的名称,当然或者是将云端文件同步处理器107的改名同步到本地文件同步处理器102,需要本地文件同步处理器102依据云端文件同步处理器107传过来的名称修改客户端文件的名称;另外,还有本地文件同步处理器102与云端文件同步处理器107配合执行移动、删除等等文件同步的工作。
步骤206,文件同步完成后,本地文件同步处理器102更新本地数据库105和本地同步文件集合103的数据,以备作为下一次同步的依据。并且,云端文件同步处理器107更新云端数据库110和云端同步文件集合109,以备作为其他客户端的同步依据。
参阅图3所示,为本发明实施例一种云盘文件手动同步方法的流程示意图,所述云盘文件手动同步方法包括:
步骤301,手工触发文件同步事件。可以是一个按钮或者一个菜单,用户点击之后,启动同步任务。
步骤302,本地文件状态监控器101计算本地同步文件集合103。
在本发明的实施例中,本地文件状态监控器101计算本地同步文件集合103就是计算发生变化了的文件要执行的操作。例如,分别计算对每一个文件执行上传、下载、重命名、移动、删除等的同步操作。当然,计算可能还会依据其他因素,例如在同步规则104中的一些规则。
步骤303,本地文件同步处理器102根据同步规则104启动同步任务。这里设定本地文件状态监控器101要按同步规则104中的规则来启动同步任务,当然也可以直接启动,直接启动是最简单的规则。
步骤304,本地文件同步处理器102向云端文件同步处理器107发出文件同步请求。
在本发明的另一个实施例中,本地文件同步处理器102向云端文件同步处理器107发出文件同步请求,是本地文件同步处理器102和云端文件同步处理器107之间建立同步关系。当然,如果云盘客户端与云盘服务端是在线连接的,也可以直接开始同步。但有时,考虑到可能会有多个云盘客户端,就可能需要进行排队,这里优选先建立同步关系,然后执行同步操作。
步骤305,判断云端文件同步处理器107是否接受文件同步请求,若接受则进行步骤306,若没有接受则返回步骤304。
步骤306,本地文件同步处理器102与云端文件同步处理器107配合执行文件同步。
在本发明的实施例中,文件同步可能有多种操作,例如:上传文件/文件夹、修改云端文件名/文件夹名、修改客户端文件名/文件夹名、删除本地文件/文件夹、删除云端文件/文件夹、移动本地文件/文件夹、移动云端文件/文件夹等。
具体来说,本地文件同步处理器102与云端文件同步处理器107互相配合执行文件的同步,例如上传文件,需要本地文件同步处理器102传递,云端文件同步处理器107接收并写入到云端数据库110中;若是改名,将本地文件同步处理器102的改名同步到云端文件同步处理器107,需要云端文件同步处理器107依据本地文件同步处理器102传过来的名称修改服务端文件的名称,当然或者是将云端文件同步处理器107的改名同步到本地文件同步处理器102,需要本地文件同步处理器102依据云端文件同步处理器107传过来的名称修改客户端文件的名称;另外,还有本地文件同步处理器102与云端文件同步处理器107配合执行移动、删除等等文件同步的工作。
步骤307,文件同步完成后,本地文件同步处理器102更新本地数据库105和本地同步文件集合103的数据,以备作为下一次同步的依据。并且,云端文件同步处理器107更新云端数据库110和云端同步文件集合109,以备作为其他客户端的同步依据。
由此可以看出,本发明实现的一种云盘文件同步装置和方法,创造性的提出了云盘客户端与云盘服务端之间的文件同步方式;本发明无论是自动文件同步还是手工文件同步,都有效地解决了所遇到的时效问题、完备问题和冲突问题;其中,本发明解决时效问题就是有实时同步方式,还有定时、手工同步方式,实时同步保证及时性,一旦失败,还有定时以及手工方式补救;解决完备问题可以是全盘同步,也可以是选择同步,保证按照用户意愿来处理同步;解决冲突问题可以是当多个客户端都对同一个文件进行修改,需要同步到服务端的时候,需要有冲突规则来处理,例如同步规则中设定依据时间,依据客户端优先等等;最后,整个所述的云盘文件同步装置和方法简便、紧凑,易于实现。
所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。