一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

文件读取方法及装置、电子设备及存储介质与流程

2022-11-09 22:36:28 来源:中国专利 TAG:


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.图1为一种文件读取方法的示意图;图2为另一种文件读取方法的示意图;图3为一种可用于实施本公开实施例提供的文件读取方法的系统示意图;图4为本公开一些实施例提供的一种用于文件系统的文件读取方法的流程示意图;图5为图4中步骤s130的流程示意图;图6为本公开一些实施例提供的一种用于文件系统的文件读取方法的示意图;图7为本公开一些实施例提供的另一种用于文件系统的文件读取方法的流程示意图;图8为图7中步骤s140的流程示意图;图9为图7中步骤s160的流程示意图;图10为本公开一些实施例提供的一种用于文件系统的文件读取方法的示意图;图11为本公开一些实施例提供的一种用于文件系统的文件读取方法的流程示意图;图12为本公开一些实施例提供的另一种用于文件系统的文件读取方法的流程示意图;图13为本公开一些实施例提供的一种用于文件系统的文件读取装置的示意框图;图14为本公开一些实施例提供的另一种用于文件系统的文件读取装置的示意框图;图15为本公开一些实施例提供的一种电子设备的示意框图;
图16为本公开一些实施例提供的另一种电子设备的示意框图;图17为本公开一些实施例提供的一种存储介质的示意图。
具体实施方式
26.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
27.除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
28.通用因特网文件系统(common internet file system,cifs)也被称为cifs文件系统,是基于cifs协议的文件系统,也是windows/linux上最常用的网络共享文件系统。用户通过cifs文件系统可以实现在不同计算机之间共享文件,或者可以实现不同计算机通过cifs文件系统服务器来共享文件。
29.然而,对于当前的各种不同格式的打包文件(例如由多个文件或子文件打包而成的文件)而言,很多文件是非常巨大的,例如是以千兆(g)字节为单位的。在读取这些打包文件时,用户需要将服务器中的文件拷贝到客户端来进行挂载(例如针对.iso文件),或者需要将数据读取到客户端才能解压(例如针对.zip文件)。即使在cifs文件系统服务器共享里面解压和压缩,也需要客户端读取数据、再写入数据。
30.图1为一种文件读取方法的示意图。如图1所示,服务器为cifs文件系统服务器,该服务器的共享区域中存储有大量文件,服务器为客户端提供服务,服务器与客户端通过网络通信。以镜像文件(例如.iso文件)为例,如果需要拷贝服务器中的.iso文件里的一个普通文件,需要把整个.iso文件拷贝到客户端,然后在客户端挂载成一个目录,这样才能读取.iso文件包含的普通文件。.iso文件通常很大,这会占用服务器较多的带宽,也需要较长的时间去读取.iso文件里面的普通文件。
31.图2为另一种文件读取方法的示意图。如图2所示,服务器仍然为cifs文件系统服务器,服务器为客户端提供服务,服务器与客户端通过网络通信。仍然以.iso文件为例,如果需要修改服务器中的一个.iso文件(图2中示出的“旧.iso文件”),则需要把这个文件拷贝到客户端,然后在客户端挂载成目录,并对目录里面的文件做修改。之后,生成新的.iso文件(图2中示出的“新.iso文件”),然后再将其拷贝到服务器中。由于.iso文件通常很大,在该过程中,需要进行两次拷贝,需要占用服务器大量的带宽,非常耗时。
32.在通常的cifs文件系统中,对于文件挂载,是把.iso文件拷贝到用户的工作机(比
如windows机器,也即cifs文件系统的客户端),然后使用某种工具来挂载(也称为mount)成一个盘符或者一个目录。一个操作系统的镜像文件(一般是.iso文件)往往是几个g字节(例如在windows 10中一般为4g字节左右),因此这个过程需要较长的拷贝时间,使得挂载过程缓慢,并且,也会占用服务器较多的带宽。对于文件解压,需要完全解开文件压缩包,而且,无论是在cifs文件系统共享里面解压,还是拷贝到客户端来解压,对于很大的文件压缩包,其解压时间很长,会占用cifs文件系统很大的带宽。对于文件压缩和修改,如果要压缩文件,除了需要占用带宽外,不能做到随时给压缩包添加文件和随时从压缩包删除文件。通常的文件读取方式会占用cifs文件系统带宽,挂载慢,需要将文件拷贝到客户端才能挂载,而且不能随时给打包文件添加文件,也不能即时修改打包文件里面的文件,这极大影响了文件系统的性能。
33.本公开至少一个实施例提供一种用于文件系统的文件读取方法、用于文件系统的文件读取装置、电子设备及存储介质。该文件读取方法通过拖动文件即可实现挂载、解压,可以实现即时打包以及即时修改、增减各种类型的打包文件所包含的内容,不耗费服务器带宽,效率高,响应快,几乎是秒级操作,能够有效提高读取效率。
34.下面,将参考附图详细地说明本公开的实施例。应当注意的是,不同的附图中相同的附图标记将用于指代已描述的相同的元件。
35.本公开至少一个实施例提供一种用于文件系统的文件读取方法。文件系统部署在服务器中。该方法包括:获取移动请求,移动请求包括移动信息,移动信息指示将目标文件从服务器中的初始存储位置移动到服务器中的目标存储位置;判断目标文件是否为预设类型文件以及目标存储位置是否为预设目录,预设类型文件是由至少一个子文件打包而成的文件;响应于目标文件是预设类型文件且目标存储位置是预设目录,将目标文件解包为至少一个子文件,并将至少一个子文件存储至预设目录下。
36.本公开至少一个实施例还提供一种用于文件系统的文件读取方法。该方法包括:向部署文件系统的服务器发送移动请求,移动请求包括移动信息,移动信息指示将目标文件从服务器中的初始存储位置移动到服务器中的预设目录,目标文件是预设类型文件,预设类型文件是由至少一个子文件打包而成的文件;从预设目录下读取至少一个子文件,至少一个子文件由服务器解包目标文件而得到并被存储在预设目录下。
37.图3为一种可用于实施本公开实施例提供的文件读取方法的系统示意图。如图3所示,该系统10可以包括客户端11、网络12和服务器13。例如,该系统10可以用于实施本公开任一实施例提供的文件读取方法。
38.客户端11可以是用户终端,例如为电脑11-1或手机11-2。可以理解的是,客户端11可以是能够执行文件读取的任何其他类型的电子设备,其可以包括但不限于台式电脑、笔记本电脑、平板电脑、智能手机、智能家居设备、可穿戴设备、车载电子设备、监控设备等。客户端11也可以是设置有电子设备的任何装备,例如车辆、机器人等。
39.用户可以对客户端11进行操作,客户端11通过网络12将用户的操作数据传输给服务器13,客户端11还可以通过网络12接收服务器13传输的数据。服务器13部署有文件系统,例如cifs文件系统,服务器13可以为客户端11提供文件访问服务。例如,客户端11和服务器13均安装有对应于cifs文件系统的应用程序,因此两者之间可以基于cifs协议进行文件的读写。
40.网络12可以是单个网络,或至少两个不同网络的组合。例如,网络12可以包括但不限于局域网、广域网、公用网络、专用网络等中的一种或几种的组合。
41.服务器13可以是一个单独的服务器,或一个服务器群组,群组内的各个服务器通过有线的或无线的网络进行连接。一个服务器群组可以是集中式的,例如数据中心,也可以是分布式的。服务器13可以是本地的或远程的。服务器13还可以包括内置的存储设备,以用于存储文件。或者,也可以单独提供存储设备,使服务器13与另行设置的存储设备通信连接,从而使用存储设备提供的存储服务。
42.图4为本公开一些实施例提供的一种用于文件系统的文件读取方法的流程示意图。该文件读取方法用于文件系统,文件系统部署在服务器中。如图4所示,在一些实施例中,该文件读取方法包括如下操作。
43.步骤s110:获取移动请求,其中,移动请求包括移动信息,移动信息指示将目标文件从服务器中的初始存储位置移动到服务器中的目标存储位置;步骤s120:判断目标文件是否为预设类型文件以及目标存储位置是否为预设目录,其中,预设类型文件是由至少一个子文件打包而成的文件;步骤s130:响应于目标文件是预设类型文件且目标存储位置是预设目录,将目标文件解包为至少一个子文件,并将至少一个子文件存储至预设目录下。
44.例如,上述文件系统可以是cifs文件系统,相应地,上述服务器可以是cifs文件系统服务器。当然,本公开的实施例不限于此,上述文件系统也可以是其他类型的文件系统,上述服务器也可以是其他类型的服务器,这可以根据实际需求而定,只要能提供文件系统的服务即可,本公开的实施例对此不作限制。上述步骤s110-s130可以在服务器中执行。
45.例如,在步骤s110中,获取移动请求,该移动请求例如是由客户端发送的请求。例如,当用户在客户端中执行移动操作时,会触发客户端向服务器发送移动请求。服务器中有一片共享区域是共享给客户端的,用户在客户端中可以访问该共享区域。当用户在客户端中访问共享区域并在共享区域中执行移动操作时(例如执行拖动操作,也即将某一文件从某一位置拖动到另一位置),会触发客户端向服务器发送移动请求。例如,移动请求包括移动信息,也即,移动请求中携带有移动信息。移动信息指示将目标文件从服务器中的初始存储位置移动到服务器中的目标存储位置。当服务器接收到移动请求后,会触发将目标文件从初始存储位置移动到目标存储位置的操作。目标文件是服务器中存储的文件,目标文件是本次移动请求所针对的移动对象,目标文件可以是客户端能够在共享区域中访问的任意的文件。
46.例如,在一些示例中,当服务器是cifs文件系统服务器且其上部署有cifs文件系统时,上述步骤s110可以包括:基于通用因特网文件系统(cifs)协议获取移动请求。服务器与客户端之间通过网络通信,可以通过cifs协议传输移动请求。例如,cifs文件系统服务器会监控cifs协议中的文件移动操作。
47.例如,在步骤s120中,判断目标文件是否为预设类型文件,并且判断目标存储位置是否为预设目录。例如,预设类型文件是由至少一个子文件打包而成的文件。预设类型文件可以是压缩文件和/或镜像文件,预设类型文件基于压缩和/或非压缩的方式打包生成。例如,预设类型文件是具有打包格式的文件,可以被称为special packet format(spf)文件。例如,当采用压缩的方式时,预设类型文件可以是压缩文件,例如.zip文件、.tar文件、.gz
文件或其他格式的压缩文件。例如,当采用非压缩的方式时,预设类型文件可以是镜像文件,例如.iso文件或其他格式的镜像文件。无论采用哪种方式,预设类型文件都是指将至少一个子文件打包而生成的文件,在本公开的说明中,预设类型文件也可以称为打包文件。例如,预设类型文件中所包含的子文件可以是任意类型的文件,这些子文件可以是压缩文件和/或非压缩文件,本公开的实施例对此不作限制。
48.例如,预设目录是指预先在服务器中设置的目录,也即,具有预设路径的存储位置。预设目录是服务器中存在的目录,例如在服务器的共享区域中存在的目录,客户端可以基于cifs协议访问该预设目录。例如,预设目录所在的共享区域与目标文件所在的共享区域可以是同一个共享区域,也可以是不同的共享区域,本公开的实施例对此不作限制,只要客户端能够访问即可,这可以根据实际需求而定。例如,预设目录可以是服务器中默认设置的目录,也可以是用户提前在客户端中操作而配置的目录,还可以是通过其他任意适用的方式设置的目录,这可以根据实际需求而定,本公开的实施例对此不作限制。例如,预设目录可以被命名为sxd。
49.例如,在步骤s130中,若目标文件是预设类型文件并且目标存储位置是预设目录,则将目标文件解包为至少一个子文件,并将解包得到的子文件存储至预设目录下。也即是,当用户在客户端中访问共享区域并在共享区域中拖动某一文件时,若该文件是预设类型文件且该文件被拖动至预设目录,则满足解包条件,因此会触发解包操作,此时服务器会将该文件解包为一个或多个子文件(会将该文件本身包含的所有子文件都解包出来),然后将解包得到的子文件存储到预设目录下。由此,用户可以在客户端中访问位于共享区域的预设目录,从而可以读取所需要的任意一个或任意多个子文件。
50.图5为图4中步骤s130的流程示意图。如图5所示,在一些示例中,上述步骤s130可以进一步包括如下操作。
51.步骤s131:响应于目标文件为压缩文件,将目标文件解压缩为至少一个子文件,并将至少一个子文件存储至预设目录下的子目录中;步骤s132:响应于目标文件为镜像文件,将目标文件包含的至少一个子文件挂载至预设目录下的子目录中。
52.例如,在步骤s131中,若目标文件为压缩文件,此时的解包操作为解压缩操作(也称为解压操作),因此将目标文件解压缩为子文件,并将解压缩得到的子文件存储至预设目录下的子目录中。例如,在步骤s132中,若目标文件为镜像文件,此时的解包操作为挂载操作,因此将目标文件所包含的子文件挂载至预设目录下的子目录中。例如,子目录可以是新生成的目录,子目录位于预设目录下,子目录用于存储目标文件所包含的子文件。通过将解包得到的子文件存储至对应于目标文件的子目录下,可以避免同时操作多个目标文件时所有的子文件混合存放,有利于用户快速访问所需要的子文件,便于对多个目标文件进行解包操作,可以提高访问效率,提高用户体验。
53.例如,在将目标文件解包为子文件之后,本公开实施例提供的文件读取方法还包括:响应于接收到针对预设目录下的子文件的读请求,返回预设目录下的子文件。也即是,客户端可以发出针对预设目录下的子文件的读请求,服务器接收到该读请求后,给客户端返回所需要的预设目录下的子文件,以实现子文件的读取。例如,用户可以在客户端读取预设目录下的子文件,实现任意子文件的访问。
54.在本公开实施例提供的文件读取方法中,当客户端需要访问服务器(例如cifs文件系统服务器)中存储的预设类型文件(例如spf文件)时,只需要在客户端把服务器上的spf文件移动到sxd目录,此时服务器监测到有spf文件被移动到sxd目录,则会自动挂载/解压,并使解压得到的子文件成为sxd中的子目录。例如,用户可以通过cifs协议访问cifs文件系统服务器,并在客户端把cifs文件系统服务器上某一spf文件移动(例如在图形界面中拖入)到一个特定的用于挂载或者解压的目录sxd(也即预设目录),即可在sxd自动挂载或解压成子目录,用户可即时在sxd的子目录中读取spf内的文件内容。
55.本公开实施例提供了一种全新的访问打包文件内容的方法,通过用户端的移动操作触发服务器上的挂载/解压操作,可以在客户端快速访问打包文件内的普通文件,整个过程中服务器不耗费带宽,几乎是秒级操作,访问速度快,可以提高用户存取文件的便利性,提高文件系统的性能。
56.图6为本公开一些实施例提供的一种用于文件系统的文件读取方法的示意图。如图6所示,在一些示例中,当用户对spf文件读取时,具体的操作如下。用户在客户端中操作,对服务器的共享区域1中的spf文件进行移动,将其移动到共享区域2中的特定sxd目录。在该示例中,spf文件是镜像文件,例如.iso文件,共享区域1与共享区域2不同。当然,在其他示例中,spf文件和sxd目录也可以位于同一个共享区域中,本公开的实施例对此不作限制。例如,用户可以在客户端通过cifs协议执行移动操作,比如windows通过文件管理器或者其他应用程序执行cifs协议以实现移动文件操作。需要说明的是,可以由windows通过文件管理器或者其他应用程序等任意适用的客户端程序来发送cifs协议命令,该cifs协议命令是移动spf文件到sxd目录的命令,也即,cifs协议的操作(operation,op)是移动文件。
57.接着,服务器(例如cifs文件系统服务器)监测到cifs协议执行移动文件命令,因此判断是否为符合条件的移动操作。该条件包括:是否为针对spf文件的移动操作,移动的目的地址是否为sxd目录。如果是符合条件的移动操作,也即,是针对spf文件的移动操作且移动的目的地址是sxd目录,则执行把spf文件挂载/解压到sxd下面的子目录的操作。例如,当cifs的op命令所移动的文件类型是spf,且移动文件的目的位置是sxd目录,则服务器会挂载(mount)spf文件或者解压spf文件到sxd目录下。
58.然后,用户可以访问sxd目录,可以读取sxd下的子目录中的文件,这些文件就是spf文件里面的内容。此时,cifs的op命令是读取sxd目录下面的文件。
59.通过上述操作,用户可以访问服务器中的spf文件中的内容,无需将spf文件在服务器与客户端之间传输,用户仅需执行移动操作便可以实现自动挂载/解压,该方式简单、便捷,便于用户在客户端快速访问spf文件内的普通文件,整个过程中服务器不耗费带宽,几乎是秒级操作,访问速度快。
60.图7为本公开一些实施例提供的另一种用于文件系统的文件读取方法的流程示意图。如图7所示,在一些实施例中,该文件读取方法还可以包括如下操作。
61.步骤s140:判断预设目录下的子文件是否被修改;步骤s150:响应于预设目录下的子文件被修改,监控服务器接收到的读请求;步骤s160:响应于读请求用于触发针对目标文件的读操作,将预设目录下的子文件打包为新生文件,并返回该新生文件。
62.例如,在步骤s140中,在用户访问预设目录下的子文件时,监控用户是否对这些子
文件进行修改,也即,判断预设目录下的子文件是否被修改。
63.图8为图7中步骤s140的流程示意图。如图8所示,在一些示例中,上述步骤s140可以进一步包括如下操作。
64.步骤s141:监控服务器接收到的写请求;步骤s142:响应于写请求用于触发针对预设目录下的子文件的写操作,确定预设目录下的子文件被修改。
65.例如,在步骤s141中,服务器(例如cifs文件系统服务器)可以监控cifs协议中的文件写操作,上述写请求是用于触发该写操作的请求。由于通过之前的移动操作,目标文件已经被解包(挂载或解压)至预设目录下,因此用户可以直接访问预设目录下的子文件,并对子文件进行写操作(例如写新的数据、删除等)。
66.例如,在步骤s142中,若判断出该写请求用于触发针对预设目录下的子文件的写操作,则确定预设目录下的子文件被修改。这里,子文件是否被修改,可以通过监控是否对子文件执行了写操作来判断,例如监控op命令是否是写文件。如果对子文件执行了写操作,则确定子文件被修改;如果没有对子文件执行写操作,则确定子文件没有被修改。
67.返回至图7,在步骤s150中,若经过判断确定预设目录下的子文件被修改,则监控该服务器所接收到的读请求。由于此时子文件已经被修改,若用户需要读取原来的打包文件,则需要进行更新,因此需要监控该服务器接收到的读请求。例如,该读请求也属于cifs的op命令,此时监控op命令是否是读取文件。
68.例如,在步骤s160中,若读请求用于触发针对目标文件的读操作,则将预设目录下的子文件打包为新生文件,并返回该新生文件。也即是,当监控到的读请求是读取目标文件(也即读取原始的spf文件),由于spf文件里的内容(预设目录下的子文件)已经被修改,因此将预设目录下的子文件打包为新生文件,并响应于该读请求返回新生文件。这里,将新的打包得到的文件称为新生文件,新生文件是更新后的spf文件。由此,用户读取的是更新后的spf文件。
69.图9为图7中步骤s160的流程示意图。如图9所示,在一些示例中,上述步骤s160可以进一步包括如下操作。
70.步骤s161:响应于目标文件为压缩文件,将预设目录下的子文件进行压缩以得到新生文件,并返回新生文件;步骤s162:响应于目标文件为镜像文件,将预设目录下的子文件以非压缩的方式打包为新生文件,并返回新生文件。
71.例如,在步骤s161和s162中,由于需要使更新后的文件与原始的文件的格式保持一致,因此,需要根据原始的文件(也即目标文件)的格式来确定打包方式。若原始的文件(也即目标文件)为压缩文件,则将预设目录下的子文件进行压缩以得到新生文件,并针对读请求返回新生文件;若原始的文件(也即目标文件)为镜像文件,则将预设目录下的子文件以非压缩的方式打包为新生文件,并针对读请求返回新生文件。例如,目标文件的格式与新生文件的格式相同。例如,目标文件的内容与新生文件的内容可能由于之前的修改操作而存在差异。
72.通过上述步骤s140-s160,可以实现自动压缩/打包,可以自动、便捷地更新spf文件,用户可以直接修改spf文件里的内容,然后直接读取更新后的spf文件。
73.在本公开实施例提供的文件读取方法中,当客户端读取cifs文件系统服务器中的spf文件时,若服务器监测到是已经挂载/解压的spf文件且用户已经有修改,则会对修改后的文件进行自动压缩/打包,自动生成新的文件,然后再供客户端读取。例如,在上文描述的自动挂载/解压的基础上,通过cifs协议,用户可以向sxd目录写入文件。当用户再读取/拷贝此sxd目录对应的spf文件时,cifs文件系统服务器会将更新后的文件自动打包,用户此时读取的spf文件也就自动包含了sxd目录里最新的修改。例如,cifs文件系统服务器会监控cifs协议中的文件读取操作,从而进一步判断是否需要执行实时压缩/打包操作。通过上述方式,使得对sxd目录的改动相当于对spf文件的改动,而无需用户自行对spf文件进行更新。
74.相比于通常的方式,上述执行过程中无需对spf文件进行费时、耗费带宽的两次拷贝,上述执行过程几乎是秒级操作,响应速度快。本公开实施例提供的文件读取方法可以实现即时打包(压缩),即时修改各种spf文件里的内容,即时添加文件到spf文件里,操作简单便捷,可以提高用户修改文件的便利性,提高文件系统的性能。
75.图10为本公开一些实施例提供的一种用于文件系统的文件读取方法的示意图。如图10所示,在一些示例中,在用户对spf文件的内容执行写操作之后,当需要把修改后的文件打包进spf文件时,具体的操作如下。
76.用户在客户端中操作,对服务器的共享区域1中的spf文件进行移动,将其移动到共享区域2中的特定sxd目录。在该示例中,spf文件是镜像文件,例如.iso文件,共享区域1与共享区域2不同。当然,在其他示例中,spf文件和sxd目录也可以位于同一个共享区域中,本公开的实施例对此不作限制。例如,用户可以在客户端通过cifs协议执行移动操作,比如windows通过文件管理器或者其他应用程序执行cifs协议以实现移动文件操作。需要说明的是,可以由windows通过文件管理器或者其他应用程序等任意适用的客户端程序来发送cifs协议命令,该cifs协议命令是移动spf文件到sxd目录的命令,也即,cifs协议的操作(operation,op)是移动文件。
77.接着,服务器(例如cifs文件系统服务器)监测到cifs协议执行移动文件命令,因此判断是否为符合条件的移动操作。该条件包括:是否为针对spf文件的移动操作,移动的目的地址是否为sxd目录。如果是符合条件的移动操作,也即,是针对spf文件的移动操作且移动的目的地址是sxd目录,则执行把spf文件挂载/解压到sxd下面的子目录的操作。例如,当cifs的op命令所移动的文件类型是spf,且移动文件的目的位置是sxd目录,则服务器会挂载(mount)spf文件或者解压spf文件到sxd目录下。
78.然后,用户可以访问sxd目录,可以读取sxd下的子目录中的文件,这些文件就是spf文件里面的内容。此时,cifs的op命令是读取sxd目录下面的文件。用户可以对sxd目录及其子目录下的文件进行增加、修改和删除等操作。例如,当cifs的op命令是对sxd目录下的文件执行写操作(包括删除,删除也是写操作),则说明对应的spf文件已经被修改。
79.接着,当用户需要读取整个spf文件时,比如用户通过文件管理器拷贝spf文件时,如果spf文件没有被修改,则直接拷贝即可,而如果有修改,则需要进行后续的自动打包处理。例如,通过监控cifs的op命令是否是写操作,可以获知spf文件是否被修改。如没有修改,当cifs的op命令是读取spf文件时,可以直接读取。
80.如果cifs文件系统服务器发现spf文件的挂载/解压目录有修改,则需要即时打
包/压缩成新的spf文件。然后再对新的spf文件进行拷贝,拷贝的是更新后的spf文件。例如,通过监控cifs的op命令是否是写操作,可以获知spf文件是否被修改。如有修改,当cifs的op命令是读取spf文件时,cifs文件系统服务器会重新打包/压缩新的spf文件。
81.通过上述操作,用户可以修改spf文件中的内容,并且在需要读取时自动生成新的spf文件,无需用户手动进行解包、打包等操作,用户只需对预设目录中的文件进行修改,即可实现对spf文件的修改。该方式简单、便捷,便于用户在客户端快速修改、更新spf文件,整个过程中不需要在服务器与客户端之间传输spf文件,不耗费带宽,几乎是秒级操作,访问速度快。
82.图11为本公开一些实施例提供的一种用于文件系统的文件读取方法的流程示意图。如图11所示,在一些实施例中,该文件读取方法包括如下操作。
83.步骤s210:向部署文件系统的服务器发送移动请求,其中,移动请求包括移动信息,移动信息指示将目标文件从服务器中的初始存储位置移动到服务器中的预设目录,目标文件为预设类型文件,预设类型文件是由至少一个子文件打包而成的文件;步骤s220:从预设目录下读取至少一个子文件,其中,至少一个子文件由服务器解包目标文件而得到并被存储在预设目录下。
84.例如,上述文件读取方法用于文件系统,该文件系统可以是cifs文件系统,相应地,上述服务器可以是cifs文件系统服务器。当然,本公开的实施例不限于此,上述文件系统也可以是其他类型的文件系统,上述服务器也可以是其他类型的服务器,这可以根据实际需求而定,只要能提供文件系统的服务即可,本公开的实施例对此不作限制。上述步骤s210-s220可以在客户端中执行。
85.例如,在步骤s210中,可以由客户端向部署文件系统的服务器发送移动请求。移动请求包括移动信息,也即,移动请求中携带有移动信息。移动信息指示将目标文件从服务器中的初始存储位置移动到服务器中的预设目录。例如,服务器中有一片共享区域是共享给客户端的,用户在客户端中可以访问该共享区域。当用户在客户端中访问共享区域并在共享区域中执行移动操作时(例如执行拖动操作),会触发客户端向服务器发送移动请求。
86.例如,目标文件是此次移动操作针对的对象,目标文件是服务器中存储的预设类型文件,预设类型文件是由至少一个子文件打包而成的文件。预设类型文件可以是压缩文件和/或镜像文件,预设类型文件基于压缩和/或非压缩的方式打包生成。例如,当采用压缩的方式时,预设类型文件可以是压缩文件,例如.zip文件、.tar文件、.gz文件或其他格式的压缩文件。例如,当采用非压缩的方式时,预设类型文件可以是镜像文件,例如.iso文件或其他格式的镜像文件。无论采用哪种方式,预设类型文件都是指将至少一个子文件打包而生成的文件,在本公开的说明中,预设类型文件也可以被称为打包文件或spf文件。例如,预设类型文件中所包含的子文件可以是任意类型的文件,这些子文件可以是压缩文件和/或非压缩文件,本公开的实施例对此不作限制。
87.例如,预设目录是指预先在服务器中设置的目录,也即,具有预设路径的存储位置。预设目录是服务器中存在的目录,例如在服务器的共享区域中存在的目录,客户端可以基于cifs协议访问该预设目录。例如,预设目录所在的共享区域与目标文件所在的共享区域可以是同一个共享区域,也可以是不同的共享区域,本公开的实施例对此不作限制,只要客户端能够访问即可,这可以根据实际需求而定。例如,预设目录可以是服务器中默认设置
的目录,也可以是用户提前在客户端中操作而配置的目录,还可以是通过其他任意适用的方式设置的目录,这可以根据实际需求而定,本公开的实施例对此不作限制。例如,预设目录可以被命名为sxd。
88.例如,在一些示例中,当服务器是cifs文件系统服务器且其上部署有cifs文件系统时,上述步骤s210可以包括:基于通用因特网文件系统(cifs)协议向部署文件系统的服务器发送移动请求。服务器与客户端之间通过网络通信,可以通过cifs协议传输移动请求。
89.当服务器接收到该移动请求后,由于目标文件为预设类型文件且需要将目标文件移动到预设目录,这满足触发解包操作的条件,因此服务器会基于上文结合图4至图10所描述的方法将目标文件解包为至少一个子文件,并将解包得到的子文件存储至预设目录下。
90.例如,在步骤s220中,客户端可以从预设目录下读取至少一个子文件。这些子文件是由服务器解包目标文件而得到并被存储在预设目录下的。
91.在本公开实施例提供的文件读取方法中,当客户端需要访问服务器(例如cifs文件系统服务器)中存储的预设类型文件(例如spf文件)时,只需要在客户端把服务器上的spf文件移动到sxd目录,此时服务器监测到有spf文件被移动到sxd目录,则会自动挂载/解压,并使挂载/解压得到的子文件成为sxd中的子目录。由此,用户在客户端执行了移动操作之后,可以在预设目录下访问spf文件内的普通文件。本公开实施例提供了一种全新的访问打包文件内容的方法,通过用户端的移动操作触发服务器上的挂载/解压操作,可以在客户端快速访问打包文件内的普通文件,整个过程中服务器不耗费带宽,几乎是秒级操作,访问速度快,可以提高用户存取文件的便利性,提高文件系统的性能。
92.图12为本公开一些实施例提供的另一种用于文件系统的文件读取方法的流程示意图。如图12所示,在一些实施例中,该文件读取方法还可以包括如下操作。
93.步骤s230:向服务器发送针对预设目录下的子文件的写请求,以对预设目录下的子文件进行修改;步骤s240:在对预设目录下的子文件进行修改之后,向服务器发送针对目标文件的读请求;步骤s250:接收服务器返回的新生文件,其中,新生文件是由预设目录下的子文件打包而成的文件。
94.例如,在步骤s230中,当需要修改子文件时,客户端可以向服务器发送针对预设目录下的子文件的写请求,以对预设目录下的子文件进行修改。例如可以发送cifs的op命令,此时op命令是写文件,从而对预设目录下的子文件进行增加、修改和删除等操作。
95.例如,在步骤s240中,在对预设目录下的子文件进行修改之后,当需要访问对应的spf文件时,客户端可以向服务器发送针对目标文件的读请求。例如可以发送cifs的op命令,此时op命令是读文件,从而读取目标文件。
96.例如,在步骤s250中,客户端接收服务器返回的新生文件。例如,新生文件是由预设目录下的子文件打包而成的文件。由于服务器会监控到预设目录下的子文件被修改,因此,在接收到针对目标文件的读请求(也即读取原始的spf文件的请求)后,服务器会基于预设目录下的子文件即时打包/压缩成新生文件,以更新原始的spf文件里的内容,并将新生文件返回给客户端。这里,将新的打包得到的文件称为新生文件,新生文件是更新后的spf文件。由此,用户读取的是更新后的spf文件。
97.例如,在目标文件为压缩文件的情形,新生文件是对预设目录下的子文件进行压缩而得到的文件;在目标文件为镜像文件的情形,新生文件是对预设目录下的子文件以非压缩的方式打包而得到的文件。由此,根据原始的文件(也即目标文件)的格式来确定打包方式,可以使更新后的文件与原始的文件的格式保持一致。例如,目标文件的格式与新生文件的格式相同。例如,目标文件的内容与新生文件的内容可能由于之前的修改操作而存在差异。
98.本公开至少一个实施例还提供一种用于文件系统的文件读取装置。该文件读取装置可以通过拖动文件来实现挂载、解压,可以实现即时打包以及即时修改、增减各种类型的打包文件所包含的内容,不耗费服务器带宽,效率高,响应快,几乎是秒级操作,能够有效提高读取效率。
99.图13为本公开一些实施例提供的一种用于文件系统的文件读取装置的示意框图。如图13所示,在一些实施例中,该文件读取装置20包括获取单元21、判断单元22、处理单元23。例如,该文件读取装置20用于文件系统,文件系统部署在服务器中,该文件读取装置20可以是服务器,也可以是服务器中的部件、组件或单元。
100.例如,获取单元21配置为获取移动请求。移动请求包括移动信息,移动信息指示将目标文件从服务器中的初始存储位置移动到服务器中的目标存储位置。例如,获取单元21可以执行图4所示的文件读取方法的步骤s110。
101.例如,判断单元22配置为判断目标文件是否为预设类型文件以及目标存储位置是否为预设目录。例如,预设类型文件是由至少一个子文件打包而成的文件。例如,判断单元22可以执行图4所示的文件读取方法的步骤s120。
102.例如,处理单元23配置为响应于目标文件是预设类型文件且目标存储位置是预设目录,将目标文件解包为至少一个子文件,并将至少一个子文件存储至预设目录下。例如,处理单元23可以执行图4所示的文件读取方法的步骤s130。
103.例如,获取单元21、判断单元22、处理单元23可以为硬件、软件、固件以及它们的任意可行的组合。例如,获取单元21、判断单元22、处理单元23可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于获取单元21、判断单元22、处理单元23的具体实现形式,本公开的实施例对此不作限制。
104.需要说明的是,本公开的实施例中,文件读取装置20的各个单元与前述的文件读取方法的各个步骤对应,关于该文件读取装置20的具体功能可以参考上文中文件读取方法的相关描述,此处不再赘述。图13所示的文件读取装置20的组件和结构只是示例性的,而非限制性的,根据需要,该文件读取装置20还可以包括其他组件和结构。
105.图14为本公开一些实施例提供的另一种用于文件系统的文件读取装置的示意框图。如图14所示,在一些实施例中,该文件读取装置30包括发送单元31和读取单元32。例如,该文件读取装置30用于文件系统,文件系统部署在服务器中。该文件读取装置30例如为客户端,或者为客户端中的部件、组件或单元。
106.例如,发送单元31配置为向部署文件系统的服务器发送移动请求。移动请求包括移动信息,移动信息指示将目标文件从服务器中的初始存储位置移动到服务器中的预设目录,目标文件为预设类型文件,预设类型文件是由至少一个子文件打包而成的文件。例如,发送单元31可以执行图11所示的文件读取方法的步骤s210。
107.例如,读取单元32配置为从预设目录下读取至少一个子文件。至少一个子文件由服务器解包目标文件而得到并被存储在预设目录下。例如,读取单元32可以执行图11所示的文件读取方法的步骤s220。
108.例如,发送单元31和读取单元32可以为硬件、软件、固件以及它们的任意可行的组合。例如,发送单元31和读取单元32可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于发送单元31和读取单元32的具体实现形式,本公开的实施例对此不作限制。
109.需要说明的是,本公开的实施例中,文件读取装置30的各个单元与前述的文件读取方法的各个步骤对应,关于该文件读取装置30的具体功能可以参考上文中文件读取方法的相关描述,此处不再赘述。图14所示的文件读取装置30的组件和结构只是示例性的,而非限制性的,根据需要,该文件读取装置30还可以包括其他组件和结构。
110.本公开至少一个实施例还提供一种电子设备,该电子设备包括本公开任一实施例提供的用于文件系统的文件读取装置。该电子设备可以通过拖动文件来实现挂载、解压,可以实现即时打包以及即时修改、增减各种类型的打包文件所包含的内容,不耗费服务器带宽,效率高,响应快,几乎是秒级操作,能够有效提高读取效率。
111.图15为本公开一些实施例提供的一种电子设备的示意框图。如图15所示,电子设备40包括文件读取装置41,该文件读取装置41可以为图13所示的文件读取装置20,或者为图14所示的文件读取装置30。例如,该电子设备40可以为cifs文件服务系统或其他任意的需要实现文件服务的系统,本公开的实施例对此不作限制。关于该电子设备40的相关说明可参考上文中关于文件读取装置20和文件读取装置30的描述,此处不再赘述。
112.本公开至少一个实施例还提供一种电子设备,该电子设备包括处理器和存储器,一个或多个计算机程序模块被存储在该存储器中并被配置为由该处理器执行,一个或多个计算机程序模块包括用于实现本公开任一实施例提供的用于文件系统的文件读取方法。该电子设备可以通过拖动文件来实现挂载、解压,可以实现即时打包以及即时修改、增减各种类型的打包文件所包含的内容,不耗费服务器带宽,效率高,响应快,几乎是秒级操作,能够有效提高读取效率。
113.图16为本公开一些实施例提供的另一种电子设备的示意框图。如图16所示,该电子设备50包括处理器51和存储器52。存储器52用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器51用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器51运行时可以执行上文所述的用于文件系统的文件读取方法中的一个或多个步骤。存储器52和处理器51可以通过总线系统和/或其它形式的连接机构(未示出)互连。
114.例如,处理器51可以是中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器(dsp)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元,例如现场可编程门阵列(fpga)等;例如,中央处理单元(cpu)可以为x86或arm架构等。处理器51可以为通用处理器或专用处理器,可以控制电子设备50中的其它组件以执行期望的功能。
115.例如,存储器52可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失
性存储器例如可以包括只读存储器(rom)、硬盘、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、usb存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器51可以运行一个或多个计算机程序模块,以实现电子设备50的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
116.需要说明的是,本公开的实施例中,电子设备50的具体功能和技术效果可以参考上文中关于用于文件系统的文件读取方法的描述,此处不再赘述。
117.本公开至少一个实施例还提供一种存储介质,该存储介质存储有非暂时性计算机可读指令,当该非暂时性计算机可读指令由计算机执行时实现本公开任一实施例提供的用于文件系统的文件读取方法。利用该存储介质,可以通过拖动文件来实现挂载、解压,可以实现即时打包以及即时修改、增减各种类型的打包文件所包含的内容,不耗费服务器带宽,效率高,响应快,几乎是秒级操作,能够有效提高读取效率。
118.图17为本公开一些实施例提供的一种存储介质的示意图。如图17所示,存储介质60存储有非暂时性计算机可读指令61。例如,当非暂时性计算机可读指令61由计算机执行时可以执行根据上文所述的用于文件系统的文件读取方法中的一个或多个步骤。
119.例如,该存储介质60可以应用于上述电子设备中。例如,存储介质60可以为图16所示的电子设备50中的存储器52。例如,关于存储介质60的相关说明可以参考图16所示的电子设备50中的存储器52的相应描述,此处不再赘述。
120.有以下几点需要说明:(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
121.(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
122.以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献