文件存储方法及装置与流程

文档序号:16247896发布日期:2018-12-11 23:45阅读:164来源:国知局
文件存储方法及装置与流程

本发明涉及存储技术领域,特别涉及一种文件存储方法及装置。

背景技术

目前,用户利用电子设备(例如,电脑)存储流式视频数据文件,该流式视频数据文件用于存储利用监控设备进行视频录制得到的视频数据。用户可在电子设备上对已存储的流式视频数据文件进行管理,包括对流式视频数据文件的查看、存储以及删除和文件夹的新建、删除等等。

然而,电子设备的存储空间通常较小,流式视频数据文件相对于其他普通文件(例如,文档、ppt)占用的存储空间较大,电子设备所能够存储的流式视频数据文件的数量有限。随着电子设备存储的流式视频数据文件的数量的增加,其存储资源的使用率也逐步提高,在其存储资源的使用达到极限时,或者,需要存储的流式视频数据文件所要占用的存储空间比较庞大时,电子设备的本地存储空间不能够满足流式视频数据文件的存储需求。



技术实现要素:

为了解决现有技术中电子设备的本地存储空间不能够满足流式视频数据文件的存储需求的问题,本发明实施例提供了一种文件存储方法及装置。所述技术方案如下:

第一方面,提供了一种存储文件的方法,应用于中间服务器,所述方法包括:接收客户端发送的携带有第一文件信息的存储请求,所述第一文件信息包括待存储文件的存储路径和文件描述信息;为所述待存储文件生成第一存储标识,向管理服务器发送所述第一文件信息以及所述第一存储标识,所述第一文件信息用于所述管理服务器根据所述存储路径和所述文件描述信息,对应保存所述文件描述信息、所述待存储文件的目录标识和所述待存储文件所在上级目录的目录标识之间的对应关系以及对应保存所述待存储文件的目录标识和所述第一存储标识的对应关系;接收所述客户端发送的所述待存储文件,将所述第一存储标识和所述待存储文件对应存储至云存储系统。

可选的,所述接收所述客户端发送的所述待存储文件,将所述第一存储标识和所述待存储文件对应存储至云存储系统,包括:接收所述客户端发送的所述待存储文件中的一段数据,所述一段数据包括偏移量,所述偏移量为所述一段数据在所述待存储文件中的起始位置;根据所述偏移量将所述一段数据存储至缓存空间,所述缓存空间中包括至少一段数据,所述至少一段数据中的每段数据在所述缓存空间中连续存储;在所述缓存空间中的数据量达到预设数据量或者接收完所述待存储文件时,将所述缓存空间中的数据与所述第一存储标识对应存储至所述云存储系统。

可选的,所述方法还包括:接收所述客户端发送的携带有第二文件信息的下载请求,所述第二文件信息包括待下载文件的存储路径和文件描述信息;向所述管理服务器发送携带有所述第二文件信息的查询请求,所述查询请求用于触发所述管理服务器根据所述待下载文件的存储路径和文件描述信息获取所述待下载文件的第二存储标识;接收所述管理服务器发送的所述第二存储标识,根据所述第二存储标识从所述云存储系统下载所述待下载文件,向所述客户端发送所述待下载文件。

可选的,所述根据所述第二存储标识从所述云存储系统下载所述待下载文件,向所述客户端发送所述待下载文件,包括:根据所述第二存储标识从所述云存储系统下载一段数据,所述一段数据为所述待下载文件中的部分数据;依次向所述客户端发送所述一段数据的各个子段数据。

第二方面,提供了一种存储文件的方法,应用于管理服务器,所述方法包括:接收中间服务器发送的携带有第一文件信息以及第一存储标识的添加请求,所述第一文件信息包括待存储文件的存储路径和文件描述信息,所述第一存储标识为所述中间服务器在接收到携带有所述第一文件信息的存储请求时为所述待存储文件生成的,所述第一存储标识用于标识所述待存储文件;根据所述待存储文件的存储路径获取所述待存储文件所在的上级目录的目录标识;以及,为所述待存储文件分配目录标识;将所述文件描述信息、所述待存储文件的目录标识和所述上级目录的目录标识对应保存在文件描述信息、目录标识与上级目录的目录标识的对应关系中,以及将所述待存储文件的目录标识和所述第一存储标识对应保存在目录标识与存储标识的对应关系中。

可选的,所述方法还包括:接收所述中间服务器发送的携带有第二文件信息的查询请求,所述第二文件信息包括待下载文件的存储路径和文件描述信息;根据所述第二文件信息,获取所述待下载文件的第二存储标识;向所述中间服务器发送所述第二存储标识。

可选的,所述根据所述第二文件信息,获取所述待下载文件的第二存储标识,包括:根据所述第二文件信息,从文件描述信息、目录标识与上级目录的目录标识的对应关系中获取所述待下载文件的目录标识;根据所述待下载文件的目录标识,从目录标识与存储标识的对应关系中获取所述待下载文件的第二存储标识。

第三方面,提供了一种存储文件的装置,所述装置包括:第一接收模块,用于接收客户端发送的携带有第一文件信息的存储请求,所述第一文件信息包括待存储文件的存储路径和文件描述信息;生成模块,用于为所述待存储文件生成第一存储标识,向管理服务器发送所述第一文件信息以及所述第一存储标识,所述第一文件信息用于所述管理服务器根据所述存储路径和所述文件描述信息,对应保存所述文件描述信息、所述待存储文件的目录标识和所述待存储文件所在上级目录的目录标识之间的对应关系以及对应保存所述待存储文件的目录标识和所述第一存储标识的对应关系;第二接收模块,用于接收所述客户端发送的所述待存储文件,将所述生成模块生成的第一存储标识和所述待存储文件对应存储至云存储系统。

可选的,所述第二接收模块,包括:接收单元,用于接收所述客户端发送的所述待存储文件中的一段数据,所述一段数据包括偏移量,所述偏移量为所述一段数据在所述待存储文件中的起始位置;第一存储单元,用于根据所述偏移量将所述接收单元接收到一段数据存储至缓存空间,所述缓存空间中包括至少一段数据,所述至少一段数据中的每段数据在所述缓存空间中连续存储;第二存储单元,用于在所述缓存空间中的数据量达到预设数据量或者接收完所述待存储文件时,将所述缓存空间中的数据与所述第一存储标识对应存储至所述云存储系统。

可选的,所述装置还包括:第三接收模块,用于接收所述客户端发送的携带有第二文件信息的下载请求,所述第二文件信息包括待下载文件的存储路径和文件描述信息;发送模块,用于向所述管理服务器发送携带有所述第二文件信息的查询请求,所述查询请求用于触发所述管理服务器根据所述待下载文件的存储路径和文件描述信息获取所述待下载文件的第二存储标识;下载模块,用于接收所述管理服务器发送的所述第二存储标识,根据所述第二存储标识从所述云存储系统下载所述待下载文件,向所述客户端发送所述待下载文件。

可选的,所述下载模块,包括:下载单元,用于根据所述第二存储标识从所述云存储系统下载一段数据,所述一段数据为所述待下载文件中的部分数据;发送单元,用于依次向所述客户端发送所述一段数据的各个子段数据。

可选的,所述装置包括:第一接收模块,用于接收中间服务器发送的携带有第一文件信息以及第一存储标识的添加请求,所述第一文件信息包括待存储文件的存储路径和文件描述信息,所述第一存储标识为所述中间服务器在接收到携带有所述第一文件信息的存储请求时为所述待存储文件生成的,所述第一存储标识用于标识所述待存储文件;第一获取模块,用于根据所述待存储文件的存储路径获取所述待存储文件所在的上级目录的目录标识;分配模块,用于为所述待存储文件分配目录标识;保存模块,用于将所述文件描述信息、所述待存储文件的目录标识和所述上级目录的目录标识对应保存在文件描述信息、目录标识与上级目录的目录标识的对应关系中,以及将所述待存储文件的目录标识和所述第一存储标识对应保存在目录标识与存储标识的对应关系中。

可选的,所述装置还包括:第二接收模块,用于接收所述中间服务器发送的携带有第二文件信息的查询请求,所述第二文件信息包括待下载文件的存储路径和文件描述信息;第二获取模块,用于根据所述第二文件信息,获取所述待下载文件的第二存储标识;发送模块,用于向所述中间服务器发送所述第二存储标识。

可选的,所述第二获取模块,包括:第一获取单元,用于根据所述第二文件信息,从文件描述信息、目录标识与上级目录的目录标识的对应关系中获取所述待下载文件的目录标识;第二获取单元,用于根据所述待下载文件的目录标识,从目录标识与存储标识的对应关系中获取所述待下载文件的第二存储标识。

本发明实施例提供的技术方案带来的有益效果是:

通过中间服务器在接收到客户端发送的存储请求时,为客户端请求存储的待存储文件分配了第一存储标识,通过将该第一存储标识以及待存储文件的第一文件信息发送至管理服务器,以便管理服务器在待存储文件的存储路径下创建待存储文件,中间服务器还通过将第一存储标识以及待存储文件的文件数据对应存储至云存储系统,使待存储文件的文件数据不再需要存储在本地,解决了相关技术中电子设备的本地存储空间不能够满足流式视频数据文件的存储需求的问题;达到了向用户提供大量的网络存储空间以存储文件的效果。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1-1是本发明的示例性实施例所涉及的文件系统的结构示意图;

图1-2是本发明的示例性实施例所涉及的文件目录的目录结构的示意图;

图1-3是本发明的示例性实施例所涉及的文件目录的示意图;

图2是本发明一个实施例提供的存储文件的方法的流程图;

图3是本发明一个实施例提供的中间服务器接收客户端发送的该待存储文件,将该第一存储标识和该待存储文件对应存储至云存储系统的流程图;

图4是本发明一个实施例提供的从文件系统下载文件的流程图;

图5-1是本发明一个实施例提供的中间服务器根据该第二存储标识从云存储系统下载待下载文件,向客户端发送待下载文件的流程图;

图5-2是本发明再一个实施例提供的应用于管理服务器的存储文件的方法的流程图;

图5-3是本发明再一个实施例提供的客户端从文件系统中下载文件时管理服务器向中间服务器提供待下载文件的第二存储标识的流程图;

图5-4是本发明再一个实施例提供的应用于中间服务器的存储文件的方法的流程图;

图5-5是本发明再一个实施例提供的客户端从文件系统中下载文件时中间服务器向客户端提供该文件的流程图;

图6-1是本发明一个实施例中提供的存储文件装置的结构方框图;

图6-2是本发明另一个实施例中提供的存储文件装置600的结构方框图;

图7-1是本发明再一个实施例中提供的存储文件装置的结构方框图;

图7-2是本发明再一个实施例中提供的存储文件装置700的结构方框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

图1-1是本发明的示例性实施例所涉及的文件系统的结构示意图,该文件系统包括:管理服务器110、至少一个中间服务器120、至少一个客户端130以及云存储系统140。

管理服务器110是网络存储(networkattachedstorage,nas)设备,可以通过有线或者无线网络与至少一个中间服务器120相连接。

中间服务器120是nas设备,也是网关(gateway)设备,可以为一台服务器,也可以为由多台服务器组成的服务器集群。中间服务器120通过有线或者无线网络与至少一个客户端130连接。

客户端130在电子设备中运行,该电子设备可以包括监控摄像机、平板电脑、智能电视、膝上型便携计算机和台式计算机等等。

可选的,电子设备的操作系统为window操作系统时,电子设备中安装有利用信息服务块(servermessageblock,smb)客户端130,smb客户端130可与安装有smb服务端的中间服务器120进行通信,中间服务器120的操作系统为linux操作系统。其中,smb客户端130与smb服务端基于smb协议进行通信,smb协议用于window操作系统与linux操作系统之间共享数据。

可选的,电子设备的操作系统为linux操作系统时,电子设备中安装有网络文件系统(networkfilesystem,nfs)客户端130,nfs客户端130可与安装有nfs服务端的中间服务器120进行通信,中间服务器的操作系统为linux操作系统。nfs客户端130与nfs服务端基于nfs协议进行通信,nfs协议用于多个linux操作系统之间共享数据。

云存储系统140是由多台服务器组成的服务器集群,其中包括至少一台云存储服务器,用于提供云存储服务。云存储系统140通过有线或者无线网络与中间服务器120连接。可选的,云存储系统140可以是对象云存储系统。

其中,管理服务器110用于维护文件系统的文件目录。具体的:

管理服务器110可利用第一文件维护文件系统的文件目录,该文件目录可以为树状结构,例如参见图1-2所示的文件目录。第一文件用于存储目录标识、上级目录的目录标识与文件描述信息的对应关系。

第一文件中包括文件系统中的各个文件夹对应的第一记录以及每个文件对应的第一记录。

每个文件夹对应的第一记录包括该文件夹对应目录的目录标识、该文件夹所在上级目录的目录标识以及该文件夹的文件描述信息。该文件夹对应的目录是指文件系统中根文件夹嵌套至该文件夹所形成的目录,该文件夹所在上级目录是指文件系统中根文件夹嵌套至该文件夹的上级文件夹所形成的目录,该文件夹的文件描述信息包括该文件夹的名称。

每个文件对应的第一记录包括该文件的目录标识、该文件所在上级目录的目录标识以及该文件的文件描述信息。其中,该文件的目录标识为该文件对应目录的目录标识,该文件对应的目录是指文件系统中根文件夹嵌套至该文件所形成的目录,该文件的文件描述信息至少包括该文件的文件名称,还可以包括该文件的文件大小、最后一次被修改的时间、最后一次被下载的时间、存储时间等等。

举例来讲,请参见表1所示的第一文件和图1-2,文件系统包括根文件夹ca和根文件夹d,根文件夹ca对应的目录标识为110ida,由于文件夹abcb1和b2,文件b3和b4的上级目录的目录标识也均为110ida,表明文件夹b1和b2,文件b3和b4abc为根文件夹ca的子文件夹和子文件。参见表1,文件夹b1的目录标识为idb1,对应的目录是指根目录a嵌套至该文件夹b1形成的目录,该目录可以表示为\a\b1,文件夹b1的上级目录的目录标识是ida;同理,文件夹b2的目录标识为idb2,对应的目录是指根目录a嵌套至该文件夹b2形成的目录,该目录可以表示为\a\b2,文件夹b2的上级目录的目录标识是ida。

文件c1和c2的上级目录的目录标识均为idb1,表明文件c1和c2文件夹b1的子文件。参见表1,文件c1的目录标识为idc1,对应的目录是指根目录a嵌套至该文件夹c1形成的目录,该目录可以表示为\a\b1\c1,文件c1的上级目录的目录标识是idb1;同理,文件c2的目录标识为idc2,对应的目录是指根目录a嵌套至该文件c2形成的目录,该目录可以表示为\a\b1\c2,文件c2的上级目录的目录标识是idb1。表1中的其他记录的含义和上述介绍的相同,不一一介绍。

表1

管理服务器110还管理第二文件,第二文件用于存储目录标识与存储标识的对应关系。第二文件中包括文件系统中每个文件的对应的第二记录,该第二记录中包括该文件的目录标识以及存储标识,即云存储系统140将每个文件的文件数据与其存储标识对应存储。

为了便于理解方法实施例,对客户端130向用户提供文件系统的文件目录的过程进行说明,说明如下:

中间服务器120安装有用户空间文件系统(filesysteminuserspace,fuse),用户可利用客户端130挂载中间服务器120的fuse,则中间服务器120可从管理服务器110中获取文件系统中的各个根文件夹的文件描述信息,将这些根文件夹的文件描述信息发送至客户端130。客户端130可针对每个文件描述信息显示一个文件夹图标,且该文件夹图标对应的名称为该文件描述信息,以显示这些文件系统的根文件夹。

用户可在客户端130对根文件夹执行打开操作,以查看该根文件夹下的子文件夹以及文件,具体的:

当客户端130在检测到用户打开某一根文件夹的操作时,确定被执行打开操作的文件夹,向中间服务器120发送获取请求,该获取请求包括该根文件夹的名称,以便中间服务器120向管理服务器110发送携带有该根文件夹的名称的查询请求。

管理服务器110接收到该查询请求后,根据该根文件夹的名称确定该根文件夹对应的目录标识。从第一文件中获取上级目录的目录标识为该根文件夹对应的目录标识每个第一记录,该每个第一记录为该根文件夹下的子文件夹或文件的第一记录。获取每个第一记录中的文件描述信息,将这些文件描述信息发送至中间服务器120,以便中间服务器120将这些文件描述信息发送至客户端130。客户端130根据这些文件描述信息显示该根文件夹下的子文件夹以及文件。

以用户打开根文件夹a来举例说明,请参见表1,管理服务器110可接收到包括该根文件夹a的名称a的查询请求,管理服务器110获取根文件夹a的目录标识为ida;将该根文件夹a的目录标识ida作为上级目录的目录标识,从第一文件中获取上级目录的目录标识为ida的各个第一记录,包括序号为1、2、3、4这四个第一记录,将该四个第一记录中的文件描述信息发送至客户端130。对于每个文件描述信息,参见图1-3,若该文件描述信息中的文件类型为文件夹,则客户端130针对该文件描述信息显示一个文件夹图标,且该文件夹图标对应的名称为该文件描述信息中的名称,如图1-3中的文件夹b1和b2;若该文件描述信息中的文件类型为文件,则客户端130针对该文件描述信息显示一个文件图标,且该文件图标对应的名称为该文件描述信息中的名称,如图1-3中的文件b3和b4。

用户还可继续在客户端130上执行打开该根文件夹下某个文件夹的操作,此时客户端130确定被执行打开操作的文件夹,获取该文件夹对应的存储路径,向中间服务器120发送携带有该存储路径的获取请求,以便中间服务器120向管理服务器110发送携带有该存储路径的查询请求。其中,文件夹对应的存储路径由根文件夹嵌套至该文件夹所涉及的文件夹的名称按照嵌套顺序排列而成。

由于文件夹对应的存储路径是由根文件夹嵌套至该文件夹所涉及的文件夹的名称按照嵌套顺序排列而成,因此管理服务器110可根据存储路径逐级确定每一级文件夹对应的目录标识,直至确定出该文件夹对应的目录标识。具体的,步骤s1、管理服务器110从第一文件中获取存储路径中根文件夹(也即,1级文件夹)的目录标识;步骤s2、管理服务器110从第一文件中获取,上级目录的目录标识为n级文件夹的目录标识且包括n+1级文件夹的名称的第一记录,从该第一记录中获取n+1级文件夹的目录标识。其中,执行步骤s1后反复执行步骤s2。当步骤s2首次执行时,n取值为1,第2次执行时,n取值为2,其他依次类推。n的最大取值为存储路径中嵌套的文件夹的数量减1,此时获得的n+1级文件夹的目录标识为存储路径对应文件夹的目录标识。

从第一文件中获取上级目录的目录标识为该文件夹对应的目录标识的各个第一记录,向中间服务器120发送这些文件描述信息,以便中间服务器120将这些文件描述信息发送至客户端130。

例如,用户在客户端130上执行打开文件夹b2的操作,客户端130获取文件夹b2的存储路径为\a\b2,向中间服务器120发送携带有该存储路径\a\b2的获取请求。中间服务器120向管理服务器110发送该查询请求。管理服务器110接收该查询请求,将根文件夹a的目录标识为ida作为上级目录的目录标识;再从第一文件中获取上级目录的目录标识为ida、文件类型为文件夹、文件描述信息中名称为b2的第一记录,获取该第一记录中的目录标识为idb2;再从第一文件中获取上级目录的目录标识为idb2的各个第一记录,包括序号为7和8的第一记录,将该两条第一记录中的文件描述信息发送至客户端130。客户端130根据该两条文件描述信息显示文件夹b2下的各个子文件c3和c4,如图1-3所示。

可选的,中间服务器120在加入文件系统时,在管理服务器110中进行注册,管理服务器110记录该中间服务器120的标识。管理服务器110仅向已注册的中间服务器120提供文件系统的文件目录。

可选的,文件系统还包括备用管理服务器150。

备用管理服务器150是nas设备,可以为一台服务器。备用管理服务器150可以通过有线或者无线网络,分别与中间服务器120和管理服务器110相连接。备用管理服务器150用于备份管理服务器110所维护的文件目录以及文件系统中已注册的中间服务器120的标识;还用于在管理服务器110停止工作时,替代管理服务器110维护文件系统的文件目录,向至少一个中间服务器120提供文件系统的文件目录。

本发明的实施例中,用户在查看文件系统的文件目录的基础上,用户还可下载文件系统中各个文件的文件数据,也可在文件系统中存储新的文件。在本发明中,可通过如图2所示的方式在文件系统中存储新的文件,可通过如图4所示的方式从文件系统下载文件。

请参考图2,其示出了本发明一个实施例提供的存储文件的方法的流程图,该存储文件的方法可应用于如图1所示的文件系统中,该存储文件的方法可以通过如下几个步骤实现。

步骤201,客户端向中间服务器发送携带有第一文件信息的存储请求,该第一文件信息包括待存储文件的存储路径和文件描述信息。

其中,这里所讲的文件描述信息包括待存储文件的文件名称以及文件类型标识,该文件类型标识指示该存储请求用于请求存储一个文件。

当用户需要在文件系统中存储一个新的文件时,通常需要先在文件系统的文件目录中选择文件夹,也即为该文件选择存储路径,然后执行将该文件存储在文件夹中的操作。

当客户端检测到将一文件存储至该文件目录的操作时,客户端获取该文件(本实施例中将该文件称为待存储文件)在该文件目录中的存储路径以及该待存储文件的文件描述信息,向与其连接的中间服务器发送携带有该存储路径以及该文件描述信息的存储请求。

例如,当用户需要向在文件夹b2中存储文件c5,用户可以直接将文件c5拖动至文件夹b2中,即执行将该文件c5存储在文件夹b2中的操作。客户端获取文件c5的存储路径为\a\b2,以及获取文件c5的文件描述信息,该文件描述信息包括文件名c5等信息;向中间服务器发送携带有存储路径\a\b2和文件描述信息c5的存储请求。

步骤202,中间服务器接收该存储请求,为该待存储文件生成第一存储标识,向管理服务器发送携带有该第一文件信息以及该第一存储标识的添加请求,该第一存储标识用于标识该待存储文件。

中间服务器可采用通用唯一识别码(universallyuniqueidentifier,uuid)生成技术为该待存储文件生成第一存储标识。具体的,中间服务器可利用当前日期、当前时间、中间服务器的设备标识、中间服务器的网卡媒体接入控制(mediumaccesscontrol,mac)地址等信息生成第一存储标识,以保证第一存储标识在文件系统中是唯一的。

例如,中间服务器发送携带有存储路径\a\b2和文件描述信息c5的添加请求,生成第一存储标识id_c55,向管理服务器发送存储路径\a\b2、文件描述信息c5和第一存储标识id_c55。

相应的,管理服务器接收该中间服务器发送的该添加请求。

步骤203,管理服务器根据该添加请求中的存储路径获取所述待存储文件所在的上级目录的目录标识,为该待存储文件分配目录标识,将该文件描述信息、待存储文件的目录标识和该上级目录的目录标识对应保存在文件描述信息、目录标识与上级目录的目录标识的对应关系中,以及将待存储文件的目录标识和该第一存储标识对应保存在目录标识与存储标识的对应关系中。

具体的,管理服务器根据该存储路径确定出该待存储文件所在上级目录的目录标识,在第一文件中为该待存储文件生成一条第一记录,该第一记录包括待存储文件的目录标识,该上级目录的目录标识以及该文件描述信息;在第二文件中生成一条第二记录,该第二记录中包括该待存储文件的目录标识以及该第一存储标识。

例如,管理服务器接收存储路径\a\b2、文件描述信息c5和第一存储标识id_c55,将该根文件夹的目录标识ida作为上级目录的目录标识,根据该上级目录的目录标识ida,从如表1所示的第一文件中查找到包括该上级目录的目录标识ida的第一记录,包括序号为1、2、3和4的第一记录;从该四条第一记录中查找出文件描述信息包括名称b2的第一记录,该第一记录为序号为2的第一记录;将序号为2的第一记录包括的目录标识idb2作为上级目录的目录标识,分配目标标识idc5;在第一文件中生成第一记录,该第一记录包括该上级目录的目录标识idb2、分配的目标标识idc5和文件描述信息c5,得到的结果参见表2所示。然后管理服务器在第二文件中生成第二记录,该第二记录包括分配的目录标识idc5和第一存储标识id_c55。

表2

可选的,管理服务器在执行步骤203后,还向中间服务器发送通知消息,该通知消息指示该管理服务器已在该文件系统中创建该待存储文件,以便中间服务器在接收到该通知消息后,执行步骤204,将待存储文件的文件数据上传至云存储系统中。

步骤204,中间服务器接收客户端发送的该待存储文件,将该第一存储标识和该待存储文件对应存储至云存储系统。

中间服务器在接收到管理服务器发送的该通知消息时,利用接口从客户端回调待存储文件的文件数据。中间服务器每次利用接口能够从客户端回调数据的数据量有限,仅能从客户端回调待存储文件的一段数据,例如中间服务器每次最多从客户端只能回调32k数据。所以,为避免每回调一段数据就将该一段数据立即存储至云存储系统中,中间服务器对从客户端回调的数据进行缓存,当缓存的数据量达到预定数据量时,才将缓存的数据存储至云存储系统中,具体可通过如图3所示的几个步骤实现,包括:

步骤2041,中间服务器接收客户端发送的该待存储文件中的一段数据,该一段数据包括偏移量,该偏移量为该一段数据在待存储文件中的起始位置。

本步骤的实现可以为:中间服务器利用接口从客户端回调待存储文件的一段数据。

以中间服务器每次利用接口回调大小为32k的一段数据来举例说明,中间服务器利用接口回调一段大小为32k数据,该段数据的偏移量为32k,则表明在该待存储文件中,该段数据的起始位置与该待存储文件的起始位置之间还存在一段大小为32k的数据。

步骤2042,中间服务器根据该偏移量将该一段数据存储至缓存空间,该缓存空间中包括至少一段数据,该至少一段数据中的每段数据在缓存空间中连续存储。

本步骤的实现可以为:在缓存空间中无数据时,将该一段数据直接存储至缓存空间;当缓存空间中存储有数据时,根据该一段数据的偏移量以及缓存空间中至少一段数据的偏移量,确定该一段数据的存储位置,在该存储位置处缓存该一段数据。

以中间服务器每次利用接口回调大小为32k的一段数据来举例说明,缓存空间中已存储两段数据,一段数据的偏移量为0k,另一段数据的偏移量为32k,若此时中间服务器接收到偏移量为64k的一段数据,将偏移量为64的一段数据存储在偏移量为32k的一段数据之后。

步骤2043,中间服务器在缓存空间中的数据量达到预设数据量时,将缓存空间中的数据与第一存储标识对应存储至云存储系统。

本步骤的实现可以为:中间服务器在缓存空间中的数据量达到预设数据量时,将缓存空间中的数据与第一存储标识对应存储至所述云存储系统,清空该缓存空间中的数据。

举例来讲,当缓存空间中的数据量达到4m时,利用云存储系统的api将缓存空间中的数据以及第一存储标识存储至云存储系统,清空该缓存空间中的数据。

步骤2044,中间服务器在接收完待存储文件的全部文件数据时,将缓存空间中的数据与第一存储标识对应存储至云存储系统。

举例来讲,中间服务器在接收完待存储文件的全部文件数据时,缓存空间中的数据只有96k,中间服务器将缓存空间中的96k数据与第一存储标识对应存储至云存储系统中。

在步骤2044执行完毕后,中间服务器还可获取当前时间,统计待存储文件的数据量,将该当前时间和/或该数据量作为待存储文件的文件描述信息发送至管理服务器,以便管理服务器将这些文件描述信息添加至待存储文件对应的第一记录中。

中间服务器将该当前时间和/或文件大小发送给管理服务器可通过以下两种方式实现:

第一种,中间服务器获取最后一次将待存储文件的一段数据存储至云存储系统的时间,统计待存储文件的数据量;向管理服务器发送该数据量、该时间以及该第一存储标识,以便管理服务器根据该第一存储标识确定待存储文件的目录标识,从第一文件中获取目录标识为该待存储文件的目录标识的第一记录,该第一记录为待存储文件对应的第一记录,将该数据量、该时间作为文件描述信息添加至该第一记录中,该时间可以记录为待存储文件的存储时间。

第二种,中间服务器获取最后一次将待存储文件的一段数据存储至云存储系统的时间,向管理服务器发送该数据量、该时间以及该待存储文件的第一文件信息,以便管理服务器根据第一文件信息中存储路径确定待存储文件的上级目录的目录标识,根据第一文件信息中的描述信息以及该上级目录的目录标识确定该待存储文件对应的第一记录,将该数据量、该时间作为文件描述信息添加至该第一记录中,该时间可以记录为待存储文件的存储时间。

综上所述,本发明实施例提供的存储文件方法,通过中间服务器在接收到客户端发送的存储请求时,为客户端请求存储的待存储文件分配了第一存储标识,通过将该第一存储标识以及待存储文件的第一文件信息发送至管理服务器,以便管理服务器在待存储文件的存储路径下创建该待存储文件,通过将第一存储标识以及待存储文件的文件数据对应存储至云存储系统,使待存储文件的文件数据不再需要存储在本地,解决了相关技术中电子设备的本地存储空间不能够满足流式视频数据文件的存储需求的问题;达到了向用户提供大量的网络存储空间以存储文件的效果。

请参考图4,其示出了本发明一个实施例提供的从文件系统下载文件的流程图,从文件系统下载文件可以通过如下几个步骤实现。

步骤401,客户端向中间服务器发送携带有第二文件信息的下载请求,该第二文件信息包括待下载文件的存储路径和文件描述信息。

当客户端检测到用户下载云存储系统的文件的操作时,获取该文件(本实施例中将该文件称为待下载文件)的存储路径以及文件描述信息,向与其连接的一个中间服务器发送携带有该存储路径以及文件描述信息的下载请求。

相应的,中间服务器接收该客户端发送的该下载请求。

步骤402,中间服务器向述管理服务器发送携带有该第二文件信息的查询请求。

步骤403,管理服务器接收该查询请求,根据该第二文件信息获取待下载文件的第二存储标识,向中间服务器发送该第二存储标识。

管理服务器根据该第二文件信息中的存储路径确定待下载文件所在上级目录的目录标识,根据该上级目录的目录标识以及文件描述信息确定该待下载文件对应的第一记录,获取该第一记录中待下载文件的目录标识;从第二文件中获取包含待下载文件的目录标识的第二记录,从该第二记录中获取待下载文件的第二存储标识,向中间服务器发送该第二存储标识。

步骤404,中间服务器根据该第二存储标识从云存储系统下载待下载文件,向客户端发送待下载文件。

中间服务器向云存储系统发送第二存储标识,利用云存储系统对应的接口从云存储系统下载该第二存储标识对应的文件数据(也即,待下载文件的文件数据)。

由于中间服务器每次利用接口向客户端发送的数据量有限,例如,中间服务器每次最多向客户端发送128k数据。为减少中间服务器从云存储系统下载数据的次数,中间服务器每次从云存储系统下载预定数据量的数据,该预定数据量大于中间服务器一次向客户端发送的数据的数据量,中间服务器再将下载的数据分为多个子段数据发送给客户端。本步骤具体可通过如图5-1所示的几个步骤实现。

步骤4041,中间服务器根据该第二存储标识从云存储系统下载一段数据,这一段数据为待下载文件中的部分数据。

步骤4042,中间服务器依次向客户端发送这一段数据的各个子段数据。

步骤4043,在这一段数据的各个子段数据全部发送至客户端时,执行步骤4041。

举例来讲,中间服务器每次从云存储系统下载4m的数据后,每次从已下载的4m数据中获取128k数据发送给客户端,在这4m数据全部被发送至客户端后,再从云存储系统下载4m数据。

请参考图5-2,其示出了本发明再一个实施例提供的管理服务器的存储文件的方法的流程图,该存储文件的方法可应用于如图1所示的管理服务器中,该存储文件的方法可以通过如下几个步骤实现。

步骤511,接收中间服务器发送的携带有第一文件信息以及第一存储标识的添加请求,该第一文件信息包括待存储文件的存储路径和文件描述信息,该第一存储标识为中间服务器在接收到携带有第一文件信息的存储请求时为待存储文件生成的,该第一存储标识用于标识待存储文件。

本步骤的实现可参见步骤201以及步骤202,此处不再赘述。

步骤512,根据待存储文件的存储路径获取待存储文件所在的上级目录的目录标识,以及,为待存储文件分配目录标识。

步骤513,将该文件描述信息、待存储文件的目录标识和该上级目录的目录标识对应保存在文件描述信息、目录标识与上级目录的目录标识的对应关系中,以及将待存储文件的目录标识和该第一存储标识对应保存在目录标识与存储标识的对应关系中。

步骤512以及步骤513的实现可参见步骤203,此处不再赘述。

管理服务器通过执行步骤511至步骤513,在文件系统的文件目录中建立该待存储文件。客户端也可以从文件系统中下载该待存储文件,参见图5-3,当客户端从文件系统中下载该待存储文件(也即,步骤514和步骤515所涉及的待下载文件)时,管理服务器执行步骤514、步骤515来实现,也就是说步骤514和515是可选的步骤,当客户端不需要下载时不执行,当客户端需要下载时执行。

步骤514,接收该中间服务器发送的携带有第二文件信息的查询请求,该第二文件信息包括待下载文件的存储路径和文件描述信息。

本步骤的实现可参见步骤401至步骤403,此处不再赘述。

步骤515,根据该第二文件信息,获取该待下载文件的第二存储标识,向该中间服务器发送该第二存储标识。

本步骤的实现可参见步骤403,此处不再赘述。

请参考图5-4,其示出了本发明再一个实施例提供的应用于中间服务器的存储文件的方法的流程图,该存储文件的方法可应用于如图1所示的中间服务器中,该存储文件的方法可以通过如下几个步骤实现。

步骤521,接收客户端发送的携带有第一文件信息的存储请求,该第一文件信息包括待存储文件的存储路径和文件描述信息。

本步骤的实现请参见步骤201,此处不再赘述。

步骤522,为该待存储文件生成第一存储标识,向管理服务器发送该第一文件信息以及该第一存储标识,该第一文件信息用于该管理服务器根据该存储路径和该文件描述信息,对应保存该文件描述信息、该待存储文件的目录标识和该待存储文件所在上级目录的目录标识之间的对应关系以及对应保存该待存储文件的目录标识和该第一存储标识的对应关系。

本步骤的实现请参见步骤202和步骤203,此处不再赘述。

步骤523,接收该客户端发送的该待存储文件,将该第一存储标识和该待存储文件对应存储至云存储系统。

本步骤的实现请参见步骤204,此处不再赘述。

中间服务器通过执行步骤521至步骤523,将该待存储文件存储至文件系统。客户端也可以从文件系统中下载该待存储文件,参见图5-5,当客户端从文件系统中下载该待存储文件(也即,步骤524至步骤526所涉及的待下载文件)时,中间服务器执行步骤524至步骤526来实现,也就是说步骤524至526是可选的步骤,当客户端不需要下载时不执行,当客户端需要下载时执行。

步骤524,接收客户端发送的携带有第二文件信息的下载请求,该第二文件信息包括待下载文件的存储路径和文件描述信息。

本步骤的实现请参见步骤401,此处不再赘述。

步骤525,向管理服务器发送携带有该第二文件信息的查询请求,该查询请求用于触发该管理服务器根据该待下载文件的存储路径和文件描述信息获取该待下载文件的第二存储标识。

本步骤的实现请参见步骤402和步骤403,此处不再赘述。

步骤526,接收该管理服务器发送的该第二存储标识,根据该第二存储标识从该云存储系统下载该待下载文件,向该客户端发送该待下载文件。

本步骤的实现请参见步骤404,此处不再赘述。

在本发明的一个实施例中,用户还可在客户端删除云存储服务系统中某一文件。具体的,客户端向中间服务器发送携带有第三文件信息的第一删除请求,该第三文件信息包括待删除文件的存储路径以及文件描述信息;中间服务器接收到该第一删除请求后,向管理服务器发送第二删除请求,该第二删除请求包括该第三文件信息;管理服务器接收到第二删除请求后,根据该存储路径确定待删除文件所在上级目录的目录标识,根据该上级目录的目录标识以及文件描述信息确定待删除文件对应的第一记录,获取该第一记录中该待删除文件的目录标识;从第二文件中获取包括该待删除文件的目录标识的第二记录,获取该第二记录中待删除文件的第三存储标识;管理服务器将待删除文件对应的第三存储标识发送至中间服务器,以便中间服务器将将第三存储标识以及该第三存储标识对应的文件数据从云存储系统中删除,以将待删除文件的文件数据从云存储系统中删除;管理服务器还将待删除文件对应的第二记录以及第一记录删除,以将待删除文件从文件系统的文件目录中删除。

在本发明的一个实施例中,用户还可在客户端删除云存储服务系统中某一文件夹。具体的:客户端向中间服务器发送携带有第一文件夹信息的第三删除请求,该第一文件夹信息包括待删除文件夹的存储路径、文件夹名称以及文件夹类型标识,该文件夹类型标识用于指示请求删除一个文件夹;中间服务器接收到第三删除请求后,向管理服务器发送携带有该第一文件夹信息的第四删除请求,该第三删除请求包括该第一文件夹信息;管理服务器接收到该第四删除请求后,根据该存储路径以及文件夹名称确定该文件夹对应的目录标识;管理服务器根据该文件夹对应的目录标识,获取将该文件夹下各级子文件夹中的每个文件的存储标识,以及该文件夹下每个文件的存储标识,将获取到的这些存储标识发送至中间服务器,以便中间服务器将这些文件从云存储系统中删除;管理服务器还将该文件夹对应的第一记录、该文件夹各级子文件夹对应的第一记录、该文件夹下文件对应的第一记录以及第二记录、各级子文件夹下文件对应的第一记录以及第二记录删除,以将待删除文件夹从文件系统的文件目录中删除。

在本发明的一个实施例中,用户还可在客户端重命名云存储服务系统中某一文件。具体的,客户端向中间服务器发送携带有第四文件信息的重命名请求,第四文件信息包括重命名文件的原文件名称、重命名后的文件名称、存储路径以及文件类型;中间服务器向管理服务器发送携带有该第四文件信息的第一修改请求,该第一修改信息包括第四文件信息;管理服务器接收到该第一修改请求后,根据该存储路径确定该重命名文件的所在上级目录的目录标识,根据该原文件名称以及该上级目录的目录标识确定重命名文件对应的第一记录,将第一记录中该重命名文件的文件名称从原文件名称修改为该重命名后的文件名称。

在本发明的一个实施例中,用户还可在客户端重命名云存储服务系统中某一文件夹。具体的,客户端向中间服务器发送携带有第二文件夹信息的重命名请求,该第二文件夹信息包括重命名文件夹对应的存储路径、原文件夹名称、重命名后的文件夹名称以及文件夹类型;中间服务器向管理服务器发送携带有该第二文件夹信息的第二修改请求,该第二修改请求包括该第二文件夹信息;管理服务器接收到该第二修改请求后,根据该存储路径确定该重命名文件对应的第一记录,将该第一记录中该重命名文件夹的文件夹名称从原文件夹名称修改为重命名后的文件夹名称。

在本发明的一个实施例中,用户还可在客户端上在云存储服务系统中新建一个文件夹。具体的,客户端向中间服务器发送携带有第三文件夹信息的新建请求,该第三文件夹信息包括待创建的文件夹的存储路径、文件夹名称以及文件夹类型标识;中间服务器接收到该新建请求后,向管理服务器发送携带有该第三文件夹信息的添加请求;管理服务器接收到该添加请求后,根据该存储路径确定该文件夹上级目录的目录标识,为该文件夹分配目录标识,在第一文件中添加一条第一记录,该第一记录包括该上级目录的目录标识、该目录标识以及该文件夹名称,以实现在该存储路径对应的文件夹中创建一个文件夹。

需要说明的是,本发明的各个实施例中,管理服务器中维护的文件系统的文件目录更新时,将更新后的文件目录同步至备用管理服务器。具体的,在第一文件和/或第二文件发生更新时,将更新后的第一文件和/或更新后的第二文件同步至备用管理服务器。

该备用管理服务器还实时监控管理服务器的工作状态,在检测到该管理服务器停止工作时,代替该管理服务器维护该文件系统的文件目录。由于管理服务器和备用管理服务器具备相同的虚拟互联网协议英文:(internetprotocol,ip),因此备用管理服务器可直接替代已经停止工作的管理服务器,成为该文件系统中新的管理服务器来维护该文件系统的文件目录,以及为文件系统的各个中间服务器提供服务,执行上述实施例中由管理服务器所执行的步骤。

图6-1是本发明一个实施例中提供的存储文件装置的结构方框图。本实施例以该存储文件装置应用于如图1所示的中间服务器120中来举例说明。如图6-1所示,该存储文件装置包括:第一接收模块610、生成模块620和第二接收模块630。

第一接收模块610,用于接收客户端发送的携带有第一文件信息的存储请求,所述第一文件信息包括待存储文件的存储路径和文件描述信息;

生成模块620,用于为所述待存储文件生成第一存储标识,向管理服务器发送所述第一文件信息以及所述第一存储标识,所述第一文件信息用于所述管理服务器根据所述存储路径和所述文件描述信息,对应保存所述文件描述信息、所述待存储文件的目录标识和所述待存储文件所在上级目录的目录标识之间的对应关系以及对应保存所述待存储文件的目录标识和所述第一存储标识的对应关系;

第二接收模块630,用于接收所述客户端发送的所述待存储文件,将所述生成模块620生成的第一存储标识和所述待存储文件对应存储至云存储系统。

在一种可能的实施方式中,如图6-2所示,图6-2是本发明另一个实施例中提供的存储文件装置600的结构方框图,第二接收模块630,包括:接收单元631、第一存储单元632和第二存储单元633。

接收单元631,用于接收所述客户端发送的所述待存储文件中的一段数据,所述一段数据包括偏移量,所述偏移量为所述一段数据在所述待存储文件中的起始位置。

第一存储单元632,用于根据所述偏移量将接收单元631接收到的所述一段数据存储至缓存空间,所述缓存空间中包括至少一段数据,所述至少一段数据中的每段数据在所述缓存空间中连续存储;

第二存储单元633,用于在所述缓存空间中的数据量达到预设数据量或者接收完所述待存储文件时,将所述缓存空间中的数据与所述第一存储标识对应存储至所述云存储系统。

在一种可能的实施方式中,如图6-2所示,该存储文件装置,还包括:第三接收模块640、发送模块650和下载模块660。

第三接收模块640,用于接收所述客户端发送的携带有第二文件信息的下载请求,所述第二文件信息包括待下载文件的存储路径和文件描述信息;

发送模块650,用于向所述管理服务器发送携带有所述第三接收模块640,接收到的第二文件信息的查询请求,所述查询请求用于触发所述管理服务器根据所述待下载文件的存储路径和文件描述信息获取所述待下载文件的第二存储标识;

下载模块660,用于接收所述管理服务器发送的所述第二存储标识,根据所述第二存储标识从所述云存储系统下载所述待下载文件,向所述客户端发送所述待下载文件。

在一种可能的实施方式中,如图6-2所示,下载模块660,包括:下载单元661和发送单元662。

下载单元661,用于根据所述第二存储标识从所述云存储系统下载一段数据,所述一段数据为所述待下载文件中的部分数据;

发送单元662,用于依次向所述客户端发送所述一段数据的各个子段数据。

综上所述,本发明实施例提供的存储文件装置,通过中间服务器在接收到客户端发送的存储请求时,为客户端请求存储的待存储文件分配了第一存储标识,通过将该第一存储标识以及待存储文件的第一文件信息发送至管理服务器,以便管理服务器在待存储文件的存储路径下创建待存储文件,中间服务器还通过将第一存储标识以及待存储文件的文件数据对应存储至云存储系统,使待存储文件的文件数据不再需要存储在本地,解决了相关技术中电子设备的本地存储空间不能够满足流式视频数据文件的存储需求的问题;达到了向用户提供大量的网络存储空间以存储文件的效果。

图7-1是本发明再一个实施例中提供的存储文件装置的结构方框图。本实施例以该存储文件装置应用于如图1所示的管理服务器110中来举例说明。如图7-1所示,该存储文件装置包括:第一接收模块710、第一获取模块720、分配模块730和保存模块740。

第一接收模块710,用于接收中间服务器发送的携带有第一文件信息以及第一存储标识的添加请求,所述第一文件信息包括待存储文件的存储路径和文件描述信息,所述第一存储标识为所述中间服务器在接收到携带有所述第一文件信息的存储请求时为所述待存储文件生成的,所述第一存储标识用于标识所述待存储文件;

第一获取模块720,用于根据所述待存储文件的存储路径获取所述待存储文件所在的上级目录的目录标识;

分配模块730,用于为所述待存储文件分配目录标识;

保存模块740,用于将所述文件描述信息、所述待存储文件的目录标识和所述上级目录的目录标识对应保存在文件描述信息、目录标识与上级目录的目录标识的对应关系中,以及将所述待存储文件的目录标识和所述第一存储标识对应保存在目录标识与存储标识的对应关系中。

可选的,如图7-2所示,图7-2是本发明再一个实施例中提供的存储文件装置700的结构方框图,该存储文件装置,还包括:第二接收模块750、第二获取模块760和发送模块770。

第二接收模块750,用于接收所述中间服务器发送的携带有第二文件信息的查询请求,所述第二文件信息包括待下载文件的存储路径和文件描述信息;

第二获取模块760,用于根据所述第二文件信息,获取所述待下载文件的第二存储标识;

发送模块770,用于向所述中间服务器发送所述第二存储标识。

可选的,如图7-2所示,第二获取模块760,包括:第一获取单元761和第二获取单元762。

第一获取单元761,用于根据所述第二文件信息,从文件描述信息、目录标识与上级目录的目录标识的对应关系中获取所述待下载文件的目录标识;

第二获取单元762,用于根据所述待下载文件的目录标识,从目录标识与存储标识的对应关系中获取所述待下载文件的第二存储标识。

综上所述,本发明实施例提供的存储文件装置,通过中间服务器在接收到客户端发送的存储请求时,为客户端请求存储的待存储文件分配了第一存储标识,通过将该第一存储标识以及待存储文件的第一文件信息发送至管理服务器,以便管理服务器在待存储文件的存储路径下创建待存储文件,中间服务器还通过将第一存储标识以及待存储文件的文件数据对应存储至云存储系统,使待存储文件的文件数据不再需要存储在本地,解决了相关技术中电子设备的本地存储空间不能够满足流式视频数据文件的存储需求的问题;达到了向用户提供大量的网络存储空间以存储文件的效果。

需要说明的是:上述实施例中提供的存储文件装置在存储文件时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将中间服务器120或管理服务器110的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的存储文件装置与存储文件方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1