CN113220644B - 一种文件处理方法、装置、设备及存储介质 - Google Patents
一种文件处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113220644B CN113220644B CN202110594284.1A CN202110594284A CN113220644B CN 113220644 B CN113220644 B CN 113220644B CN 202110594284 A CN202110594284 A CN 202110594284A CN 113220644 B CN113220644 B CN 113220644B
- Authority
- CN
- China
- Prior art keywords
- file
- uploaded
- target
- name
- subfile
- 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.)
- Active
Links
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/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
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)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供了一种文件处理方法、装置、设备及存储介质,其中,该方法包括:在接收到客户端发送的携带有待上传文件的上传请求时,确定用于存储待上传文件的第一目标文件节点服务器中的第一目标空间分片;根据待上传文件的大小和第一目标数量,使用第三哈希取余法确定各待上传子文件的名称;针对每一个待上传子文件,判断第一目标空间分片包括的磁盘中是否存在与该待上传子文件名称相同的第一目标子文件;若不存在第一目标子文件,将该待上传子文件存储在磁盘中;该方法采用多次少量上传的方式,有利于提高较大文件的上传效率以及应用服务器中较大文件完整上传的成功率。
Description
技术领域
本申请涉及文件数据的应用服务领域,具体而言,涉及一种文件处理方法、装置、设备及存储介质。
背景技术
随着网络服务的发展,在应用服务器中上传或下载文件数据的需求变得越来越重要,但在现今大数据的催生下,在应用服务器中上传或下载的文件数据内容不断增加,使得文件数据的占用内存越来越大,较大文件数据量也越来越多,应用服务器在实现较大文件数据上传或下载时的效率问题也越发突出。
在上传较大文件的过程中,较大文件在应用服务器中成功上传,主要体现为该较大文件在该应用服务器中成功存储,但较大文件占用内存较大,所以存储过程较慢,当在较大文件的存储过程中出现网络中断的问题时,该较大文件存储失败,客户端需要再将该较大文件发送到该应用服务器中重新存储,该方式消耗较多的时间,使得较大文件在应用服务器中的上传效率较低。
发明内容
有鉴于此,本申请实施例提供了一种文件处理方法、装置、设备及存储介质,有利于提高较大文件的上传效率以及应用服务器中较大文件完整上传的成功率。
主要包括以下几个方面:
第一方面,本申请实施例提供了一种文件处理方法,所述方法包括:
在接收到客户端发送的携带有待上传文件的上传请求时,根据所述待上传文件的名称和文件节点服务器的个数,使用第一哈希取余法确定用于存储所述待上传文件的第一目标文件节点服务器;
根据所述待上传文件的名称和所述第一目标文件节点服务器中包括的空间分片的个数,使用第二哈希取余法确定所述第一目标文件节点服务器中用于存储所述待上传文件的第一目标空间分片;
根据所述待上传文件的大小和第一目标数量,使用第三哈希取余法确定各待上传子文件的名称,其中,所述第一目标数量指的是将所述待上传文件在所述第一目标空间分片中按照预设大小进行分割后得到的所有待上传子文件的个数;
针对每一个所述待上传子文件,判断所述第一目标空间分片包括的磁盘中是否存在与该待上传子文件名称相同的第一目标子文件;
若不存在所述第一目标子文件,将该待上传子文件存储在所述磁盘中。
可选的,所述根据所述待上传文件的名称和文件节点服务器的个数,使用第一哈希取余法确定用于存储所述待上传文件的第一目标文件节点服务器,包括:
对所述待上传文件的名称所对应的字符串进行第一哈希运算,得到第一哈希值;
使用所述第一哈希值对所述文件节点服务器的个数取余,得到第一余数;
根据所述第一余数,确定为所述第一余数的数值预先匹配的文件节点服务器的第一标识,以将所述第一标识代表的文件节点服务器作为所述第一目标文件节点服务器。
可选的,所述根据所述待上传文件的大小和第一目标数量,使用第三哈希取余法确定各待上传子文件的名称,包括:
对用于表示所述待上传文件的大小的数值进行第二哈希运算,得到第二哈希值;
使用所述第二哈希值对所述待上传子文件的个数取余,得到第二余数;
针对每一个所述待上传子文件,对目标字符串和目标和值进行组合,以将组合后得到的字符串所对应的内容作为该待上传子文件的名称,其中,所述目标字符串为所述待上传文件的名称对应的字符串,所述目标和值为所述第二余数与目标数值的和值,所述目标数值用于表示:在对所述待上传文件进行切割时,得到该待上传子文件的次序。
可选的,所述方法还包括:
创建所述待上传文件的说明文档,其中,所述说明文档包括所述待上传文件的名称、所有所述待上传子文件的名称以及各所述待上传子文件在所述磁盘中的索引;
将所述说明文档存储在所述磁盘中。
第二方面,本申请实施例提供了一种文件处理方法,所述方法包括:
在接收到客户端发送的下载请求时,根据待下载文件的名称和文件节点服务器的个数,使用第四哈希取余法确定存储所述待下载文件的第二目标文件节点服务器,其中,所述下载请求携带有所述待下载文件的名称;
根据所述待下载文件的名称和所述第二目标文件节点服务器中包括的空间分片的个数,使用第五哈希取余法确定所述第二目标文件节点服务器中存储所述待下载文件的第二目标空间分片;
判断所述下载请求是否携带有待下载子文件的名称,其中,所述待下载子文件的名称是根据所述待下载文件的大小和第二目标数量,使用第六哈希取余法确定出的,所述第二目标数量指的是将所述待下载文件在所述第二目标空间分片中按照预设大小进行分割后得到的所有待下载子文件的个数;
若携带所述待下载子文件的名称,在所述第二目标空间分片的磁盘中下载与所述待下载子文件名称相同的第二目标子文件。
可选的,在所述使用第五哈希取余法确定所述第二目标文件节点服务器中存储所述待下载文件的第二目标空间分片后,所述方法还包括:
根据所述待下载文件的名称,在所述第二目标空间分片包括的磁盘中下载与所述待下载文件名称相同的说明文档。
第三方面,本申请实施例提供了一种文件处理装置,所述装置包括:
第一确定模块,用于在接收到客户端发送的携带有待上传文件的上传请求时,根据所述待上传文件的名称和文件节点服务器的个数,使用第一哈希取余法确定用于存储所述待上传文件的第一目标文件节点服务器;
第二确定模块,用于根据所述待上传文件的名称和所述第一目标文件节点服务器中包括的空间分片的个数,使用第二哈希取余法确定所述第一目标文件节点服务器中用于存储所述待上传文件的第一目标空间分片;
第三确定模块,用于根据所述待上传文件的大小和第一目标数量,使用第三哈希取余法确定各待上传子文件的名称,其中,所述第一目标数量指的是将所述待上传文件在所述第一目标空间分片中按照预设大小进行分割后得到的所有待上传子文件的个数;
第一判断模块,用于针对每一个所述待上传子文件,判断所述第一目标空间分片包括的磁盘中是否存在与该待上传子文件名称相同的第一目标子文件;
第一存储模块,用于若不存在所述第一目标子文件,将该待上传子文件存储在所述磁盘中。
可选的,所述第一确定模块的配置在用于根据所述待上传文件的名称和文件节点服务器的个数,使用第一哈希取余法确定用于存储所述待上传文件的第一目标文件节点服务器时,包括:
对所述待上传文件的名称所对应的字符串进行第一哈希运算,得到第一哈希值;
使用所述第一哈希值对所述文件节点服务器的个数取余,得到第一余数;
根据所述第一余数,确定为所述第一余数的数值预先匹配的文件节点服务器的第一标识,以将所述第一标识代表的文件节点服务器作为所述第一目标文件节点服务器。
可选的,所述第三确定模块的配置在用于根据所述待上传文件的大小和第一目标数量,使用第三哈希取余法确定各待上传子文件的名称时,包括:
对用于表示所述待上传文件的大小的数值进行第二哈希运算,得到第二哈希值;
使用所述第二哈希值对所述待上传子文件的个数取余,得到第二余数;
针对每一个所述待上传子文件,对目标字符串和目标和值进行组合,以将组合后得到的字符串所对应的内容作为该待上传子文件的名称,其中,所述目标字符串为所述待上传文件的名称对应的字符串,所述目标和值为所述第二余数与目标数值的和值,所述目标数值用于表示:在对所述待上传文件进行切割时,得到该待上传子文件的次序。
可选的,所述文件处理装置还包括:
创建模块,用于创建所述待上传文件的说明文档,其中,所述说明文档包括所述待上传文件的名称、所有所述待上传子文件的名称以及各所述待上传子文件在所述磁盘中的索引;
第二存储模块,用于将所述说明文档存储在所述磁盘中。
第四方面,本申请实施例提供了一种文件处理装置,所述装置包括:
第四确定模块,用于在接收到客户端发送的下载请求时,根据待下载文件的名称和文件节点服务器的个数,使用第四哈希取余法确定存储所述待下载文件的第二目标文件节点服务器,其中,所述下载请求携带有所述待下载文件的名称;
第五确定模块,用于根据所述待下载文件的名称和所述第二目标文件节点服务器中包括的空间分片的个数,使用第五哈希取余法确定所述第二目标文件节点服务器中存储所述待下载文件的第二目标空间分片;
第二判断模块,用于判断所述下载请求是否携带有待下载子文件的名称,其中,所述待下载子文件的名称是根据所述待下载文件的大小和第二目标数量,使用第六哈希取余法确定出的,所述第二目标数量指的是将所述待下载文件在所述第二目标空间分片中按照预设大小进行分割后得到的所有待下载子文件的个数;
第一下载模块,用于若携带所述待下载子文件的名称,在所述第二目标空间分片的磁盘中下载与所述待下载子文件名称相同的第二目标子文件。
可选的,在所述第五确实模块的配置用于使用第五哈希取余法确定所述第二目标文件节点服务器中存储所述待下载文件的第二目标空间分片后,所述文件处理装置还包括:
第二下载模块,用于根据所述待下载文件的名称,在所述第二目标空间分片包括的磁盘中下载与所述待下载文件名称相同的说明文档。
第五方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面和上述第二方面中任一所述的文件处理方法的步骤。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面和上述第二方面中任一所述的文件处理方法的步骤。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请实施例提供的文件处理方法,在接收到客户端发送的上传请求时,首先确定该待上传文件的存储位置,即:第一目标空间分片,在确定出第一目标空间分片后,将该待上传文件在第一目标空间分片中按照预设大小进行分割,得到至少一个待上传子文件,为了避免在续传待上传文件的过程中重复存储待上传子文件,针对每一个待上传子文件,在存储该待上传子文件前确定该待上传子文件的名称,并根据该名称判断第一目标空间分片的磁盘中是否存储与该待上传子文件名称相同的第一目标子文件,若不存在第一目标子文件,说明磁盘中并没有存储该待上传子文件,所以需要将该待上传文件存储在该磁盘中;在该过程中,当待上传文件为较大文件时,先确定整体待上传文件的存储位置,再在存储位置处对该待上传文件进行分割,并将分割后得到的各待上传子文件分别存储,在某个待上传子文件存储失败的情况下,客户端可以续传待上传文件,并对未存储的待上传子文件进行存储,以实现待上传文件的完整上传,该方法采用多次少量上传的方式,有利于提高较大文件的上传效率以及应用服务器中较大文件完整上传的成功率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例一所提供的一种文件处理方法的流程图;
图2示出了本申请实施例二所提供的另一种文件处理方法的流程图;
图3示出了本申请实施例一所提供的一种文件处理***的结构示意图;
图4示出了本申请实施例二所提供的另一种文件处理***的结构示意图;
图5示出了本申请实施例三所提供的一种文件处理装置的结构示意图;
图6示出了本申请实施例四所提供的另一种文件处理装置的结构示意图;
图7示出了本申请实施例五所提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种文件处理方法、装置、设备及存储介质,下面通过实施例进行描述。
实施例一
图1示出了本申请实施例一所提供的一种文件处理方法的流程图,如图1所示,该文件处理方法包括以下步骤:
步骤S101:在接收到客户端发送的携带有待上传文件的上传请求时,根据所述待上传文件的名称和文件节点服务器的个数,使用第一哈希取余法确定用于存储所述待上传文件的第一目标文件节点服务器。
具体的,上述文件处理方法应用于后台的应用服务器,当客户端需要将文件上传至应用服务器中存储时,向主分片服务器发送用于表示需要上传文件的上传请求,同时使该上传请求携带待上传文件,当主分片服务器接收到携带有待上传文件的上传请求时,确定接收到的该待上传文件的名称以及该主分片服务器中存储的有关文件节点服务器的个数的元数据信息,其中,文件节点服务器的个数指的是文件服务器集群中包括的文件节点服务器的个数,然后根据确定出的待上传文件的名称以及文件节点服务器的个数,使用第一哈希取余法在各文件节点服务器中确定用于存储该待上传文件的第一目标文件节点服务器,该方法采用了文件服务器集群,在某个文件节点服务器出现问题时,可以在文件服务器集群中的其他文件节点服务器中选择第一目标文件节点服务器,该方式有利于提高应用服务器的稳定性。
需要说明的是,待上传文件可以是任意大小的数据文件;待上传文件的名称也可以根据实际情况进行设定,比如待上传文件的名称为“A”或“我的文件”,有关待上传文件的大小和待上传文件的名称的说明,在此不做具体限定。
步骤S102:根据所述待上传文件的名称和所述第一目标文件节点服务器中包括的空间分片的个数,使用第二哈希取余法确定所述第一目标文件节点服务器中用于存储所述待上传文件的第一目标空间分片。
具体的,在确定出第一目标文件节点服务器后,第一目标文件节点服务器中包括至少一个可以存储该待上传文件的存储区域,即:空间分片,所以可以将该待上传文件发送至第一目标文件节点服务器中进行存储,在第一目标文件节点服务器存储该待上传文件的过程中,该第一目标文件节点服务器根据该待上传文件的名称以及自身包括的空间分片的个数,使用第二哈希取余法在包括的各空间分片中确定用于存储该待上传文件的第一目标空间分片。
步骤S103:根据所述待上传文件的大小和第一目标数量,使用第三哈希取余法确定各待上传子文件的名称,其中,所述第一目标数量指的是将所述待上传文件在所述第一目标空间分片中按照预设大小进行分割后得到的所有待上传子文件的个数。
步骤S104:针对每一个所述待上传子文件,判断所述第一目标空间分片包括的磁盘中是否存在与该待上传子文件名称相同的第一目标子文件。
步骤S105:若不存在所述第一目标子文件,将该待上传子文件存储在所述磁盘中。
具体的,最终存储待上传文件的位置为第一目标空间分片中包括的磁盘,所以在确定出第一目标空间分片后,将该待上传文件发送至第一目标空间分片中进行存储,在第一目标空间分片对该待上传文件进行存储的过程中,为了增加该待上传文件的存储效率,将该待上传文件在该第一目标空间分片中按照预设大小进行切割,得到至少一个待上传子文件,在得到各待上传子文件后,需要对各待上传子文件进行存储,但文件上传包括首次上传与续传,在续传过程中存在磁盘中已有部分待上传子文件的情况,为了避免重复存储的问题,需要根据待上传子文件的名称确定磁盘中是否已存储该待上传子文件,所以需要在存储前确定各待上传子文件的名称,确定待上传子文件的名称的方法如下:
首先在获取到待上传文件后,确定该待上传文件的大小;然后在切割该待上传文件后,确定切割出的待上传子文件的数量,即:第一目标数量,最后根据该待上传文件的大小以及该第一目标数量,使用第三哈希取余法确定各待上传子文件的名称。
针对每一个待上传子文件,在确定出该待上传子文件的名称后,根据该待上传子文件的名称,判断第一目标空间分片包括的磁盘中是否存在与该待上传子文件名称相同的第一目标子文件,若不存在该第一目标子文件,说明磁盘中并没有存储该待上传子文件,所以需要将该待上传子文件存储在该磁盘中。
需要说明的是,上述预设大小可以根据人为经验进行设定,比如人为根据经验判断100MB的文件存储效率最高,就可以将该预设大小设定为100MB,有关预设大小的说明,在此不做具体限定。
需要再次说明的是,在对待上传文件按照预设大小进行切割的过程中,若该待上传文件的大小小于或者等于上述预设大小,则不需要对该待上传文件进行切割,若该待上传文件的大小大于上述预设大小,按照预设大小对该待上传文件进行切割,若最后切割出的待上传子文件的大小小于预设大小,将该待上传子文件作为一个完整的子文件,比如待上传子文件的大小为356MB,预设大小为100MB,则可以切割出四个待上传子文件,这四个待上传子文件的大小依次为:100MB、100MB、100MB、56MB。
需要再次说明的是,关于本申请实施例提供的文件处理方法所基于的开发语言与开发框架,可以根据实际情况进行设定,比如以Java语言为开发语言,以斯普瑞布特SpringBoot为开发框架,有关本申请文件处理方法所基于的开发语言与开发框架的说明,在此不做具体限定。
举例说明,图3示出了本申请实施例一所提供的一种文件处理***的结构示意图,如图3所示,客户端与主分片服务器连接,主分片服务器分别与文件节点服务器1、文件节点服务器2和文件节点服务器3连接,其中,文件节点服务器1包括两个空间分片,分别为空间分片1和空间分片2,文件节点服务器2包括两个空间分片,分别为空间分片1和空间分片2,文件节点服务器3包括三个空间分片,分别为空间分片1、空间分片2和空间分片3,上述每一个空间分片中均包括一个用于存储文件的磁盘。
图3中的箭头指向用于表示文件的传输方向,其中,虚线箭头用于表示待上传文件的传输方向,该文件处理***执行上述文件处理方法,该文件处理方法具体包括:客户端向主分片服务器发送携带有待上传文件的上传请求,主分片服务器中预存着有关与其连接的文件节点服务器的个数的信息,比如:共连接3个文件节点服务器,分别为文件节点服务器1、文件节点服务器2和文件节点服务器3;在主分片服务器接收到上传请求时,根据接收到的待上传文件的名称以及预存的文件节点服务器的个数,使用第一哈希取余法在各文件节点服务器中确定第一目标文件节点服务器,比如:使用第一哈希算法确定文件节点服务器1为第一目标文件节点服务器,在确定出第一目标文件节点服务器后,将待上传文件发送到该第一目标文件节点服务器(即:文件节点服务器1)中,第一目标文件节点服务器在接收到待上传文件后,根据待上传文件的名称和包括的空间分片的个数,使用第二哈希算法确定用于存储待上传文件的第一目标空间分片,比如:文件节点服务器1中包括空间分片1和空间分片2,使用第二哈希算法确定空间分片1为第一目标空间分片;在确定出第一目标空间分片后,将待上传文件发送到第一目标空间分片(即:空间分片1)中,第一目标空间分片在接收到待上传文件后,将该待上传文件存储在其包括的磁盘中。
图1提供的文件处理方法,在接收到客户端发送的上传请求时,首先确定该待上传文件的存储位置,即:第一目标空间分片,在确定出第一目标空间分片后,将该待上传文件在第一目标空间分片中按照预设大小进行分割,得到至少一个待上传子文件,为了避免在续传待上传文件的过程中重复存储待上传子文件,针对每一个待上传子文件,在存储该待上传子文件前确定该待上传子文件的名称,并根据该名称判断第一目标空间分片的磁盘中是否存储与该待上传子文件名称相同的第一目标子文件,若不存在第一目标子文件,说明磁盘中并没有存储该待上传子文件,所以需要将该待上传文件存储在该磁盘中;在该过程中,当待上传文件为较大文件时,先确定整体待上传文件的存储位置,再在存储位置处对该待上传文件进行分割,并将分割后得到的各待上传子文件分别存储,在某个待上传子文件存储失败的情况下,客户端可以续传待上传文件,并对未存储的待上传子文件进行存储,以实现待上传文件的完整上传,该方法采用多次少量上传的方式,有利于提高较大文件的上传效率以及应用服务器中较大文件完整上传的成功率。
在一种可行的实施方案中,若上述磁盘中存在第一目标子文件,说明该磁盘中已经存储了该待上传子文件,不需要再重复上传该待上传子文件。
在一种可行的实施方案中,在将待上传子文件存储在磁盘后,为该待上传子文件在磁盘中的位置分配索引。
在一种可行的实施方案中,在所有待上传子文件存储结束后,将该磁盘中存储的所有子文件进行压缩,得到第一压缩包,其中,该第一压缩包的名称与该待上传文件的名称相同。
在一种可行的实施方案中,在执行上述步骤S101时,可以通过以下步骤实现:
步骤S201:对所述待上传文件的名称所对应的字符串进行第一哈希运算,得到第一哈希值。
步骤S202:使用所述第一哈希值对所述文件节点服务器的个数取余,得到第一余数。
步骤S203:根据所述第一余数,确定为所述第一余数的数值预先匹配的文件节点服务器的第一标识,以将所述第一标识代表的文件节点服务器作为所述第一目标文件节点服务器。
具体的,在主分片服务器接收到待上传文件后,确定该待上传文件的名称,然后对该待上传文件的名称所对应的字符串进行第一哈希运算,即:将该待上传文件的名称所对应的字符串作为哈希函数的输入数据,得到第一哈希值;在得到第一哈希值后,使用该第一哈希值对文件节点服务器的个数取余,即:使用第一哈希值除以文件节点服务器的个数,将得到的余数作为第一余数;应用服务器为有可能得到的各余数的数值预先分匹配对应的文件节点服务器的第一标识,在得到第一余数后,就可以根据该第一余数的数值,确定为该第一余数的数值预先匹配文件节点服务器的第一标识,以将该第一标识代表的文件节点服务器作为用于存储该待上传文件的第一目标文件节点服务器。
需要说明的是,待上传文件的名称所对应的字符串指的是代码层面上的字符串,比如代码:hash(“我叫文件”),在该代码中,hash()指的是哈希函数,“我叫文件”为待上传文件的名称对应的字符串,其中,待上传文件的名称为我叫文件。
举例说明,文件节点服务器的个数为3,取余运算中有可能得到的余数分别为0、1、2,为余数1匹配文件节点服务器1的标识,为余数2匹配文件节点服务器2的标识,为余数0匹配文件节点服务器3的标识,对待上传文件的名称所对应的字符串进行第一哈希运算,假如得到的第一哈希值为5,使用第一哈希值对文件服务器的个数取余,得到第一余数2,该第一余数2对应的第一标识为文件节点服务器2的标识,则该文件节点服务器2为第一目标文件节点服务器。
在一种可行的实施方案中,在执行上述步骤S102时,可以通过以下方式实现:
对待上传文件的名称所对应的字符串进行第三哈希运算,得到第三哈希值;使用第三哈希值对第一目标文件节点服务器中包括的空间分片的个数取余,得到第三余数;根据第三余数,确定为该第三余数的数值预先匹配的第一目标文件节点服务器中包括的空间分片的第二标识,以将该第二标识代表的空间分片作为第一目标文件节点服务器中用于存储该待上传文件的第一目标空间分片。
具体的,关于上述确定第一目标空间分片的实现方式的说明,参照上述对步骤S201至步骤S203中确定第一目标文件服务器的方式的说明,在此不再进行赘述。
需要说明的是,上述第一哈希值与上述第三哈希值可以相同,也可以不相同,在此不做具体限定。
在一种可行的实施方案中,在执行上述步骤S103时,可以通过以下步骤实现:
步骤S301:对用于表示所述待上传文件的大小的数值进行第二哈希运算,得到第二哈希值。
步骤S302:使用所述第二哈希值对所述待上传子文件的个数取余,得到第二余数。
步骤S303:针对每一个所述待上传子文件,对目标字符串和目标和值进行组合,以将组合后得到的字符串所对应的内容作为该待上传子文件的名称,其中,所述目标字符串为所述待上传文件的名称对应的字符串,所述目标和值为所述第二余数与目标数值的和值,所述目标数值用于表示:在对所述待上传文件进行切割时,得到该待上传子文件的次序。
具体的,在第一目标文件节点服务器接收到待上传文件时,确定该待上传文件的大小,在确定该待上传文件的大小后,对用于表示该待上传文件的大小的数值进行第二哈希运算,即:将用于表示该待上传文件的大小的数值作为哈希函数的输入数据,得到第二哈希值,在得到第二哈希值后,确定将该待上传文件进行分割后得到的所有待上传子文件的个数,然后使用第二哈希值对待上传子文件的个数取余,得到第二余数,在得到第二余数后,对每一个待上传子文件进行命名,命名方式如下:
针对每一个待上传子文件,确定在切割待上传文件时,得到该待上传子文件的次序,然后根据用于表示该次序的目标数值,计算该目标数值与第二余数的和值,得到目标和值,在得到目标和值后,将切割的待上传文件的名称所对应的目标字符串与该目标和值组合,以将组合得到的字符串所对应的内容作为该待上传子文件的名称,其中,字符串对应的内容指的是:在代码层面上,用于表示字符串的双引号中的内容,例如在字符串“文件3”中,双引号中的文件3为该字符串对应的内容。
举例说明,待上传文件的名称为A,该名称A对应的目标字符串为“A”,该待上传文件的大小为26MB,使用预设大小10MB对该待上传文件进行切割,依次得到三个待上传子文件,分别为待上传子文件1、待上传子文件2和待上传子文件3,针对该待上传文件,用于表示该待上传文件的大小的数值为26,对该数值进行第二哈希运算,假设得到第二哈希值26,使用第二哈希值26对待上传子文件的个数3取余,得到第二余数2,针对待上传子文件1,在对该待上传文件进行切割时,得到该待上传子文件的次序为0,则该待上传子文件对应的目标数值为0,则计算得到的目标和值为0+2=2,将目标字符串和目标和值进行组合后得到字符串为“A2”,该组合后得到的字符串对应的内容为A2,则该待上传子文件1的名称为A2。
在一种可行的实施方案中,上述文件处理方法还包括:
创建所述待上传文件的说明文档,其中,所述说明文档包括所述待上传文件的名称、所有所述待上传子文件的名称以及各所述待上传子文件在所述磁盘中的索引。
将所述说明文档存储在所述磁盘中。
具体的,在将各待上传子文件存入磁盘后,创建待上传文件的说明文档,该说明文档包括待上传文件的名称、切割该上传文件后得到的所有待上传子文件的数量、各待上传子文件的名称、各待上传子文件在所述磁盘中的索引;在创建说明文档后,将该说明文档存储在磁盘中,以供相关人员进行下载,其中,该说明文档的名称与该待上传文件的名称相同,在该说明文档中,各待上传子文件在磁盘中的索引能够使服务器更快的找到该索引对应的子文件,避免服务器通过遍历磁盘中存储的所有子文件来找到所需的子文件。
在一种可行的实施方案中,在将各待上传子文件存入磁盘中,若存在因网络中断问题造成的部分待上传子文件未存储成功的情况,创建目标文档,并将该目标文档发送至客户端,以使客户端根据该目标文档发起续传,其中,该目标文档包括在该待上传文件中未成功存储的至少一个待上传子文件的名称,和/或成功存储的至少一个待上传子文件的名称。
实施例二
图2示出了本申请实施例二所提供的另一种文件处理方法的流程图,如图2所示,该文件处理方法包括以下步骤:
步骤S401:在接收到客户端发送的下载请求时,根据待下载文件的名称和文件节点服务器的个数,使用第四哈希取余法确定存储所述待下载文件的第二目标文件节点服务器,其中,所述下载请求携带有所述待下载文件的名称。
步骤S402:根据所述待下载文件的名称和所述第二目标文件节点服务器中包括的空间分片的个数,使用第五哈希取余法确定所述第二目标文件节点服务器中存储所述待下载文件的第二目标空间分片。
具体的,针对步骤S401和步骤S402的具体说明,参照上述对步骤S101和步骤S102的说明,在此不再进行赘述。
需要说明的是,待下载文件的名称与待上传文件的名称可以相同,也可以不同,若待下载文件的名称与待上传文件的名称相同,则说明这两个文件是同一文件,则确定出的第一目标文件节点服务器与第二目标文件节点服务器是同一节点服务器,确定出的第一目标空间分片与第二目标空间分片是同一空间分片,反之,若待下载文件的名称与待上传文件的名称不同,则说明这两个文件不是同一文件,则确定出的第一目标文件节点服务器与第二目标节点服务器不是同一节点服务器,确定出的第一目标空间分片与第二目标空间分片也不是同一空间分片。
步骤S403:判断所述下载请求是否携带有待下载子文件的名称,其中,所述待下载子文件的名称是根据所述待下载文件的大小和第二目标数量,使用第六哈希取余法确定出的,所述第二目标数量指的是将所述待下载文件在所述第二目标空间分片中按照预设大小进行分割后得到的所有待下载子文件的个数。
步骤S404:若携带所述待下载子文件的名称,在所述第二目标空间分片的磁盘中下载与所述待下载子文件名称相同的第二目标子文件。
具体的,下载过程包括第一次下载过程和后续下载过程,第一次下载过程需要下载完整的待下载文件,所以下载请求只携带待下载文件的名称,若第一次下载后得到的待下载文件不完整,则需要继续下载缺少的待下载子文件,所以在后续下载过程中,下载请求上携带有需要下载的待下载子文件的名称。
若下载请求上携带有待下载子文件的名称,说明需要下载的文件为该名称对应的待下载子文件,所以在存储待下载文件的第二目标空间分片的磁盘中下载与该待下载子文件名称相同的第二目标子文件。
其中,关于待下载子文件的名称的确定方法的说明,参照上述对步骤S103中待上传子文件名称的确定方法的说明,在此不再进行赘述。
需要说明的是,对于待下载子文件的下载操作,在第二目标空间分片的磁盘中获取到该待下载子文件后,将该待下载子文件发送到客户端,已完成下载操作。
需要再次说明的是,若下载请求上未携带有待下载子文件的名称,说明需要下载的文件为完整的待下载文件,在所述第二目标空间分片的磁盘中下载与该待下载子文件名称相同的文件,其中,该文件的形式可以为压缩包形式,在此不做具体限定。
举例说明,图4示出了本申请实施例二所提供的另一种文件处理***的结构示意图,如图4所示,客户端与主分片服务器连接,主分片服务器分别与文件节点服务器1、文件节点服务器2和文件节点服务器3连接,其中,文件节点服务器1包括两个空间分片,分别为空间分片1和空间分片2,文件节点服务器2包括两个空间分片,分别为空间分片1和空间分片2,文件节点服务器3包括三个空间分片,分别为空间分片1、空间分片2和空间分片3,上述每一个空间分片中均包括一个用于存储文件的磁盘。
图4中的箭头指向用于表示文件的传输方向,该文件处理***执行上述文件处理方法,该文件处理方法具体包括:客户端向主分片服务器发送携带有待下载文件的名称和待下载子文件的名称的下载请求,主分片服务器中预存着有关与其连接的文件节点服务器的个数的信息,比如:共连接3个文件节点服务器,分别为文件节点服务器1、文件节点服务器2和文件节点服务器3;在主分片服务器接收到下载请求时,根据接收到的待下载文件的名称以及预存的文件节点服务器的个数,使用第四哈希取余法在各文件节点服务器中确定第二目标文件节点服务器,比如:使用第四哈希算法确定文件节点服务器1为第二目标文件节点服务器,在确定出第二目标文件节点服务器后,将待下载文件的名称和待下载子文件的名称发送到该第二目标文件节点服务器(即:文件节点服务器1)中,第二目标文件节点服务器在接收到待下载文件的名称和待下载子文件的名称后,根据待下载文件的名称和包括的空间分片的个数,使用第五哈希算法确定存储待下载文件的第二目标空间分片,比如:文件节点服务器1中包括空间分片1和空间分片2,使用第五哈希算法确定空间分片1为第二目标空间分片;在确定出第二目标空间分片后,将待下载文件的名称和待下载子文件的名称发送到第二目标空间分片(即:空间分片1)中,第二目标空间分片在接收到待下载文件的名称和待下载子文件的名称后,在该第二目标空间分片的磁盘中获取与待下载子文件名称相同的第二目标子文件,然后将该第二目标子文件发送给文件节点服务器1,以使文件节点服务器1将该第二目标子文件发送给主分片服务器,通过主分片服务器将该第二目标子文件发送到客户端上,完成待下载子文件的下载过程。
图2提供的文件处理方法中,在接收到客户端发送的携带有待下载文件的名称的下载请求时,先确定该待下载文件的存储位置,即:第二目标空间分片,在确定存储位置后,通过判断该下载请求上是否携带有待下载子文件的名称,来判断该下载过程是第一次下载还是续载过程,若下载请求上携带所述待下载子文件的名称,说明该下载过程是续载过程,需要下载的文件为该待下载子文件,此时只需在第二目标空间分片的磁盘中下载与该待下载子文件名称相同的第二目标子文件即可,即:仅下载待下载子文件即可;而现有技术中,在下载较大文件的过程中,较大文件占用内存较大,所以存储过程也较慢,当在较大文件的下载过程中出现网络中断的问题时,该较大文件下载失败,客户端需要删除未下载成功的较大文件,并向应用服务器发送下载请求重新下载该较大文件,该方式也会消耗较多的时间,使得较大文件在应用服务器中的下载效率较低;与现有技术相比,本申请提供的文件处理方法,当待下载文件为较大文件时,该方法可以在客户端第一次下载的待下载文件不完整的情况下,在应用服务器中进行续载,续载过程中可以只下载缺少的待下载子文件,该方法采用多次少量下载的方式,在保证待下载文件完整下载的情况下,有利于提高较大文件的下载效率和较大文件完整下载的成功率。
在一种可行的实施方案中,在执行步骤S401时,可以通过以下方式实现:对待下载文件的名称所对应的字符串进行第四哈希运算,得到第四哈希值;使用第四哈希值对文件节点服务器的个数取余,得到第四余数;根据第四余数,确定为该第四余数的数值预先匹配的文件节点服务器的第三标识,以将第三标识代表的文件节点服务器作为第二目标文件节点服务器。
在一种可行的实施方案中,在执行步骤S402时,可以通过以下方式实现:对待下载文件的名称所对应的字符串进行第五哈希运算,得到第五哈希值;使用第五哈希值对第二目标文件节点服务器中包括的空间分片的个数取余,得到第五余数;根据第五余数,确定为该第五余数的数值预先匹配的第二目标文件节点服务器中包括的空间分片的第四标识,以将该第四标识代表的空间分片作为第二目标文件节点服务器中用于存储该待下载文件的第二目标空间分片。
在一种可行的实施方案中,在执行上述步骤S402后,该文件处理方法还包括:
根据所述待下载文件的名称,在所述第二目标空间分片包括的磁盘中下载与所述待下载文件名称相同的说明文档。
具体的,说明文档包括待下载文件的名称、所有待下载子文件的名称以及各待下载子文件在磁盘中的索引,有关与待下载文件名称相同的说明文档的具体说明,参照上述对待上传文件的说明文档的说明,在此不再进行赘述。
客户端在下载该说明文档后,可以根据该说明文档以及已下载的待下载文件中包括的待下载子文件,判断该待下载文件是否为完整的文件,若不是完整的文件,将缺少的待下载子文件的名称与待下载文件的名称发送到应用服务器中,继续进行缺少的待下载子文件的下载,若为完整的文件,则将各待下载子文件进行合成,得到完整的待下载文件。
实施例三
图5示出了本申请实施例三所提供的一种文件处理装置的结构示意图,如图5所示,上述文件处理装置包括:
第一确定模块501,用于在接收到客户端发送的携带有待上传文件的上传请求时,根据所述待上传文件的名称和文件节点服务器的个数,使用第一哈希取余法确定用于存储所述待上传文件的第一目标文件节点服务器;
第二确定模块502,用于根据所述待上传文件的名称和所述第一目标文件节点服务器中包括的空间分片的个数,使用第二哈希取余法确定所述第一目标文件节点服务器中用于存储所述待上传文件的第一目标空间分片;
第三确定模块503,用于根据所述待上传文件的大小和第一目标数量,使用第三哈希取余法确定各待上传子文件的名称,其中,所述第一目标数量指的是将所述待上传文件在所述第一目标空间分片中按照预设大小进行分割后得到的所有待上传子文件的个数;
第一判断模块504,用于针对每一个所述待上传子文件,判断所述第一目标空间分片包括的磁盘中是否存在与该待上传子文件名称相同的第一目标子文件;
第一存储模块505,用于若不存在所述第一目标子文件,将该待上传子文件存储在所述磁盘中。
在一种可行的实施方案中,所述第一确定模块501的配置在用于根据所述待上传文件的名称和文件节点服务器的个数,使用第一哈希取余法确定用于存储所述待上传文件的第一目标文件节点服务器时,包括:
对所述待上传文件的名称所对应的字符串进行第一哈希运算,得到第一哈希值;
使用所述第一哈希值对所述文件节点服务器的个数取余,得到第一余数;
根据所述第一余数,确定为所述第一余数的数值预先匹配的文件节点服务器的第一标识,以将所述第一标识代表的文件节点服务器作为所述第一目标文件节点服务器。
在一种可行的实施方案中,所述第三确定模块503的配置在用于根据所述待上传文件的大小和第一目标数量,使用第三哈希取余法确定各待上传子文件的名称时,包括:
对用于表示所述待上传文件的大小的数值进行第二哈希运算,得到第二哈希值;
使用所述第二哈希值对所述待上传子文件的个数取余,得到第二余数;
针对每一个所述待上传子文件,对目标字符串和目标和值进行组合,以将组合后得到的字符串所对应的内容作为该待上传子文件的名称,其中,所述目标字符串为所述待上传文件的名称对应的字符串,所述目标和值为所述第二余数与目标数值的和值,所述目标数值用于表示:在对所述待上传文件进行切割时,得到该待上传子文件的次序。
在一种可行的实施方案中,所述文件处理装置还包括:
创建模块,用于创建所述待上传文件的说明文档,其中,所述说明文档包括所述待上传文件的名称、所有所述待上传子文件的名称以及各所述待上传子文件在所述磁盘中的索引;
第二存储模块,用于将所述说明文档存储在所述磁盘中。
实施例四
图6示出了本申请实施例四所提供的另一种文件处理装置的结构示意图,如图6所示,上述文件处理装置包括:
第四确定模块601,用于在接收到客户端发送的下载请求时,根据待下载文件的名称和文件节点服务器的个数,使用第四哈希取余法确定存储所述待下载文件的第二目标文件节点服务器,其中,所述下载请求携带有所述待下载文件的名称;
第五确定模块602,用于根据所述待下载文件的名称和所述第二目标文件节点服务器中包括的空间分片的个数,使用第五哈希取余法确定所述第二目标文件节点服务器中存储所述待下载文件的第二目标空间分片;
第二判断模块603,用于判断所述下载请求是否携带有待下载子文件的名称,其中,所述待下载子文件的名称是根据所述待下载文件的大小和第二目标数量,使用第六哈希取余法确定出的,所述第二目标数量指的是将所述待下载文件在所述第二目标空间分片中按照预设大小进行分割后得到的所有待下载子文件的个数;
第一下载模块604,用于若携带所述待下载子文件的名称,在所述第二目标空间分片的磁盘中下载与所述待下载子文件名称相同的第二目标子文件。
在一种可行的实施方案中,在所述第五确实模块的配置用于使用第五哈希取余法确定所述第二目标文件节点服务器中存储所述待下载文件的第二目标空间分片后,所述文件处理装置还包括:
第二下载模块,用于根据所述待下载文件的名称,在所述第二目标空间分片包括的磁盘中下载与所述待下载文件名称相同的说明文档。
本申请实施例所提供的装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的***、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
本申请实施例提供的文件处理方法,在接收到客户端发送的上传请求时,首先确定该待上传文件的存储位置,即:第一目标空间分片,在确定出第一目标空间分片后,将该待上传文件在第一目标空间分片中按照预设大小进行分割,得到至少一个待上传子文件,为了避免在续传待上传文件的过程中重复存储待上传子文件,针对每一个待上传子文件,在存储该待上传子文件前确定该待上传子文件的名称,并根据该名称判断第一目标空间分片的磁盘中是否存储与该待上传子文件名称相同的第一目标子文件,若不存在第一目标子文件,说明磁盘中并没有存储该待上传子文件,所以需要将该待上传文件存储在该磁盘中;在该过程中,当待上传文件为较大文件时,先确定整体待上传文件的存储位置,再在存储位置处对该待上传文件进行分割,并将分割后得到的各待上传子文件分别存储,在某个待上传子文件存储失败的情况下,客户端可以续传待上传文件,并对未存储的待上传子文件进行存储,以实现待上传文件的完整上传,该方法采用多次少量上传的方式,有利于提高较大文件的上传效率以及应用服务器中较大文件完整上传的成功率。
实施例五
本申请实施例还提供了一种计算机设备700,图7示出了本申请实施例五所提供的一种计算机设备的结构示意图,如图7所示,该设备包括存储器701、处理器702及存储在该存储器701上并可在该处理器702上运行的计算机程序,其中,上述处理器702执行上述计算机程序时实现上述文件处理方法。
具体地,上述存储器701和处理器702能够为通用的存储器和处理器,这里不做具体限定,当处理器702运行存储器701存储的计算机程序时,能够执行上述文件处理方法,解决了现有技术中较大文件在应用服务器中的上传效率低的问题。
实施例六
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述文件处理方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述文件处理方法,解决了现有技术中较大文件在应用服务器中的上传效率低的问题。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种文件处理方法,其特征在于,所述方法包括:
在接收到客户端发送的携带有待上传文件的上传请求时,根据所述待上传文件的名称和文件节点服务器的个数,使用第一哈希取余法确定用于存储所述待上传文件的第一目标文件节点服务器;
根据所述待上传文件的名称和所述第一目标文件节点服务器中包括的空间分片的个数,使用第二哈希取余法确定所述第一目标文件节点服务器中用于存储所述待上传文件的第一目标空间分片;
根据所述待上传文件的大小和第一目标数量,使用第三哈希取余法确定各待上传子文件的名称,其中,所述第一目标数量指的是将所述待上传文件在所述第一目标空间分片中按照预设大小进行分割后得到的所有待上传子文件的个数;
针对每一个所述待上传子文件,判断所述第一目标空间分片包括的磁盘中是否存在与该待上传子文件名称相同的第一目标子文件;
若不存在所述第一目标子文件,将该待上传子文件存储在所述磁盘中;
所述根据所述待上传文件的大小和第一目标数量,使用第三哈希取余法确定各待上传子文件的名称,包括:
对用于表示所述待上传文件的大小的数值进行第二哈希运算,得到第二哈希值;
使用所述第二哈希值对所述待上传子文件的个数取余,得到第二余数;
针对每一个所述待上传子文件,对目标字符串和目标和值进行组合,以将组合后得到的字符串所对应的内容作为该待上传子文件的名称,其中,所述目标字符串为所述待上传文件的名称对应的字符串,所述目标和值为所述第二余数与目标数值的和值,所述目标数值用于表示:在对所述待上传文件进行切割时,得到该待上传子文件的次序。
2.如权利要求1所述的方法,其特征在于,所述根据所述待上传文件的名称和文件节点服务器的个数,使用第一哈希取余法确定用于存储所述待上传文件的第一目标文件节点服务器,包括:
对所述待上传文件的名称所对应的字符串进行第一哈希运算,得到第一哈希值;
使用所述第一哈希值对所述文件节点服务器的个数取余,得到第一余数;
根据所述第一余数,确定为所述第一余数的数值预先匹配的文件节点服务器的第一标识,以将所述第一标识代表的文件节点服务器作为所述第一目标文件节点服务器。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
创建所述待上传文件的说明文档,其中,所述说明文档包括所述待上传文件的名称、所有所述待上传子文件的名称以及各所述待上传子文件在所述磁盘中的索引;
将所述说明文档存储在所述磁盘中。
4.一种文件处理方法,其特征在于,所述方法包括:
在接收到客户端发送的下载请求时,根据待下载文件的名称和文件节点服务器的个数,使用第四哈希取余法确定存储所述待下载文件的第二目标文件节点服务器,其中,所述下载请求携带有所述待下载文件的名称;
根据所述待下载文件的名称和所述第二目标文件节点服务器中包括的空间分片的个数,使用第五哈希取余法确定所述第二目标文件节点服务器中存储所述待下载文件的第二目标空间分片;
判断所述下载请求是否携带有待下载子文件的名称,其中,所述待下载子文件的名称是根据所述待下载文件的大小和第二目标数量,使用第六哈希取余法确定出的,所述第二目标数量指的是将所述待下载文件在所述第二目标空间分片中按照预设大小进行分割后得到的所有待下载子文件的个数;
若携带所述待下载子文件的名称,在所述第二目标空间分片的磁盘中下载与所述待下载子文件名称相同的第二目标子文件。
5.如权利要求4所述的方法,其特征在于,在所述使用第五哈希取余法确定所述第二目标文件节点服务器中存储所述待下载文件的第二目标空间分片后,所述方法还包括:
根据所述待下载文件的名称,在所述第二目标空间分片包括的磁盘中下载与所述待下载文件名称相同的说明文档。
6.一种文件处理装置,其特征在于,所述装置包括:
第一确定模块,用于在接收到客户端发送的携带有待上传文件的上传请求时,根据所述待上传文件的名称和文件节点服务器的个数,使用第一哈希取余法确定用于存储所述待上传文件的第一目标文件节点服务器;
第二确定模块,用于根据所述待上传文件的名称和所述第一目标文件节点服务器中包括的空间分片的个数,使用第二哈希取余法确定所述第一目标文件节点服务器中用于存储所述待上传文件的第一目标空间分片;
第三确定模块,用于根据所述待上传文件的大小和第一目标数量,使用第三哈希取余法确定各待上传子文件的名称,其中,所述第一目标数量指的是将所述待上传文件在所述第一目标空间分片中按照预设大小进行分割后得到的所有待上传子文件的个数;
第一判断模块,用于针对每一个所述待上传子文件,判断所述第一目标空间分片包括的磁盘中是否存在与该待上传子文件名称相同的第一目标子文件;
第一存储模块,用于若不存在所述第一目标子文件,将该待上传子文件存储在所述磁盘中;
所述第三确定模块的配置在用于根据所述待上传文件的大小和第一目标数量,使用第三哈希取余法确定各待上传子文件的名称时,包括:
对用于表示所述待上传文件的大小的数值进行第二哈希运算,得到第二哈希值;
使用所述第二哈希值对所述待上传子文件的个数取余,得到第二余数;
针对每一个所述待上传子文件,对目标字符串和目标和值进行组合,以将组合后得到的字符串所对应的内容作为该待上传子文件的名称,其中,所述目标字符串为所述待上传文件的名称对应的字符串,所述目标和值为所述第二余数与目标数值的和值,所述目标数值用于表示:在对所述待上传文件进行切割时,得到该待上传子文件的次序。
7.一种文件处理装置,其特征在于,所述装置包括:
第四确定模块,用于在接收到客户端发送的下载请求时,根据待下载文件的名称和文件节点服务器的个数,使用第四哈希取余法确定存储所述待下载文件的第二目标文件节点服务器,其中,所述下载请求携带有所述待下载文件的名称;
第五确定模块,用于根据所述待下载文件的名称和所述第二目标文件节点服务器中包括的空间分片的个数,使用第五哈希取余法确定所述第二目标文件节点服务器中存储所述待下载文件的第二目标空间分片;
第二判断模块,用于判断所述下载请求是否携带有待下载子文件的名称,其中,所述待下载子文件的名称是根据所述待下载文件的大小和第二目标数量,使用第六哈希取余法确定出的,所述第二目标数量指的是将所述待下载文件在所述第二目标空间分片中按照预设大小进行分割后得到的所有待下载子文件的个数;
第一下载模块,用于若携带所述待下载子文件的名称,在所述第二目标空间分片的磁盘中下载与所述待下载子文件名称相同的第二目标子文件。
8.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1-5中任一项所述的方法的步骤。
9.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行上述权利要求1-5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110594284.1A CN113220644B (zh) | 2021-05-28 | 2021-05-28 | 一种文件处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110594284.1A CN113220644B (zh) | 2021-05-28 | 2021-05-28 | 一种文件处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113220644A CN113220644A (zh) | 2021-08-06 |
CN113220644B true CN113220644B (zh) | 2022-04-26 |
Family
ID=77099247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110594284.1A Active CN113220644B (zh) | 2021-05-28 | 2021-05-28 | 一种文件处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113220644B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113873045B (zh) * | 2021-11-11 | 2023-09-12 | 深圳市云语科技有限公司 | 一种基于能力协商的文件多节点传输方法 |
CN117271440B (zh) * | 2023-11-21 | 2024-02-06 | 深圳市云希谷科技有限公司 | 一种基于freeRTOS文件信息存储方法、读取方法及相关设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021068547A1 (zh) * | 2019-10-12 | 2021-04-15 | 华为技术有限公司 | 日志模板提取方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555388A (en) * | 1992-08-20 | 1996-09-10 | Borland International, Inc. | Multi-user system and methods providing improved file management by reading |
US20130246327A1 (en) * | 2012-03-15 | 2013-09-19 | Arshia Tabrizi | Expert answer platform methods, apparatuses and media |
CN104008152B (zh) * | 2014-05-21 | 2017-12-01 | 华南理工大学 | 支持海量数据访问的分布式文件***的架构方法 |
CN110349056B (zh) * | 2019-06-03 | 2021-04-02 | 创新先进技术有限公司 | 基于区块链的业务处理***以及方法 |
CN111552676A (zh) * | 2020-04-26 | 2020-08-18 | 北京众享比特科技有限公司 | 基于区块链的存证方法、装置、设备及介质 |
CN111708743A (zh) * | 2020-05-28 | 2020-09-25 | 浪潮电子信息产业股份有限公司 | 文件存储管理方法、文件管理客户端及文件存储管理*** |
CN112650721A (zh) * | 2020-12-29 | 2021-04-13 | 杭州趣链科技有限公司 | 一种文件存储方法、装置、***以及设备 |
CN112749166A (zh) * | 2021-01-15 | 2021-05-04 | 京东数字科技控股股份有限公司 | 一种业务数据处理方法、装置、设备及存储介质 |
-
2021
- 2021-05-28 CN CN202110594284.1A patent/CN113220644B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021068547A1 (zh) * | 2019-10-12 | 2021-04-15 | 华为技术有限公司 | 日志模板提取方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113220644A (zh) | 2021-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113220644B (zh) | 一种文件处理方法、装置、设备及存储介质 | |
US10713034B2 (en) | Updating web resources | |
CN107426258B (zh) | 一种镜像文件的上传和下载方法及装置 | |
US9015269B2 (en) | Methods and systems for notifying a server with cache information and for serving resources based on it | |
AU2018355092B2 (en) | Witness blocks in blockchain applications | |
US20160044100A1 (en) | Accelerating transfer protocols | |
US20160041777A1 (en) | Client-side deduplication with local chunk caching | |
US9690796B2 (en) | Non-transitory computer-readable media storing file management program, file management apparatus, and file management method | |
CN110737663B (zh) | 一种数据存储方法、装置、设备及存储介质 | |
US9037662B2 (en) | Cache control for web application resources | |
CN111273863B (zh) | 高速缓存管理 | |
CN109783193A (zh) | 一种可在多域云平台中复用的镜像文件管理方法 | |
CN112699094B (zh) | 文件存储方法、数据检索方法、相应装置及*** | |
CN102420857A (zh) | 操作指令传送和处理方法、传送和缓存服务器及存储*** | |
CN111950025A (zh) | 一种基于区块链智能合约的文件分布式存储方法 | |
CN102164309B (zh) | 节目的处理方法和***以及装置 | |
CN112182328A (zh) | 一种搜索引擎的扩容方法、装置、电子设备及存储介质 | |
CN105610596B (zh) | 一种资源目录管理方法和网络终端 | |
CN111245949A (zh) | 文件归档传输方法、装置及设备 | |
CN112055044B (zh) | 数据请求方法及服务器、计算机可存储介质 | |
CN113900990A (zh) | 文件分片存储方法、装置、设备及存储介质 | |
CN113900991A (zh) | 数据交互方法、装置、设备及存储介质 | |
US10715619B2 (en) | Cache management using a probabilistic data structure | |
CN112068986B (zh) | 用于管理备份任务的方法、设备和计算机程序产品 | |
CN110226153A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |