一种网盘客户端的数据缓存方法及装置的制造方法

文档序号:10624508阅读:165来源:国知局
一种网盘客户端的数据缓存方法及装置的制造方法
【专利摘要】本发明公开一种网盘客户端的数据缓存方法及装置,涉及通信技术领域,用以解决现有技术中不能利用有限的缓存空间最有效地为用户提供缓存服务的问题。所述方法包括:将云端数据中最近使用频率高于预设阈值的部分以镜像文件的形式缓存在虚拟磁盘,并通过所述虚拟磁盘向用户呈现所述云端数据的全部文件元数据,其中,所述文件元数据为描述所述云端数据的数据;如果用户访问的文件缓存在所述虚拟磁盘中,通过所述虚拟磁盘访问所述文件;如果用户访问的文件没有缓存在所述虚拟磁盘中,根据所述云端数据的文件元数据,从云端下载所述文件。
【专利说明】
一种网盘客户端的数据缓存方法及装置
技术领域
[0001]本发明涉及通讯技术领域,特别是涉及一种网盘客户端的数据缓存方法及装置。
【背景技术】
[0002]随着云计算的发展,云存储作为一种新兴的存储策略越来越流行,也受到了各大互联网公司的重视。云存储系统将分散的、不同的存储资源进行连接整合,通过网络传输、分布式计算、集群服务等技术为用户提供统一的存储服务。与传统存储相比,云存储安全性高、成本低、可扩展性强,成为存储领域未来发展的趋势。存储服务提供商正在从提供单一的存储产品向提供存储服务转变。网盘正是现有云存储的一种服务提供形式。目前市面上比较流行的网盘系统有:Dropbox、金山快盘、百度云盘等。
[0003]网盘客户端作为与用户直接交互的窗口,是网盘系统不可或缺的部分。而网盘客户端的缓存策略直接影响了用户使用网盘的体验。就目前来看,网盘客户端的缓存主要分为无缓存和全缓存两种。其中,无缓存方案中,用户对网盘的所有操作都通过浏览器或客户端访问特定的网页来实现。这种方式的优点是实现简单,访问接口统一,可以跨平台、跨设备进行网盘访问而无需修改客户端本身,同时对用户端资源消耗小,但由于供网络资源的本地缓存,访问网络资源时需要手动从云端下载,用户体验不高。全缓存,一般采用虚拟磁盘方式实现,即,使用一个虚拟磁盘作为网盘的访问入口,使得用户对网络存储设备(网盘)的访问方式和对本地存储设备(本地磁盘)的访问方式统一起来,用户可以像访问本地磁盘一样访问网盘。金山快盘、DropBox等网盘均是采用虚拟磁盘方式实现的网盘客户端。但是这种实现方式依赖于本地文件系统,无法实现对用户透明的文件元数据管理。由于无法自主管理文件元数据,目前采用虚拟磁盘实现的网盘客户端都是全缓存的,即网络资源全部会在本地缓存一份,存储容量与本地存储资源紧密相关,因此极大的限制了用户在云盘存储内容的大小。
[0004]针对如何使网盘客户端能够利用有限的缓存空间最有效地为用户提供缓存服务的问题,现有技术中尚无有效的解决方案。

【发明内容】

[0005]本发明要解决的技术问题是提供一种网盘客户端的数据缓存方法及装置,用以解决现有技术中不能利用有限的缓存空间最有效地为用户提供缓存服务的问题。
[0006]—方面,本发明提供一种网盘客户端的数据缓存方法,包括:将云端数据中最近使用频率高于预设阈值的部分以镜像文件的形式缓存在虚拟磁盘,并通过所述虚拟磁盘向用户呈现所述云端数据的全部文件元数据,其中,所述文件元数据为描述所述云端数据的数据;如果用户访问的文件缓存在所述虚拟磁盘中,通过所述虚拟磁盘访问所述文件;如果用户访问的文件没有缓存在所述虚拟磁盘中,根据所述云端数据的文件元数据,从云端下载所述文件。
[0007]进一步的,所述方法还包括:在所述虚拟磁盘的剩余缓存空间小于预设缓存阈值的情况下,将最近最少访问的文件从所述虚拟磁盘中删除,直至所述剩余缓存空间大于或等于所述预设缓存阈值为止。
[0008]可选的,所述如果用户访问的文件缓存在所述虚拟磁盘中,通过所述虚拟磁盘访问所述文件包括:如果用户访问的文件缓存在所述虚拟磁盘中,通过虚拟磁盘驱动将对所述文件的访问请求重定向到所述镜像文件中。
[0009]进一步的,所述方法还包括根据用户的虚拟磁盘配置指令,重新配置所述虚拟磁盘。
[0010]可选的,所述根据用户的虚拟磁盘配置指令,重新配置所述虚拟磁盘包括:向用户提供虚拟磁盘配置界面,以使所述用户重新设置所述虚拟磁盘的盘符名、缓存空间大小及缓存阈值;卸载所述虚拟磁盘,并按照所述虚拟磁盘配置界面中的参数重新配置所述虚拟磁盘;将重新配置的所述虚拟磁盘重新挂载。
[0011]另一方面,本发明还提供一种网盘客户端的数据缓存装置,包括:缓存单元,用于将云端数据中最近使用频率高于预设阈值的部分以镜像文件的形式缓存在虚拟磁盘,并通过所述虚拟磁盘向用户呈现所述云端数据的全部文件元数据,其中,所述文件元数据为描述所述云端数据的数据;访问单元,用于:如果用户访问的文件缓存在所述虚拟磁盘中,通过所述虚拟磁盘访问所述文件;如果用户访问的文件没有缓存在所述虚拟磁盘中,根据所述云端数据的文件元数据,从云端下载所述文件。
[0012]进一步的,所述装置还包括:删除单元,用于在所述虚拟磁盘的剩余缓存空间小于预设缓存阈值的情况下,将最近最少访问的文件从所述虚拟磁盘中删除,直至所述剩余缓存空间大于或等于所述预设缓存阈值为止。
[0013]可选的,访问单元,具体用于如果用户访问的文件缓存在所述虚拟磁盘中,通过虚拟磁盘驱动将对所述文件的访问请求重定向到所述镜像文件中。
[0014]进一步的,所述装置还包括配置单元,用于根据用户的虚拟磁盘配置指令,重新配置所述虚拟磁盘。
[0015]可选的,所述配置单元,具体用于:向用户提供虚拟磁盘配置界面,以使所述用户重新设置所述虚拟磁盘的盘符名、缓存空间大小及缓存阈值;卸载所述虚拟磁盘,并按照所述虚拟磁盘配置界面中的参数重新配置所述虚拟磁盘;将重新配置的所述虚拟磁盘重新挂载。
[0016]本发明实施例提供的网盘客户端的数据缓存方法及装置,将云端数据中最近使用频率高于预设阈值的部分以镜像文件的形式缓存在虚拟磁盘,并通过所述虚拟磁盘向用户呈现所述云端数据的全部文件元数据,通过文件元数据对真实的文件数据的完整描述,即使一些文件数据本身没有在本地缓存,用户也可以获知全部文件的名称、目录、大小等信息,犹如所有文件都在本地一般,用户体验良好。当用户访问文件时,如果用户访问的文件缓存在所述虚拟磁盘中,通过所述虚拟磁盘访问所述文件;如果用户访问的文件没有缓存在所述虚拟磁盘中,根据所述云端数据的文件元数据,从云端下载所述文件,由于本地缓存的是最近最常用数据,从而充分利用本地有限的缓存资源,为用户提供了优质的缓存服务,大大提升了用户体验。
【附图说明】
[0017]图1是本发明实施例提供一种网盘客户端的数据缓存方法的一种流程图;
[0018]图2是本发明实施例中基于虚拟磁盘的缓存的实现原理的一种示意图;
[0019]图3是本发明实施例中文件过滤驱动缓存淘汰实现原理的一种示意图;
[0020]图4是本发明实施例中进行文件上传操作时网盘客户端的数据缓存方法的一种流程图;
[0021]图5是本发明实施例中进行文件下载操作时网盘客户端的数据缓存方法的一种流程图;
[0022]图6是本发明实施例提供一种网盘客户端的数据缓存装置的一种结构示意图。
【具体实施方式】
[0023]以下结合附图对本发明进行详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
[0024]如图1所示,本发明实施例提供一种网盘客户端的数据缓存方法,包括:
[0025]S11,将云端数据中最近使用频率高于预设阈值的部分以镜像文件的形式缓存在虚拟磁盘,并通过所述虚拟磁盘向用户呈现所述云端数据的全部文件元数据,其中,所述文件元数据为描述所述云端数据的数据;
[0026]S12,如果用户访问的文件缓存在所述虚拟磁盘中,通过所述虚拟磁盘访问所述文件;如果用户访问的文件没有缓存在所述虚拟磁盘中,根据所述云端数据的文件元数据,从云端下载所述文件。
[0027]本发明实施例提供的网盘客户端的数据缓存方法,将云端数据中最近使用频率高于预设阈值的部分以镜像文件的形式缓存在虚拟磁盘,并通过所述虚拟磁盘向用户呈现所述云端数据的全部文件元数据,通过文件元数据对真实的文件数据的完整描述,即使一些文件数据本身没有在本地缓存,用户也可以获知全部文件的名称、目录、大小等信息,犹如所有文件都在本地一般,用户体验良好。当用户访问文件时,如果用户访问的文件缓存在所述虚拟磁盘中,通过所述虚拟磁盘访问所述文件;如果用户访问的文件没有缓存在所述虚拟磁盘中,根据所述云端数据的文件元数据,从云端下载所述文件,由于本地缓存的是最近最常用数据,从而充分利用本地有限的缓存资源,为用户提供了优质的缓存服务,大大提升了用户体验。
[0028]具体的,基于虚拟磁盘的缓存的实现原理可如图2所示。虚拟磁盘驱动可以在系统中通过驱动的方式虚拟出一个磁盘(即虚拟磁盘(virtual disk)),由驱动程序对该虚拟磁盘的数据进行管理。对上层而言,这个虚拟出的磁盘和其他磁盘完全一样,用户可以看见所有在网盘中存储的数据资料,而对下层而言,虚拟磁盘使用镜像文件作为缓存空间的实际存储。如果用户访问的文件缓存在所述虚拟磁盘中,可以通过虚拟磁盘驱动将对所述文件的访问请求重定向到所述镜像文件中。其中,镜像文件只存储了与自身大小相匹配的部分实际数据的缓存,而通过虚拟磁盘驱动向用户呈现完整的文件元数据。如果用户访问的文件没有缓存在所述虚拟磁盘中,则可以根据所述云端数据的文件元数据,从云端下载所述文件以便实现访问。
[0029]可选的,在步骤Sll中,缓存在本地的镜像文件的大小与虚拟磁盘的缓冲空间相适应,缓存的镜像文件是云端数据的一部分。为了方便用户的使用,缓存的数据优选是用户最近最常用的数据,也就是当某些文件的最近使用频率高于预设频率时,优先将该文件缓存到本地虚拟磁盘中。在步骤S12中,借助于文件元数据,用户可以通过虚拟磁盘看到所有文件的文件名、目录、大小等信息,并通过本地缓存或者云端下载访问到相应的文件。
[0030]可以理解的,既然虚拟磁盘中缓存的数据是用户最近最常用的数据,那么随着用户对文件不断进行读写操作,虚拟磁盘中缓存的数据也可以进行相应的动态调整,淘汰掉最近最少用的数据,缓存进新的最近最常用数据。
[0031]为了使虚拟磁盘能保持一定的缓存能力,优选的,可以为虚拟磁盘设置相应的预设缓存阈值,定时查看虚拟磁盘的剩余缓存空间,或者在用户进行读写操作前查看虚拟磁盘的剩余缓存空间,在虚拟磁盘的剩余缓存空间小于预设缓存阈值的情况下,将最近最少访问的文件从所述虚拟磁盘中删除,直至所述剩余缓存空间大于或等于预设缓存阈值为止。可选的,可以在每次访问文件时,记录下相应的访问时间,对虚拟磁盘中的所有文件执行LRU (Least Recently Used,最近最少用)算法,从而筛选出最近最少用文件。
[0032]具体而言,这种筛选操作可以通过设置一层文件过滤驱动(file system filterdriver)来实现。如图3所示,在本实施例中,文件过滤驱动位于windows的文件系统驱动(file system driver)之上。用户在虚拟磁盘上的所有的读写请求都将被Windows系统内核态中运行的I/O管理器捕获并生成一个I/O请求包(IRP,I/O requset package),Windows I/O管理器检查到附加设备对象(即文件过滤驱动)存在后,I/O管理器先把IRP发送给文件过滤驱动,文件过滤驱动收到I/O管理器发送来的IRP后将其通过客户端的网络通信层发送到云端存储设备,并检查本地缓存空间大小是否大于于预设存储阀值,如果空间不足,执行LRU算法,淘汰最近最久未使用的缓存文件,直到本地剩余缓存大于或等于预设存储阀值。经过文件过滤驱动程序处理后的IRP请求再下发给文件系统驱动进行文件系统级别的逻辑写入操作,文件系统驱动再将I/O请求发送到目的设备(在本实施例中,目的设备为虚拟磁盘驱动(virtual disk driver))进行实际的写入操作。
[0033]进一步的,本发明提供的网盘客户端的数据缓存方法,还可以随时接收用户的虚拟磁盘配置指令,并根据该配置指令,重新配置所述虚拟磁盘,从而实现缓存空间的可定制。
[0034]例如,在本发明的一个实施例中,当用户需要更改虚拟磁盘的某些参数时,可以通过点击界面按钮或调用菜单等操作触发对虚拟磁盘的配置操作。接收到用户的配置操作指令后,系统可以进行如下响应:
[0035]向用户提供虚拟磁盘配置界面,以使所述用户重新设置所述虚拟磁盘的盘符名、缓存空间大小及缓存阈值;
[0036]卸载虚拟磁盘,并按照所述虚拟磁盘配置界面中的参数重新配置虚拟磁盘;
[0037]将重新配置的虚拟磁盘重新挂载。
[0038]这样,用户就可以根据需要随时对虚拟磁盘的缓存空间缓存阈值等参数进行调整,进一步提升了用户体验。
[0039]下面通过具体的实施例对本发明提供的网盘客户端的数据缓存方法进行详细说明。
[0040]如图4所示,当用户在虚拟磁盘中添加/修改文件触发上传操作时,虚拟磁盘可以进行如下缓存:
[0041]S201,捕获到添加/修改文件操作;
[0042]S202,发送文件内容校验码到云端服务器,确认有没有相同文件存在,不存在则上传新文件内容到云端服务器;
[0043]S203,更新文件访问记录表,将该文件唯一标识放入表尾,代表该文件最近被访问过;
[0044]S204,验证缓存空间是否已达到阀值,如果达到,执行LRU算法,淘汰最近最久未使用的文件缓存数据,直到剩余缓存空间大于阀值。
[0045]S205,将该文件写入本地缓存,完成上传操作。
[0046]如图5所示,当用户访问云端文件触发下载操作时,虚拟磁盘可以进行如下缓存:
[0047]S301,用户访问虚拟磁盘中的文件,如果该文件在本地有缓存,则直接访问。
[0048]S302,该文件在本地无缓存,客户端向云端请求该文件数据。云端向客户端发送该文件内容。
[0049]S303,更新文件访问记录表,将该文件唯一标识放入表尾,代表该文件最近被访问过。
[0050]S304,验证缓存空间是否已达到阀值,如果达到,执行LRU算法,淘汰最近最久未使用的文件缓存数据,直到缓存空间大于阀值。
[0051 ] S305,将该文件写入本地缓存,完成下载操作。
[0052]本实施例以文件过滤驱动作为文件系统监控手段,监控虚拟磁盘驱动构建出的缓存空间中的文件变化,保证有限的缓存空间得到有效利用。
[0053]相应的,如图6所示,本发明的实施例还提供一种网盘客户端的数据缓存装置,包括:
[0054]缓存单元41,用于将云端数据中最近使用频率高于预设阈值的部分以镜像文件的形式缓存在虚拟磁盘,并通过所述虚拟磁盘向用户呈现所述云端数据的全部文件元数据,其中,所述文件元数据为描述所述云端数据的数据;
[0055]访问单元42,用于:如果用户访问的文件缓存在所述虚拟磁盘中,通过所述虚拟磁盘访问所述文件;如果用户访问的文件没有缓存在所述虚拟磁盘中,根据所述云端数据的文件元数据,从云端下载所述文件。
[0056]本发明实施例提供的网盘客户端的数据缓存装置,缓存单元41能够将云端数据中最近使用频率高于预设阈值的部分以镜像文件的形式缓存在虚拟磁盘,并通过所述虚拟磁盘向用户呈现所述云端数据的全部文件元数据,通过文件元数据对真实的文件数据的完整描述,即使一些文件数据本身没有在本地缓存,用户也可以获知全部文件的名称、目录、大小等信息,犹如所有文件都在本地一般,用户体验良好。当用户访问文件时,如果用户访问的文件缓存在所述虚拟磁盘中,访问单元42能够通过所述虚拟磁盘访问所述文件;如果用户访问的文件没有缓存在所述虚拟磁盘中,访问单元42能够根据所述云端数据的文件元数据,从云端下载所述文件,由于本地缓存的是最近最常用数据,从而充分利用本地有限的缓存资源,为用户提供了优质的缓存服务,大大提升了用户体验。
[0057]进一步的,该装置还可包括删除单元,用于在所述虚拟磁盘的剩余缓存空间小于预设缓存阈值的情况下,将最近最少访问的文件从所述虚拟磁盘中删除,直至所述剩余缓存空间大于或等于所述预设缓存阈值为止。
[0058]可选的,访问单元42,可具体用于如果用户访问的文件缓存在所述虚拟磁盘中,通过虚拟磁盘驱动将对所述文件的访问请求重定向到所述镜像文件中。
[0059]进一步的,该装置还包括配置单元,用于根据用户的虚拟磁盘配置指令,重新配置所述虚拟磁盘。
[0060]可选的,配置单元,可具体用于:向用户提供虚拟磁盘配置界面,以使所述用户重新设置所述虚拟磁盘的盘符名、缓存空间大小及缓存阈值;卸载所述虚拟磁盘,并按照所述虚拟磁盘配置界面中的参数重新配置所述虚拟磁盘;将重新配置的所述虚拟磁盘重新挂载。
[0061]尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。
【主权项】
1.一种网盘客户端的数据缓存方法,其特征在于,包括: 将云端数据中最近使用频率高于预设阈值的部分以镜像文件的形式缓存在虚拟磁盘,并通过所述虚拟磁盘向用户呈现所述云端数据的全部文件元数据,其中,所述文件元数据为描述所述云端数据的数据; 如果用户访问的文件缓存在所述虚拟磁盘中,通过所述虚拟磁盘访问所述文件;如果用户访问的文件没有缓存在所述虚拟磁盘中,根据所述云端数据的文件元数据,从云端下载所述文件。2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 在所述虚拟磁盘的剩余缓存空间小于预设缓存阈值的情况下,将最近最少访问的文件从所述虚拟磁盘中删除,直至所述剩余缓存空间大于或等于所述预设缓存阈值为止。3.根据权利要求1所述的方法,其特征在于,所述如果用户访问的文件缓存在所述虚拟磁盘中,通过所述虚拟磁盘访问所述文件包括: 如果用户访问的文件缓存在所述虚拟磁盘中,通过虚拟磁盘驱动将对所述文件的访问请求重定向到所述镜像文件中。4.根据权利要求1至3中任一项所述的方法,其特征在于,还包括根据用户的虚拟磁盘配置指令,重新配置所述虚拟磁盘。5.根据权利要求4所述的方法,其特征在于,所述根据用户的虚拟磁盘配置指令,重新配置所述虚拟磁盘包括: 向用户提供虚拟磁盘配置界面,以使所述用户重新设置所述虚拟磁盘的盘符名、缓存空间大小及缓存阈值; 卸载所述虚拟磁盘,并按照所述虚拟磁盘配置界面中的参数重新配置所述虚拟磁盘; 将重新配置的所述虚拟磁盘重新挂载。6.一种网盘客户端的数据缓存装置,其特征在于,包括: 缓存单元,用于将云端数据中最近使用频率高于预设阈值的部分以镜像文件的形式缓存在虚拟磁盘,并通过所述虚拟磁盘向用户呈现所述云端数据的全部文件元数据,其中,所述文件元数据为描述所述云端数据的数据; 访问单元,用于:如果用户访问的文件缓存在所述虚拟磁盘中,通过所述虚拟磁盘访问所述文件;如果用户访问的文件没有缓存在所述虚拟磁盘中,根据所述云端数据的文件元数据,从云端下载所述文件。7.根据权利要求6所述的装置,其特征在于,还包括: 删除单元,用于在所述虚拟磁盘的剩余缓存空间小于预设缓存阈值的情况下,将最近最少访问的文件从所述虚拟磁盘中删除,直至所述剩余缓存空间大于或等于所述预设缓存阈值为止。8.根据权利要求6所述的装置,其特征在于,所述访问单元,具体用于如果用户访问的文件缓存在所述虚拟磁盘中,通过虚拟磁盘驱动将对所述文件的访问请求重定向到所述镜像文件中。9.根据权利要求6至8中任一项所述的装置,其特征在于,还包括配置单元,用于根据用户的虚拟磁盘配置指令,重新配置所述虚拟磁盘。10.根据权利要求9所述的装置,其特征在于,所述配置单元,具体用于: 向用户提供虚拟磁盘配置界面,以使所述用户重新设置所述虚拟磁盘的盘符名、缓存空间大小及缓存阈值; 卸载所述虚拟磁盘,并按照所述虚拟磁盘配置界面中的参数重新配置所述虚拟磁盘; 将重新配置的所述虚拟磁盘重新挂载。
【文档编号】G06F3/06GK105988721SQ201510070970
【公开日】2016年10月5日
【申请日】2015年2月10日
【发明人】罗圣美, 王志勇, 段翰聪
【申请人】中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1