CN113918519A - 一种文件夹挂载方法、装置及终端设备 - Google Patents
一种文件夹挂载方法、装置及终端设备 Download PDFInfo
- Publication number
- CN113918519A CN113918519A CN202111038676.6A CN202111038676A CN113918519A CN 113918519 A CN113918519 A CN 113918519A CN 202111038676 A CN202111038676 A CN 202111038676A CN 113918519 A CN113918519 A CN 113918519A
- Authority
- CN
- China
- Prior art keywords
- folder
- data
- file
- preset
- physical file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000011068 loading method Methods 0.000 title claims description 16
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000013507 mapping Methods 0.000 claims abstract description 21
- 238000004590 computer program Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 12
- 230000000875 corresponding effect Effects 0.000 description 44
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241001290266 Sciaenops ocellatus Species 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请适用于文件夹挂载领域,提供了一种文件夹挂载方法、装置及终端设备。本申请实施例中获取待挂载文件夹,将上述待挂载文件夹的目录索引数据发送给预设服务器;获取上述预设服务器根据上述目录索引数据发送的需求指令,确定上述需求指令对应的目标需求数据的起始位置和结束位置;若上述结束位置大于预设的虚拟内存边界,则根据预设的虚拟内存映射数组中的各个物理文件的位置信息确定上述目标需求数据对应的物理文件;将上述物理文件的数据块发送给上述预设服务器,从而降低挂载文件夹所花费的时间。
Description
技术领域
本申请属于文件夹挂载领域,尤其涉及一种文件夹挂载方法、装置及终端设备。
背景技术
随着服务器技术的发展,为了更方便的使用客户端上的各种资源,可以将客户端上的文件夹挂载到服务器上,实现客户机与服务器端共享该文件夹内部的文件。而在现有技术中,一般基于JAVA客户端程序实现文件夹挂载,操作人员通过JAVA客户端程序将要生成的临时镜像文件指定一个容量和一个用户存放该临时镜像文件的本地目录,在客户机的本地目录生成指定容量的临时镜像文件,然后将所生成的临时镜像文件挂载至服务器,而当挂载文件夹的内存较大时所生成的临时镜像文件需要拷贝大量文件数据,从而花费大量时间。
发明内容
本申请实施例提供了一种文件夹挂载方法、装置及终端设备,可以解决挂载文件夹需花费大量时间的问题。
第一方面,本申请实施例提供了一种文件夹挂载方法,包括:
获取待挂载文件夹,将所述待挂载文件夹的目录索引数据发送给预设服务器;
获取所述预设服务器根据所述目录索引数据发送的需求指令,确定所述需求指令对应的目标需求数据的起始位置和结束位置;
若所述结束位置大于预设的虚拟内存边界,则根据预设的虚拟内存映射数组中的各个物理文件的位置信息获取所述目标需求数据对应的物理文件;
将所述物理文件的数据块发送给所述预设服务器。
第二方面,本申请实施例提供了一种文件夹挂载装置,包括:
挂载模块,用于获取待挂载文件夹,将所述待挂载文件夹的目录索引数据发送给预设服务器;
位置确定模块,用于获取所述预设服务器根据所述目录索引数据发送的需求指令,确定所述需求指令对应的目标需求数据的起始位置和结束位置;
文件获取模块,用于若所述结束位置大于预设的虚拟内存边界,则根据预设的虚拟内存映射数组中的各个物理文件的位置信息获取所述目标需求数据对应的物理文件;
发送模块,用于将所述物理文件的数据块发送给所述预设服务器。
第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现上述任一种文件夹挂载方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述的计算机程序被处理器执行时实现上述任一种文件夹挂载方法的步骤。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一种文件夹挂载方法。
本申请实施例中获取待挂载文件夹,将上述待挂载文件夹的目录索引数据发送给预设服务器,获取上述预设服务器根据上述目录索引数据发送的需求指令,确定上述需求指令对应的目标需求数据的起始位置和结束位置;若上述结束位置大于预设的虚拟内存边界,则根据预设的虚拟内存映射数组中的各个物理文件的位置信息获取上述目标需求数据对应的物理文件;将上述物理文件的数据块发送给上述预设服务器,本申请通过仅将待挂载文件夹相关目录的目录索引数据发送给服务器,从而仅仅在服务器有需求时获取对应的物理文件,以降低挂载文件夹所花费的时间。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的文件夹挂载方法的第一种流程示意图;
图2是本申请实施例提供的目录索引数据的结构示意图;
图3是本申请实施例提供的虚拟内存映射数组的结构示意图;
图4是本申请实施例提供的获取物理文件的场景示意图;
图5是本申请实施例提供的文件夹挂载装置的结构示意图;
图6是本申请实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
图1所示为本申请实施例中一种文件夹挂载方法的流程示意图,该方法的执行主体可以是终端设备,如图1所示,上述文件夹挂载方法可以包括如下步骤:
步骤S101、获取待挂载文件夹,将所述待挂载文件夹的目录索引数据发送给预设服务器。
在本实施例中,用户可以通过在终端设备的浏览器上拖拽文件夹至指定区域的方式,而被拖拽的文件夹即上述待挂载文件夹,从而简化了用户进行文件夹挂载时的操作步骤。并且终端设备仅仅将待挂载文件夹的文件夹目录在内存中按照ISO9660标准和Joliet扩展协议在内存中生成目录索引数据,通过网络块设备协议(Network Block Device,NBD)的方式发送给预设服务器,而无需连同待挂载文件夹对应的物理文件生成完整ISO格式的镜像文件进行挂载,从而仅需分配极少的内存空间存放目录索引数据,即可实现大小非常大的文件夹挂载,降低挂载文件夹所花费的时间,提高程序的运行性能。其中,上述NBD网络块设备传输协议是一种网络存储共享协议,可以将远程块设备文件或者镜像文件挂载到服务器。NBD协议基于client/server架构设计。在服务器端,可以将一个存储块设备或者镜像文件变成一个可以使用的网络块设备。
可以理解的是,上述目录索引数据的内存占用空间仅与待挂载文件夹包含的文件夹数量和各个文件夹下的子文件数量成正相关,通过仅发送待挂载文件夹的目录索引数据,致使原先需要几分钟挂载的大小超过4GB的文件夹,目前仅需不到10秒。其中,上述目录索引数据是基于ISO9660文件系统标准协议以及Joliet扩展标准协议使用HTML5语言在内存中生成的。
如图2所示,上述目录索引数据包括但不限于是系统保留区域(System ReservedArea)、主卷描述头(Primary Volume Descriptor)、增强卷描述头(Enhanced VolumeDescriptor)、卷集合描述终止头(Volume Descriptor Set Terminator)、路径表(PathTable)、文件和目录描述头(File and Directory Descriptors)。
具体地,上述系统保留区域位于目录索引数据的开始位置,大小为16个扇区,每个扇区为2048字节,如果没有特殊需求,全部字节默认填充0。
具体地,上述主卷描述头的起始位置位于系统保留区域后面下1个扇区第0个字节,占据1个扇区,该扇区是待挂载文件夹的目录索引数据的入口,包含路径表开始位置、路径表的大小、根目录所在扇区位置、层级目录索引的总大小等目录索引数据的元数据,该区域的数据采用单字节方式填充。
具体地,上述增强卷描述头用于识别Joliet扩展协议,其起始位置位于主卷描述头后面第1个扇区第0个字节,占据1个扇区。
具体地,上述卷集合描述终止头位于增强卷描述头后面下1个扇区第0个字节,占据1个扇区,当出现多个描述头的时候,用于标识描述头的结束。
具体地,上述路径表包含待挂载文件夹中的各个文件夹和文件夹中的各个子文件的位置信息,路径表的起始位置位于卷集合描述结束头后面第1个扇区第0个字节,该区域的大小与待挂载文件夹中各个子文件的目录数量成正比,其占用字节数必须是扇区大小的整数倍,当占用的字节不满1个扇区的时候,需要填充0,路径表记录了待挂载文件夹中各个子文件夹的目录,程序按照挂载目录树形结构宽度优先的遍历顺序,依次存储每个子文件夹的子目录的名称,大小和父目录所在扇区位置。由于ISO9660标准协议的可移植性和版本兼容性要求,路径信息由四部分组成,每个部分存储的格式虽不同,但数据内容一样。此四部分分别为大端字节序单字节版本、小端字节序单字节版本、大端字节序双字节版本、小端字节序双字节版本。其中,大端字节序单字节版本和小端字节序单字节版本,由ISO9660标准协议定义;大端字节序双字节版本、小端字节序双字节版本,由Joliet扩展协议定义。
具体地,上述文件和目录描述头的区域位于路径表区域后面第1个扇区第0个字节,主要用于记录每个子目录下面的目录名和文件名、物理文件所处扇区位置、物理文件大小等。由于兼容性要求,其存储格式需要包括单字节和双字节版本。
具体地,终端设备可以通过基板管理控制器(baseboard managementcontroller,BMC)实现文件夹的挂载,BMC基于HTML5技术在内存中生成待挂载文件夹的目录索引数据。其中,上述BMC是在智能平台管理接口(Intelligent Platform ManagementInterface,IPMI)下提供智能管理控制的控制器,其自备电源,并可以通过获取温度、风扇、功耗、电源状态、RAID卡信息和CPU内存状态等信息来监控服务器运行的健康状况,同时BMC支持IPMI,Redfish,SNMP,SMTP等接口,以及支持网络产品界面设计(Website UserInterface,Web UI)的访问和IPMI命令访问。
在一个实施例中,在步骤S101中将待挂载文件夹的目录索引数据发送给预设服务器之前,可以包括:若待挂载文件夹包括至少一个文件或至少一个子文件夹,则生成虚拟根目录节点,虚拟根目录节点包括至少一个文件或一个子文件夹;根据所述虚拟根目录节点生成目录索引数据。
在一个实施例中,在步骤S101中将待挂载文件夹的目录索引数据发送给预设服务器之前,可以包括:终端设备遍历待挂载文件夹,确定出待挂载文件夹的文件夹信息,该文件夹信息包括但不限于是待挂载文件夹中的文件夹总数量、待挂载文件夹中的各个文件夹中的子文件数量、待挂载文件夹中的各个子文件对应目录占用空间等,根据文件夹信息生成目录索引数据。
具体地,在遍历待挂载文件夹的过程中可根据待挂载文件夹中已遍历部分对应的目录索引数据的存储空间,该目录索引数据的存储空间也就是待挂载文件夹中已遍历部分生成的目录索引数据的存储空间。当存储空间大于预设阈值时,说明当前终端设备的内存空间已经超过了终端设备设定的最大限制,终端设备的内存并不足以存放遍历待挂载文件夹生成的目录索引数据,故而终端设备停止遍历待挂载文件夹,并发出报警信息,以便于进行相应的处理,例如,提醒相关工作人员进行处理,或优先选取重要文件夹生成目录索引数据。
可选的,在获取待挂载文件夹之后,对待挂载文件夹进行验证,若检测出上述待挂载文件夹已进行挂载,则释放上一次挂载文件夹的目录索引数据所占据的内存空间,即将上一次挂载文件夹的目录索引数据从内存中释放,从而避免重复文件夹挂载操作而造成的内存泄露。
可以理解的是,由于目录索引数据为ISO966标准文件格式,该格式是基于固定大小、边界对齐的二进制数据块分配,而HTML5只开放了基于字节的内存二进制数据读写API接口,因此,终端设备可以建立基于块分配的内存管理模块,供上层接口进行二进制数据的快速读写。
步骤S102、获取所述预设服务器根据所述目录索引数据发送的需求指令,确定所述需求指令对应的目标需求数据的起始位置和结束位置。
在本实施例中,当终端设备获取到服务器基于其挂载至服务器的目录索引数据发送的需求指令时,为了确定服务器当前所需求的是待挂载文件夹的目录索引数据,还是待挂载文件夹中的至少一个物理文件,终端设备需确定出该需求指令对应的目标需求数据在待挂载文件夹依据ISO9660标准格式文件逻辑所生成的数据中的起始位置和结束位置,以准确判断出服务器当前所需求的数据,进而利用相应手段来获取该数据。
可以理解的是,ISO9660标准格式文件可以分为两部分,一部分为挂载文件夹的目录部分,即上述目录索引数据,一部分为挂载文件夹的数据部分,即上述物理文件,目录部分在数据部分之前,而上述目标需求数据为服务器当前所需获取的数据,可以为目录部分的数据,也可以为数据部分的数据,因服务器上仅存在待挂载文件夹的目录索引数据,而没有待挂载文件夹的物理文件,故需判断出目标需求数据是目录还是物理文件,从而采取对应获取手段。上述需求指令可以为用户操作服务器时生成的指令,也可以为服务器根据预设运行规则自行生成的指令,例如每隔预设时间执行某一操作。终端设备获取BMC的NBD服务器代理通过Web Socket协议发送的需求指令。
在一个实施例中,步骤S102可以包括:终端设备通过确定需求指令对应的目标需求数据的偏移位置(记为offset)和数据长度(记为size),以根据偏移位置和数据长度确定目标需求数据的结束位置,即offset+size为结束位置。
在一个实施例中,为了准确判断出服务器当前所需求的数据相应位置,在步骤S102之后可以包括:终端设备根据预设的虚拟内存边界进行判断,该虚拟内存边界为区分目录部分和数据部分的边界,可以为目录索引数据在ISO9660标准格式文件中的结束位置的下一个字节所处位置,若判断出目标需求数据的结束位置小于或等于预设的虚拟内存边界(记为vm_begin),说明目标需求数据为待挂载文件的目录数据,则终端设备直接根据内存中生成的目录索引数据确定目标需求数据对应的目录数据块,即目录索引数据中的相应扇区。
步骤S103、若所述结束位置大于预设的虚拟内存边界,则根据预设的虚拟内存映射数组中的各个物理文件的位置信息获取所述目标需求数据对应的物理文件。
在本实施例中,若目标需求数据的结束位置大于目录索引数据的虚拟内存边界,说明当前服务器所需求的目标需求数据的部分数据或全部数据为物理文件夹,故终端设备可根据虚拟内存映射数组中的各个物理文件的位置信息获取目标需求数据对应的物理文件。其中,上述虚拟内存映射数组如图3所示,上述虚拟内存映射数组包括待挂载文件夹中的各个物理文件在ISO9660标准格式文件中的起始位置(记为begin)、结束位置(记为end)、实际文件结束位置(记为eof)、文件句柄(记为hFile)的有序数组,该有序数组按低地址至高地址进行排列,其主要根据待挂载文件夹中的各个子文件实际占用的磁盘空间在内存中生成的数据,即子文件在ISO9660标准格式文件中的位置信息,上述位置信息包括但不限于是起始位置、结束位置、实际文件结束位置等,因ISO9660标准格式文件中的各个物理文件是以数据块的形式存在的,而有时物理文件的各个字节组成的字节长度并不满足ISO9660标准对物理文件存储的边界对齐要求,故需对数据块进行字节填充,即图3中的空白方格为填充字节,以满足数据块的长度要求,而上述结束位置即为对数据块填充后的位置,每一个物理文件包括至少一个数据块,无论该物理文件是否包含真实数据。
在一个实施例中,在当前服务器所需求的部分数据或全部数据为物理文件时,步骤S103可以包括:终端设备确定需求指令对应的目标需求数据的偏移位置和数据长度,再根据offset在物理文件映射函数中通过二分法遍历查找虚拟内存映射数组,从而根据虚拟内存映射数组中的各个物理文件的位置信息中的begin和end获取目标需求数据对应的初始物理文件的起始位置,并根据偏移位置和数据长度确定目标需求数据的结束位置,进而进行判断,若结束位置小于初始物理文件的结束位置,则该物理文件的部分数据或全部数据即为目标需求数据,如图4中的场景一所示,图4中的文件1即为初始物理文件,文件1中的offset至offset+size即为目标需求数据;若结束位置(记为offset+size)大于初始物理文件的结束位置(记为end),说明目标需求数据包括一个以上的物理文件,则依次获取初始物理文件之后的物理文件,并对所获取的物理文件的结束位置进行判断,若判断目标需求数据的结束位置大于所获取的物理文件的结束位置,则继续进行获取,直至目标需求数据的结束位置小于或等于物理文件的结束位置时,停止获取物理文件,如图4中的场景三所示。
可以理解的是,在图4中场景一中目标需求数据为文件1中的offset至offset+size的字节,则将文件1中的offset至offset+size的字节发送给服务器即可。在场景二中目标需求数据为文件2的填充字节,则直接在内存中生成各个字节为“0”的数据块发送给服务器即可。在场景三中目标需求数据为文件1中的offset至文件2中的offset+size之间的字节,则将文件夹1中的offset至文件夹2中的offset+size之间的字节发送给服务器即可。在场景四中目标需求数据为文件1中的offset至文件2中的offset+size之间的字节,而文件2中有部分填充字节,则将文件夹1中的offset至文件夹2中的存在文件数据的字节发送给服务器即可。而可以理解的是,若发送给服务器的字节是以固定预设长度的数据块的形式发送的,且字节长度小于预设长度,则对数据块进行字节填充,即填充字节“0”,直至填充后的数据块的字节长度等于预设长度时,将数据块发送给预设服务器。
可选的,在确定初始物理文件后,可以对初始物理文件在虚拟内存映射数组中的相应位置处设置下标(first_file_index),当需继续获取物理文件时,则继续对所获取的物理文件在虚拟内存映射数组中的相应位置处设置下标,直至停止获取,目标需求数据所对应的所有物理文件在虚拟内存映射数组的下标位置为[first_file_index,first_file_index+1,…,end_file_index]。
步骤S104、将所述物理文件的数据块发送给所述预设服务器。
在本实施例中,终端设备按目标需求数据将获取的物理文件的数据块发送至服务器,发送完后即可释放对应的内存空间,从而减少了待挂载文件夹的挂载等待时间,节省了客户端的内存资源。
具体地,步骤S104可以包括:通过将目标需求数据映射为上述物理文件实际读取的数据块和字节数,即将包含物理文件数据的数据块填充至内存预先设置的临时内存块,填充完成后,将临时内存块发送至服务器。而在某些实施例中,需将数据块以固定的长度发送至服务器,故若物理文件的数据块的字节长度小于预设长度,则对物理文件的数据块进行字节填充,直至填充后的物理文件的数据块的数据长度等于预设长度时,将物理文件的数据块发送给预设服务器。
可以理解的是,因ISO9660标准格式文件有边界对齐要求,故每个物理文件的实际文件结束位置均小于或等于该文件在ISO9660标准格式文件中的结束位置,故若数据交互过程中,发现物理文件的实际文件结束位置大于该文件在ISO9660标准格式文件中的结束位置时,需发出报警信息。
本申请实施例中获取待挂载文件夹,将上述待挂载文件夹的目录索引数据发送给预设服务器,获取上述预设服务器根据上述目录索引数据发送的需求指令,确定上述需求指令对应的目标需求数据的结束位置;若上述结束位置大于预设的虚拟内存边界,则根据预设的虚拟内存映射数组中的各个物理文件的位置信息获取上述目标需求数据对应的物理文件;将上述物理文件的数据块发送给上述预设服务器,本申请通过仅将待挂载文件夹相关目录的目录索引数据发送给服务器,从而仅仅在服务器有需求时获取对应的物理文件,以降低挂载文件夹所花费的时间。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文所述的一种文件夹挂载方法,图5所示为本申请实施例中一种文件夹挂载装置的结构示意图,如图5所示,上述文件夹挂载装置可以包括:
挂载模块501,用于获取待挂载文件夹,将所述待挂载文件夹的目录索引数据发送给预设服务器。
位置确定模块502,用于获取所述预设服务器根据所述目录索引数据发送的需求指令,确定所述需求指令对应的目标需求数据的起始位置和结束位置。
文件获取模块503,用于若所述结束位置大于预设的虚拟内存边界,则根据预设的虚拟内存映射数组中的各个物理文件的位置信息获取所述目标需求数据对应的物理文件。
发送模块504,用于将所述物理文件的数据块发送给所述预设服务器。
在一个实施例中,上述挂载模块501可以包括:
数据生成子模块,用于遍历所述待挂载文件夹,确定所述待挂载文件夹的文件夹信息,根据所述文件夹信息生成所述目录索引数据。
在一个实施例中,上述数据生成子模块可以包括:
空间确定单元,用于在遍历所述待挂载文件夹的过程中确定所述待挂载文件夹对应的目录索引数据的存储空间。
报警单元,用于当所述存储空间大于预设阈值时,停止遍历所述待挂载文件夹,并发出报警信息。
在一个实施例中,上述位置确定模块502可以包括:
第一信息确定子模块,用于确定所述需求指令对应的目标需求数据的偏移位置和数据长度。
第一位置确定子模块,用于根据所述偏移位置和所述数据长度确定所述目标需求数据的结束位置。
在一个实施例中,上述文件夹挂载装置还可以包括:
数据块确定模块,用于若所述结束位置小于或等于预设的虚拟内存边界,则根据所述目录索引数据确定所述目标需求数据对应的目录数据块。
在一个实施例中,上述发送模块504可以包括:
填充子模块,用于若所述物理文件的数据块的字节长度小于预设长度,则对所述物理文件的数据块进行字节填充,直至填充后的物理文件的数据块的字节长度等于预设长度时,将所述物理文件的数据块发送给所述预设服务器。
在一个实施例中,上述文件获取模块503可以包括:
第二信息确定子模块,用于确定需求指令对应的目标需求数据的偏移位置和数据长度。
第一文件获取子模块,用于根据所述各个物理文件的位置信息和所述目标需求数据的偏移位置获取所述目标需求数据对应的初始物理文件。
第二位置确定子模块,用于根据偏移位置和数据长度确定目标需求数据的起始位置和结束位置。
第二文件获取子模块,用于若所述结束位置大于所述初始物理文件的结束位置,则依次获取所述初始物理文件之后的物理文件,直至所述结束位置小于或等于所述物理文件的结束位置时,停止获取所述物理文件。
在一个实施例中,上述文件夹挂载装置还可以包括:
节点生成模块,用于若所述待挂载文件夹包括至少一个文件或至少一个子文件夹,则生成虚拟根目录节点,所述虚拟根目录节点包括所述至少一个文件或至少一个子文件夹。
数据生成模块,用于根据所述虚拟根目录节点生成目录索引数据。
本申请实施例中获取待挂载文件夹,将上述待挂载文件夹的目录索引数据发送给预设服务器,获取上述预设服务器根据上述目录索引数据发送的需求指令,确定上述需求指令对应的目标需求数据的起始位置和结束位置;若上述结束位置大于预设的虚拟内存边界,则根据预设的虚拟内存映射数组中的各个物理文件的位置信息获取上述目标需求数据对应的物理文件;将上述物理文件的数据块发送给上述预设服务器,本申请通过仅将待挂载文件夹相关目录的目录索引数据发送给服务器,从而仅仅在服务器有需求时获取对应的物理文件,以降低挂载文件夹所花费的时间。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述系统实施例以及方法实施例中的对应过程,在此不再赘述。
图6为本申请实施例提供的终端设备的结构示意图。为了便于说明,仅示出了与本申请实施例相关的部分。
如图6所示,该实施例的终端设备6包括:至少一个处理器600(图6中仅示出一个),与上述处理器600连接的存储器601,以及存储在上述存储器601中并可在上述至少一个处理器600上运行的计算机程序602,例如文件夹挂载程序。上述处理器600执行上述计算机程序602时实现上述各个文件夹挂载方法实施例中的步骤,例如图1所示的步骤S101至S104。或者,上述处理器600执行上述计算机程序602时实现上述各装置实施例中各模块的功能,例如图5所示模块501至504的功能。
示例性的,上述计算机程序602可以被分割成一个或多个模块,上述一个或者多个模块被存储在上述存储器601中,并由上述处理器600执行,以完成本申请。上述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述上述计算机程序602在上述终端设备6中的执行过程。例如,上述计算机程序602可以被分割成挂载模块501、位置确定模块502、文件获取模块503、发送模块504,各模块具体功能如下:
挂载模块501,用于获取待挂载文件夹,将所述待挂载文件夹的目录索引数据发送给预设服务器;
位置确定模块502,用于获取所述预设服务器根据所述目录索引数据发送的需求指令,确定所述需求指令对应的目标需求数据的起始位置和结束位置;
文件获取模块503,用于若所述结束位置大于预设的虚拟内存边界,则根据预设的虚拟内存映射数组中的各个物理文件的位置信息获取所述目标需求数据对应的物理文件;
发送模块504,用于将所述物理文件的数据块发送给所述预设服务器。
上述终端设备6可包括,但不仅限于,处理器600、存储器601。本领域技术人员可以理解,图6仅仅是终端设备6的举例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备、总线等。
所称处理器600可以是中央处理单元(Central Processing Unit,CPU),该处理器600还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述存储器601在一些实施例中可以是上述终端设备6的内部存储单元,例如终端设备6的硬盘或内存。上述存储器601在另一些实施例中也可以是上述终端设备6的外部存储设备,例如上述终端设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,上述存储器601还可以既包括上述终端设备6的内部存储单元也包括外部存储设备。上述存储器601用于存储操作系统、应用程序、引导装载程序(Boot Loader)、数据以及其他程序等,例如上述计算机程序的程序代码等。上述存储器601还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种文件夹挂载方法,其特征在于,包括:
获取待挂载文件夹,将所述待挂载文件夹的目录索引数据发送给预设服务器;
获取所述预设服务器根据所述目录索引数据发送的需求指令,确定所述需求指令对应的目标需求数据的起始位置和结束位置;
若所述结束位置大于预设的虚拟内存边界,则根据预设的虚拟内存映射数组中的各个物理文件的位置信息获取所述目标需求数据对应的物理文件;
将所述物理文件的数据块发送给所述预设服务器。
2.如权利要求1所述的文件夹挂载方法,其特征在于,在将所述待挂载文件夹的目录索引数据发送给预设服务器之前,包括:
遍历所述待挂载文件夹,确定所述待挂载文件夹的文件夹信息,根据所述文件夹信息生成所述目录索引数据。
3.如权利要求2所述的文件夹挂载方法,其特征在于,包括:
在遍历所述待挂载文件夹的过程中确定所述待挂载文件夹对应的目录索引数据的存储空间;
当所述存储空间大于预设阈值时,停止遍历所述待挂载文件夹,并发出报警信息。
4.如权利要求1所述的文件夹挂载方法,其特征在于,所述确定所述需求指令对应的目标需求数据的起始位置和结束位置,包括:
确定所述需求指令对应的目标需求数据的偏移位置和数据长度;
根据所述偏移位置和所述数据长度确定所述目标需求数据的起始位置和结束位置。
5.如权利要求1所述的文件夹挂载方法,其特征在于,在确定所述需求指令对应的目标需求数据的结束位置之后,包括:
若所述结束位置小于或等于预设的虚拟内存边界,则根据所述目录索引数据确定所述目标需求数据对应的目录数据块。
6.如权利要求1所述的文件夹挂载方法,其特征在于,所述将所述物理文件的数据块发送给所述预设服务器,包括:
若所述物理文件的数据块的字节长度小于预设长度,则对所述物理文件的数据块进行字节填充,直至填充后的物理文件的数据块的字节长度等于预设长度时,将所述物理文件的数据块发送给所述预设服务器。
7.如权利要求1所述的文件夹挂载方法,其特征在于,所述根据预设的虚拟内存映射数组中的各个物理文件的位置信息获取所述目标需求数据对应的物理文件,包括:
确定所述需求指令对应的目标需求数据的偏移位置和数据长度;
根据所述各个物理文件的位置信息和所述目标需求数据的偏移位置获取所述目标需求数据对应的初始物理文件;
根据所述偏移位置和所述数据长度确定所述目标需求数据的起始位置和结束位置;
若所述结束位置大于所述初始物理文件的结束位置,则依次获取所述初始物理文件之后的物理文件,直至所述结束位置小于或等于所述物理文件的结束位置时,停止获取所述物理文件。
8.如权利要求1所述的文件夹挂载方法,其特征在于,在将所述待挂载文件夹的目录索引数据发送给预设服务器之前,包括:
若所述待挂载文件夹包括至少一个文件或至少一个子文件夹,则生成虚拟根目录节点,所述虚拟根目录节点包括所述至少一个文件或至少一个子文件夹;
根据所述虚拟根目录节点生成目录索引数据。
9.一种文件夹挂载装置,其特征在于,包括:
挂载模块,用于获取待挂载文件夹,将所述待挂载文件夹的目录索引数据发送给预设服务器;
位置确定模块,用于获取所述预设服务器根据所述目录索引数据发送的需求指令,确定所述需求指令对应的目标需求数据的起始位置和结束位置;
文件获取模块,用于若所述结束位置大于预设的虚拟内存边界,则根据预设的虚拟内存映射数组中的各个物理文件的位置信息获取所述目标需求数据对应的物理文件;
发送模块,用于将所述物理文件的数据块发送给所述预设服务器。
10.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述的一种文件夹挂载方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111038676.6A CN113918519A (zh) | 2021-09-06 | 2021-09-06 | 一种文件夹挂载方法、装置及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111038676.6A CN113918519A (zh) | 2021-09-06 | 2021-09-06 | 一种文件夹挂载方法、装置及终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113918519A true CN113918519A (zh) | 2022-01-11 |
Family
ID=79233835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111038676.6A Pending CN113918519A (zh) | 2021-09-06 | 2021-09-06 | 一种文件夹挂载方法、装置及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113918519A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472291A (zh) * | 2023-12-27 | 2024-01-30 | 苏州元脑智能科技有限公司 | 数据块的校验方法和装置、存储介质及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853254A (zh) * | 2009-03-31 | 2010-10-06 | 国际商业机器公司 | 挂载文件或目录到本地或远程主机的方法和装置 |
US20110016466A1 (en) * | 2009-07-15 | 2011-01-20 | Aten International Co., Ltd. | Virtual media with folder-mount function |
CN103150402A (zh) * | 2013-03-27 | 2013-06-12 | 网宿科技股份有限公司 | 基于索引编码的虚拟文件系统及建立方法、访问方法 |
CN105302668A (zh) * | 2015-10-21 | 2016-02-03 | 上海爱数信息技术股份有限公司 | 一种优化对象存储系统中块设备数据访问性能的方法 |
CN111258958A (zh) * | 2020-01-10 | 2020-06-09 | 北京猎豹移动科技有限公司 | 一种数据获取方法、数据提供方法及装置 |
CN111475469A (zh) * | 2020-03-19 | 2020-07-31 | 中山大学 | Kubernetes用户态应用中基于虚拟文件系统的小文件存储优化系统 |
-
2021
- 2021-09-06 CN CN202111038676.6A patent/CN113918519A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853254A (zh) * | 2009-03-31 | 2010-10-06 | 国际商业机器公司 | 挂载文件或目录到本地或远程主机的方法和装置 |
US20110016466A1 (en) * | 2009-07-15 | 2011-01-20 | Aten International Co., Ltd. | Virtual media with folder-mount function |
CN103150402A (zh) * | 2013-03-27 | 2013-06-12 | 网宿科技股份有限公司 | 基于索引编码的虚拟文件系统及建立方法、访问方法 |
CN105302668A (zh) * | 2015-10-21 | 2016-02-03 | 上海爱数信息技术股份有限公司 | 一种优化对象存储系统中块设备数据访问性能的方法 |
CN111258958A (zh) * | 2020-01-10 | 2020-06-09 | 北京猎豹移动科技有限公司 | 一种数据获取方法、数据提供方法及装置 |
CN111475469A (zh) * | 2020-03-19 | 2020-07-31 | 中山大学 | Kubernetes用户态应用中基于虚拟文件系统的小文件存储优化系统 |
Non-Patent Citations (2)
Title |
---|
(美)EVERETT N. MCKAY,(美)MIKE WOODRING: "Windows程序调试", 31 May 2002, 中国电力出版社, pages: 180 - 181 * |
何宗键: "Windows CE嵌入式系统", 30 September 2006, 北京航空航天大学出版社, pages: 340 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472291A (zh) * | 2023-12-27 | 2024-01-30 | 苏州元脑智能科技有限公司 | 数据块的校验方法和装置、存储介质及电子设备 |
CN117472291B (zh) * | 2023-12-27 | 2024-03-22 | 苏州元脑智能科技有限公司 | 数据块的校验方法和装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3495981B1 (en) | Directory deletion method and device, and storage server | |
CN110019004B (zh) | 一种数据处理方法、装置及系统 | |
CN109634718B (zh) | 云平台创建镜像的方法及系统 | |
US9141364B2 (en) | Caching and analyzing images for faster and simpler cloud application deployment | |
JP2012089094A5 (zh) | ||
CN106817388B (zh) | 虚拟机、宿主机获取数据的方法、装置及访问数据的系统 | |
US20080177948A1 (en) | Method and apparatus for managing placement of data in a tiered storage system | |
CN103078898B (zh) | 文件系统、接口服务装置和数据存储服务提供方法 | |
CN110347651A (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
JP2022076475A (ja) | コンピュータ実装方法、コンピュータプログラム製品、およびシステム(コンテナイメージの作成および展開) | |
CN106598692A (zh) | 在逻辑卷中创建镜像文件、虚拟机启动方法及服务器 | |
US11029932B2 (en) | Hydration of applications | |
CN111249744A (zh) | 资源加载方法和装置、存储介质及电子装置 | |
CN110569218B (zh) | 一种ext文件系统离线修改方法、装置及存储介质 | |
CN115390991A (zh) | 虚拟机的导入导出方法、装置、设备及存储介质 | |
CN113918519A (zh) | 一种文件夹挂载方法、装置及终端设备 | |
CN111164570B (zh) | 用于创建用于与远程计算机一起使用的虚拟盘映像的系统和方法 | |
CN114070755B (zh) | 虚拟机网络流量确定方法、装置、电子设备和存储介质 | |
CN110688201A (zh) | 一种日志管理方法及相关设备 | |
CN107453950B (zh) | 一种信息处理方法及监控系统 | |
CN114168074A (zh) | 镜像存储方法、装置、存储介质以及电子设备 | |
CN114416656A (zh) | 一种远程操作文件夹的方法、设备及存储介质 | |
CN115525618A (zh) | 存储集群、数据存储方法、系统及存储介质 | |
CN105045629A (zh) | 一种无盘工作站设备启动方法及系统 | |
CN109799947A (zh) | 分布式存储方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |