发明内容
为克服相关技术中存在的问题,本发明提供一种访问方法及装置。
根据本发明实施例的第一方面,提供一种访问方法,所述方法包括:
判断是否接收到用于在操作***中创建第一存储设备对应的虚拟文件***的第一创建请求;
当接收到所述第一创建请求时,利用所述操作***中的用户空间文件***FUSE,在所述操作***中的预设路径中创建第一存储设备对应的虚拟文件***;
判断是否接收到对所述预设路径的第一访问请求;
当接收到对所述预设路径的第一访问请求时,发送所述第一访问请求给所述虚拟文件***,以使所述虚拟文件***根据所述第一访问请求访问所述第一存储设备。
进一步地,所述方法还包括:
判断所述操作***中是否挂载有第二存储设备对应的网络文件***;
当所述操作***中挂载有第二存储设备对应的网络文件***时,获取在所述操作***中挂载第二存储设备对应的网络文件***的路径,并作为预设路径;
卸载在所述操作***中挂载的所述第二存储设备对应的所述网络文件***;
执行所述利用所述操作***中的用户空间文件***FUSE,在所述操作***中的预设路径中创建第一存储设备对应的虚拟文件***的步骤。
进一步地,所述方法还包括:
判断是否接收到用于在所述预设路径中挂载第二存储设备对应的网络文件***的挂载请求;
当接收到所述挂载请求时,卸载在所述预设路径中创建的第一存储设备对应的虚拟文件***;
在所述预设路径中挂载第二存储设备对应的网络文件***;
判断是否接收到对所述预设路径的第二访问请求;
当接收到对所述预设路径的第二访问请求时,发送所述第二访问请求给所述网络文件***,以使所述网络文件***根据所述第二访问请求访问所述第二存储设备。
进一步地,所述方法还包括:
判断是否接收到用于通过所述预设路径的一个子路径在所述第一存储设备中创建待创建的文件夹的第二创建请求;所述第二创建请求携带所述待创建的文件夹的标识;
当接收到所述第二创建请求时,发送所述第二创建请求给所述虚拟文件***;以使所述虚拟文件***根据所述待创建的文件夹的标识,在所述第一存储设备中创建所述待创建的文件夹;
建立所述一个子路径与所述待创建的文件夹的标识之间的对应关系。
进一步地,所述方法还包括:
判断是否接收到用于通过所述预设路径的一个子路径在第一存储设备中删除文件夹的删除请求;
当接收到所述删除请求时,获取预设子路径与文件夹的标识之间的对应关系;
在所述对应关系中查找所述一个子路径对应的文件夹的标识;
将所述一个子路径对应的文件夹的标识发送给所述虚拟文件***;以使所述虚拟文件***在所述第一存储设备中删除所述文件夹的标识对应的文件夹;
删除所述一个子路径与所述文件夹的标识之间的对应关系。
根据本发明实施例的第二方面,提供一种访问装置,所述装置包括:
第一判断模块,用于判断是否接收到用于在操作***中创建第一存储设备对应的虚拟文件***的第一创建请求;
创建模块,用于当接收到所述第一创建请求时,利用所述操作***中的用户空间文件***FUSE,在所述操作***中的预设路径中创建第一存储设备对应的虚拟文件***;
第二判断模块,用于判断是否接收到对所述预设路径的第一访问请求;
第一发送模块,用于当接收到对所述预设路径的第一访问请求时,发送所述第一访问请求给所述虚拟文件***,以使所述虚拟文件***根据所述第一访问请求访问所述第一存储设备。
进一步地,所述装置还包括:
第三判断模块,用于判断所述操作***中是否挂载有第二存储设备对应的网络文件***;
第一获取模块,用于当所述操作***中挂载有第二存储设备对应的网络文件***时,获取在所述操作***中挂载第二存储设备对应的网络文件***的路径,并作为预设路径;
第一卸载模块,用于卸载在所述操作***中挂载的所述第二存储设备对应的所述网络文件***;
所述创建模块还用于执行所述利用所述操作***中的用户空间文件***FUSE,在所述操作***中的预设路径中创建第一存储设备对应的虚拟文件***的步骤。
进一步地,所述装置还包括:
第四判断模块,用于判断是否接收到用于在所述预设路径中挂载第二存储设备对应的网络文件***的挂载请求;
第二卸载模块,用于当接收到所述挂载请求时,卸载在所述预设路径中创建的第一存储设备对应的虚拟文件***;
挂载模块,用于在所述预设路径中挂载第二存储设备对应的网络文件***;
第五判断模块,用于判断是否接收到对所述预设路径的第二访问请求;
第二发送模块,用于当接收到对所述预设路径的第二访问请求时,发送所述第二访问请求给所述网络文件***,以使所述网络文件***根据所述第二访问请求访问所述第二存储设备。
进一步地,所述装置还包括:
第六判断模块,用于判断是否接收到用于通过所述预设路径的一个子路径在所述第一存储设备中创建待创建的文件夹的第二创建请求;所述第二创建请求携带所述待创建的文件夹的标识;
第三发送模块,用于当接收到所述第二创建请求时,发送所述第二创建请求给所述虚拟文件***;以使所述虚拟文件***根据所述待创建的文件夹的标识,在所述第一存储设备中创建所述待创建的文件夹;
建立模块,用于建立所述一个子路径与所述待创建的文件夹的标识之间的对应关系。
进一步地,所述装置还包括:
第七判断模块,用于判断是否接收到用于通过所述预设路径的一个子路径在第一存储设备中删除文件夹的删除请求;
第二获取模块,用于当接收到所述删除请求时,获取预设子路径与文件夹的标识之间的对应关系;
查找模块,用于在所述对应关系中查找所述一个子路径对应的文件夹的标识;
第四发送模块,用于将所述一个子路径对应的文件夹的标识发送给所述虚拟文件***;以使所述虚拟文件***在所述第一存储设备中删除所述文件夹的标识对应的文件夹;
删除模块,用于删除所述一个子路径与所述文件夹的标识之间的对应关系。
本发明的实施例提供的技术方案可以包括以下有益效果:在本发明中,判断是否接收到用于在操作***中创建第一存储设备对应的虚拟文件***的创建请求;当接收到创建请求时,利用操作***中的FUSE,在操作***中创建第一存储设备对应的虚拟文件***;判断是否接收到对预设路径的第一访问请求;当接收到对预设路径的第一访问请求时,发送第一访问请求给虚拟文件***,以使虚拟文件***根据第一访问请求访问第一存储设备。
在现有技术中,操作***通过第一存储设备提供的API接口访问第一存储设备的访问方式与操作***访问第二存储设备的访问方式是不同的,技术人员事先要在操作***中编写大量的、用于通过第一存储设备提供的API接口访问第一存储设备的应用程序,人工成本较高。
而在本发明中,利用操作***中的FUSE,在操作***中创建第一存储设备对应的虚拟文件***,当要访问第一存储设备时,无需通过第一存储设备提供的API接口访问第一存储设备,操作***只需发送第一访问请求给虚拟文件***,以使虚拟文件***根据第一访问请求访问第一存储设备。这样,对于操作***来讲,就使得操作***访问第一存储设备的访问方式与操作***访问本地的存储设备的访问方式相同,由于操作***访问第二存储设备的访问方式与操作***访问本地的存储设备的访问方式相同,因此,操作***访问第一存储设备的访问方式与操作***访问第二存储设备的访问方式相同。
因此,操作***使用原先访问第第二存储设备的应用程序就可以成功访问第一存储设备,无需使技术人员事先在操作***中编写大量的、用于通过第一存储设备提供的API接口访问第一存储设备的应用程序,降低了人工成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种访问方法的流程图,如图1所示,该方法包括以下步骤。
在步骤S101中,判断是否接收到用于在操作***中创建第一存储设备对应的虚拟文件***的第一创建请求;
其中,第一存储设备可以为HDFS或TFS等开源的分布式文件***。操作***可以为linux等操作***。
在本发明实施例中,当用户需要访问第一存储设备时,用户可以在操作***中输入用于在操作***中创建第一存储设备对应的虚拟文件***的第一创建请求,并提交给操作***;当操作***接收到第一创建请求时,确定执行步骤S102。
例如,用户在操作***中输入用于在操作***中创建第一存储设备对应的虚拟文件***的创建指令,并提交给操作***,当操作***接收到该创建指令时,执行步骤S102。
当接收到该创建请求时,在步骤S102中,利用操作***中的FUSE(Filesystem inUserspace,用户空间文件***)在操作***中的预设路径中创建第一存储设备对应的虚拟文件***;
在本发明实施例中,当接收到第一创建请求时,判断操作***中是否挂载有第二存储设备对应的网络文件***;第二存储设备可以为NAS设备;当操作***中挂载有第二存储设备对应的网络文件***时,获取在操作***中挂载第二存储设备对应的网络文件***的路径,并作为预设路径;卸载在操作***中挂载的第二存储设备对应的网络文件***;然后利用操作***中的FUSE,在操作***中的预设路径中创建第一存储设备对应的虚拟文件***;当操作***中未挂载第二存储设备对应的网络文件***时,将操作***中的任一个未被占用的路径作为预设路径;然后利用操作***中的FUSE,在操作***中的预设路径中创建第一存储设备对应的虚拟文件***。
在步骤S103中,判断是否接收到对预设路径的第一访问请求;
当操作***在预设路径中创建完第一存储设备对应的虚拟文件***后,如果用户需要访问第一存储设备,用户可以在操作***中输入用于访问预设路径中的访问请求,并提交给操作***;当操作***接收到该访问请求时,执行步骤S104。
例如,当用户需要访问第一存储设备时,用户可以在操作***中输入用于访问预设路径的访问指令,并提交给操作***;当操作***接收到该访问指令时,执行步骤S104。
当接收到对预设路径的第一访问请求时,在步骤S104中,发送第一访问请求给虚拟文件***。
如此使得虚拟文件***根据该访问请求访问第一存储设备。
这样,对于操作***来讲,就使得操作***访问第一存储设备的访问方式与操作***访问本地的存储设备的访问方式相同。
在本发明图1所示的实施例中,判断是否接收到用于在操作***中创建第一存储设备对应的虚拟文件***的创建请求;当接收到创建请求时,利用操作***中的FUSE,在操作***中创建第一存储设备对应的虚拟文件***;判断是否接收到对预设路径的第一访问请求;当接收到对预设路径的第一访问请求时,发送第一访问请求给虚拟文件***,以使虚拟文件***根据第一访问请求访问第一存储设备。
在现有技术中,操作***通过第一存储设备提供的API接口访问第一存储设备的访问方式与操作***访问第二存储设备的访问方式是不同的,技术人员事先要在操作***中编写大量的、用于通过第一存储设备提供的API接口访问第一存储设备的应用程序,人工成本较高。
而在本发明实施例中,利用操作***中的FUSE,在操作***中创建第一存储设备对应的虚拟文件***,当要访问第一存储设备时,无需通过第一存储设备提供的API接口访问第一存储设备,操作***只需发送第一访问请求给虚拟文件***,以使虚拟文件***根据第一访问请求访问第一存储设备。这样,对于操作***来讲,就使得操作***访问第一存储设备的访问方式与操作***访问本地的存储设备的访问方式相同,由于操作***访问第二存储设备的访问方式与操作***访问本地的存储设备的访问方式相同,因此,操作***访问第一存储设备的访问方式与操作***访问第二存储设备的访问方式相同。
这样,操作***使用原先访问第第二存储设备的应用程序就可以成功访问第一存储设备,无需使技术人员事先在操作***中编写大量的、用于通过第一存储设备提供的API接口访问第一存储设备的应用程序,降低了人工成本。
在本发明另一实施例中,参见图2,该方法还包括以下步骤:
在步骤S201中,判断是否接收到用于在预设路径中挂载第二存储设备对应的网络文件***的挂载请求;
其中,第二存储设备可以为NAS设备。
在本发明实施例中,为了避免浪费操作***的路径,在操作***中挂载网络文件***的路径与在操作***中创建虚拟文件***的路径相同,但是,在操作***的同一路径中,网络文件***和虚拟文件***是无法同时存在的。
因此,当需要访问第一存储设备时,如果此时预设路径中已经挂载了第二存储设备对应的网络文件***,则需要卸载在预设路径中挂载的、第二存储设备对应的网络文件***,然后在预设路径中创建第一存储设备对应的虚拟文件***,如此才可以访问第一存储设备。以及,当需要访问第二存储设备时,如果此时预设路径中创建了第一存储设备对应的虚拟文件***,则需要卸载在预设路径中创建的、第一存储设备对应的虚拟文件***,然后在预设路径中挂载第二存储设备对应的网络文件***,如此才可以访问第二存储设备。
在本发明实施例中,在操作***中的预设路径中已经创建了第一存储设备对应的虚拟文件***,如果用户要访问第二存储设备,就需要在操作***的预设路径中挂载第二存储设备对应的网络文件***,用户可以在操作***中输入用于在操作***的预设路径中挂载第二存储设备对应的网络文件***的挂载请求,并提交给操作***;当操作***接收到该挂载请求时,确定执行步骤S202。
当接收到该挂载请求时,在步骤S202中,卸载在预设路径中创建的第一存储设备对应的虚拟文件***;
其中,由于在步骤S102中是利用操作***中的FUSE,在操作***中的预设路径中创建第一存储设备对应的虚拟文件***;因此,在本步骤中,可以关闭FUSE的进程,如此实现卸载在预设路径中创建的、第一存储设备对应的虚拟文件***。
在步骤S203中,在预设路径中挂载第二存储设备对应的网络文件***;
例如,可以在预设路径中挂载NAS设备对应的NFS。
在步骤S204中,判断是否接收到对预设路径的第二访问请求;
当操作***在预设路径中挂载完第二存储设备对应的网络文件***后,如果用户需要访问第二存储设备,用户可以在操作***中输入用于在访问预设路径的访问请求,并提交给操作***;当操作***接收到该访问请求时,确定执行步骤S205。
例如,当用户需要访问第二存储设备时,用户可以在操作***中输入用于访问预设路径的访问指令,并提交给操作***;当操作***接收到该访问指令时,确定执行步骤S205。
当接收到对预设路径的第二访问请求时,在步骤S205中,发送第二访问请求给网络文件***。
如此使得网络文件***根据第二访问请求访问第二存储设备。
在本发明又一实施例中,参见图3,该方法还包括以下步骤:
在步骤S301中,判断是否接收到用于通过预设路径的一个子路径在第一存储设备中创建待创建的文件夹的创建请求;
其中,创建请求携带待创建的文件夹的标识。
其中,当用户需要在第一存储设备中存储文件内容时,首先需要在第一存储设备中创建文件夹,然后在创建的文件夹中存储文件内容。因此,当用户需要通过预设路径的一个子路径在第一存储设备中创建一个文件夹时,可以在操作***中输入用于通过预设路径的一个子路径在第一存储设备中创建待创建的文件夹的、且携带待创建的文件夹的标识的创建请求,并提交给操作***;操作***接收该创建请求,执行步骤S302。
其中,文件夹的标识可以为文件夹的名称或编号等,本发明对比不加以限定。
当接收到该创建请求时,在步骤S302中,发送该创建请求给虚拟文件***;
以使虚拟文件***根据待创建的文件夹的标识,在第一存储设备中创建待创建的文件夹。
其中,虚拟文件***接收该创建请求,从该创建请求中提取出待创建的文件夹的标识,再根据待创建的文件夹的标识,在第一存储设备中创建待创建的文件夹;这样,对于操作***来讲,就使得操作***在第一存储设备中创建文件夹的方式与操作***在本地的存储设备中创建文件夹的创建方式相同。然后发送用于通知已完成在第一存储设备中创建待创建的文件夹的通知消息给操作***;操作***接收该通知消息,执行步骤S303。
在步骤S303中,建立该一个子路径与待创建的文件夹的标识之间的对应关系。
具体地,获取预设子路径与文件夹的标识之间的对应关系,将该一个子路径和待创建的文件夹的标识作为一条记录,并存储在预设子路径与文件夹的标识之间的对应关系中,以实现建立该一个子路径与待创建的文件夹的标识之间的对应关系。
其中,预设子路径与文件夹的标识之间的对应关系可以存储在一个共享设备中,这样,其他操作***也可以从该共享设备中获取预设子路径与文件夹的标识之间的对应关系。
在本发明又一实施例中,参见图4,该方法还包括以下步骤:
在步骤S401中,判断是否接收到用于通过预设路径的一个子路径在第一存储设备中删除文件夹的删除请求;
其中,当用户需要通过预设路径的一个子路径删除第一存储设备中的文件夹时,可以在操作***中输入用于通过预设路径的一个子路径删除第一存储设备上的文件夹的删除指令,并提交给操作***;操作***接收该删除指令,执行步骤S402。
当接收到该删除请求时,在步骤S402中,获取预设子路径与文件夹的标识之间的对应关系;
其中,文件夹的标识可以为文件夹的名称或编号等,本发明对比不加以限定。
在步骤S403中,在上述对应关系中查找该一个子路径对应的文件夹的标识;
其中,在上述对应关系中获取包括该一个子路径的记录,获取该记录中的文件夹的标识。
在步骤S404中,将该一个子路径对应的文件夹的标识发送给虚拟文件***;
以使虚拟文件***在第一存储设备中删除该文件夹的标识对应的文件夹。
其中,虚拟文件***接收该文件夹的标识,在第一存储设备中删除该文件夹的标识对应的文件夹;这样,对于操作***来讲,就使得操作***在第一存储设备中删除文件夹的删除方式与操作***在本地的存储设备中删除文件夹的删除方式相同。然后发送用于通知已完成在第一存储设备中删除该文件夹的标识对应的文件夹的通知消息给操作***;操作***接收该通知消息,执行步骤S405。
在步骤S405中,删除该一个子路径与文件夹的标识之间的对应关系。
具体地,在预设子路径与文件夹的标识之间的对应关系中删除包括该文件夹的标识的记录,以实现删除该一个子路径与文件夹的标识之间的对应关系。
图5是根据一示例性实施例示出的一种访问装置的框图。参照图5,该装置包括:
第一判断模块11,用于判断是否接收到用于在操作***中创建第一存储设备对应的虚拟文件***的第一创建请求;
创建模块12,用于当接收到所述第一创建请求时,利用所述操作***中的用户空间文件***FUSE,在所述操作***中的预设路径中创建第一存储设备对应的虚拟文件***;
第二判断模块13,用于判断是否接收到对所述预设路径的第一访问请求;
第一发送模块14,用于当接收到对所述预设路径的第一访问请求时,发送所述第一访问请求给所述虚拟文件***,以使所述虚拟文件***根据所述第一访问请求访问所述第一存储设备。
在本发明图5所示的实施例中,判断是否接收到用于在操作***中创建第一存储设备对应的虚拟文件***的创建请求;当接收到创建请求时,利用操作***中的FUSE,在操作***中创建第一存储设备对应的虚拟文件***;判断是否接收到对预设路径的第一访问请求;当接收到对预设路径的第一访问请求时,发送第一访问请求给虚拟文件***,以使虚拟文件***根据第一访问请求访问第一存储设备。
在现有技术中,操作***通过第一存储设备提供的API接口访问第一存储设备的访问方式与操作***访问第二存储设备的访问方式是不同的,技术人员事先要在操作***中编写大量的、用于通过第一存储设备提供的API接口访问第一存储设备的应用程序,人工成本较高。
而在本发明实施例中,利用操作***中的FUSE,在操作***中创建第一存储设备对应的虚拟文件***,当要访问第一存储设备时,无需通过第一存储设备提供的API接口访问第一存储设备,操作***只需发送第一访问请求给虚拟文件***,以使虚拟文件***根据第一访问请求访问第一存储设备。这样,对于操作***来讲,就使得操作***访问第一存储设备的访问方式与操作***访问本地的存储设备的访问方式相同,由于操作***访问第二存储设备的访问方式与操作***访问本地的存储设备的访问方式相同,因此,操作***访问第一存储设备的访问方式与操作***访问第二存储设备的访问方式相同。
因此,操作***使用原先访问第第二存储设备的应用程序就可以成功访问第一存储设备,无需使技术人员事先在操作***中编写大量的、用于通过第一存储设备提供的API接口访问第一存储设备的应用程序,降低了人工成本。
进一步地,所述装置还包括:
第三判断模块,用于判断所述操作***中是否挂载有第二存储设备对应的网络文件***;
第一获取模块,用于当所述操作***中挂载有第二存储设备对应的网络文件***时,获取在所述操作***中挂载第二存储设备对应的网络文件***的路径,并作为预设路径;
第一卸载模块,用于卸载在所述操作***中挂载的所述第二存储设备对应的所述网络文件***;
所述创建模块还用于执行所述利用所述操作***中的用户空间文件***FUSE,在所述操作***中的预设路径中创建第一存储设备对应的虚拟文件***的步骤。
进一步地,所述装置还包括:
第四判断模块,用于判断是否接收到用于在所述预设路径中挂载第二存储设备对应的网络文件***的挂载请求;
第二卸载模块,用于当接收到所述挂载请求时,卸载在所述预设路径中创建的第一存储设备对应的虚拟文件***;
挂载模块,用于在所述预设路径中挂载第二存储设备对应的网络文件***;
第五判断模块,用于判断是否接收到对所述预设路径的第二访问请求;
第二发送模块,用于当接收到对所述预设路径的第二访问请求时,发送所述第二访问请求给所述网络文件***,以使所述网络文件***根据所述第二访问请求访问所述第二存储设备。
进一步地,所述装置还包括:
第六判断模块,用于判断是否接收到用于通过所述预设路径的一个子路径在所述第一存储设备中创建待创建的文件夹的第二创建请求;所述第二创建请求携带所述待创建的文件夹的标识;
第三发送模块,用于当接收到所述第二创建请求时,发送所述第二创建请求给所述虚拟文件***;以使所述虚拟文件***根据所述待创建的文件夹的标识,在所述第一存储设备中创建所述待创建的文件夹;
建立模块,用于建立所述一个子路径与所述待创建的文件夹的标识之间的对应关系。
进一步地,所述装置还包括:
第七判断模块,用于判断是否接收到用于通过所述预设路径的一个子路径在第一存储设备中删除文件夹的删除请求;
第二获取模块,用于当接收到所述删除请求时,获取预设子路径与文件夹的标识之间的对应关系;
查找模块,用于在所述对应关系中查找所述一个子路径对应的文件夹的标识;
第四发送模块,用于将所述一个子路径对应的文件夹的标识发送给所述虚拟文件***;以使所述虚拟文件***在所述第一存储设备中删除所述文件夹的标识对应的文件夹;
删除模块,用于删除所述一个子路径与所述文件夹的标识之间的对应关系。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。