CN114253907A - 一种分片传输方法、装置、电子设备及可读存储介质 - Google Patents
一种分片传输方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN114253907A CN114253907A CN202010993398.9A CN202010993398A CN114253907A CN 114253907 A CN114253907 A CN 114253907A CN 202010993398 A CN202010993398 A CN 202010993398A CN 114253907 A CN114253907 A CN 114253907A
- Authority
- CN
- China
- Prior art keywords
- file
- fragment
- fragmented
- fragment file
- files
- 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
- 239000012634 fragment Substances 0.000 title claims abstract description 182
- 230000005540 biological transmission Effects 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000004931 aggregating effect Effects 0.000 claims abstract description 27
- 230000002776 aggregation Effects 0.000 claims description 18
- 238000004220 aggregation Methods 0.000 claims description 18
- 238000013467 fragmentation Methods 0.000 claims description 8
- 238000006062 fragmentation reaction Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 2
- 238000007796 conventional method Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000006116 polymerization 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/13—File access structures, e.g. distributed indices
-
- 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
-
- 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/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
- G06F16/1774—Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种分片传输方法、装置、电子设备及可读存储介质,涉及数据传输技术领域。该分片传输方法包括接收分片文件,分片文件至少包括编号信息;在编号信息不包括第一请求信息的情况下,存储分片文件;第一请求信息用于指示分片文件为最后一个分片文件;当存储的分片文件的数量等于预设阈值时,对分片文件进行聚合;将聚合后的分片文件写入文件系统。本发明提供的技术方案解决了现有的方法在执行分片传输时,文件分片长时间占用了服务器的内存,严重地浪费了服务器的内存空间的问题。
Description
技术领域
本发明涉及数据传输技术领域,尤其涉及一种分片传输方法、装置、电子设备及可读存储介质。
背景技术
随着网络技术的发展,用户可以在集群环境上做文件的分片上传。目前,在集群环境上做文件的分片上传时,采用的方式是,在客户端将分片全部传输到服务器之后,由客户端发起一个聚合指令完成聚合,这样,会导致文件分片长时间占用了服务器的内存,严重地浪费了服务器的内存空间。
发明内容
本发明实施例提供一种分片传输方法、装置、电子设备及可读存储介质,以解决现有的方法在执行分片传输时,文件分片长时间占用了服务器的内存,严重地浪费了服务器的内存空间的问题。
第一方面,本发明实施例提供了一种分片传输方法,应用于服务器,包括:
接收分片文件,所述分片文件至少包括编号信息;
在所述编号信息不包括第一请求信息的情况下,存储所述分片文件;所述第一请求信息用于指示所述分片文件为最后一个分片文件;
当存储的所述分片文件的数量等于预设阈值时,对所述分片文件进行聚合;
将聚合后的分片文件写入文件系统。
可选地,所述方法还包括:在所述编号信息包括所述第一请求信息的情况下,将所述分片文件直接写入所述文件系统。
可选地,在存储所述分片文件之后,在存储的所述分片文件的数量等于预设阈值时,对所述分片文件进行聚合之前,所述方法还包括:
生成异步线程;
所述当存储的所述分片文件的数量等于预设阈值时,对所述分片文件进行聚合包括:
在所述异步线程内为所述分片文件分配一个分布式排他锁;
当所述分片文件的数量等于预设阈值时,基于所述分布式排他锁对所述分片文件进行聚合。
可选地,所述当所述分片文件的数量等于预设阈值时,基于所述分布式排他锁对所述分片文件进行聚合,包括:
基于所述编号信息判断所述分片文件是否为首个分片;
在所述分片文件是首个分片的情况下,创建对应于所述分片文件的目标文件夹,并将所述分片文件写入所述目标文件夹中;
当所述目标文件夹中的所述分片文件的数量等于预设阈值时,基于所述分布式排他锁对所述分片文件进行聚合。
可选地,所述基于所述编号信息判断所述分片文件是否为首个分片之后,所述方法还包括:
在所述分片文件不是首个分片的情况下,获取已经写入目标文件夹的分片文件的目标编号信息;
以所述目标编号信息的编号值为起始值,以所述分片文件的编号信息的编号值为终止值,计算待写入编号值,将所述待写入编号值对应的分片文件写入所述目标文件夹。
可选地,所述分片文件还包括标识信息;
所述获取已经写入目标文件夹的分片文件的目标编号信息,包括:
基于所述标识信息获取已经写入目标文件夹的分片文件的所述目标编号信息。
第二方面,本发明实施例还提供了一种分片传输装置,应用于服务器,包括:
接收模块,用于接收分片文件,所述分片文件至少包括编号信息;
存储模块,用于在所述编号信息不包括第一请求信息的情况下,存储所述分片文件;所述第一请求信息用于指示所述分片文件为最后一个分片文件;
聚合模块,用于当存储的所述分片文件的数量等于预设阈值时,对所述分片文件进行聚合;
第一写入模块,用于将聚合后的分片文件写入文件系统。
可选地,上述分片传输装置还包括:
第二写入模块,用于在所述编号信息包括所述第一请求信息的情况下,将所述分片文件直接写入所述文件系统。
第三方面,本申请还提供一种电子设备,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法步骤。
第四方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的方法步骤。
本发明实施例提供的技术方案中,基于分片文件的编号信息进行判断,在编号信息不包括第一请求信息的情况下,存储分片文件;当存储的分片文件的数量等于预设阈值时,对分片文件进行聚合;然后将聚合后的分片文件写入文件系统。这样,对分片文件进行实时聚合与写入,可以避免分片长时间占用服务器的内存,提高了服务器在分片文件传输过程中的内存空间的使用率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获取其他的附图。
图1是本发明实施例提供的一种分片传输方法的流程示意图;
图2是本发明实施例提供的一种分片传输方法中分段读取情况示意图;
图3是适用于本发明实施例提供的一种分片传输方法的服务端与客户端的连接情况示意图;
图4是本发明实施例提供的一种分片传输方法中实时聚合操作情况示意图;
图5是本发明实施例提供的一种分片传输装置的模块图;
图6是本发明实施例提供的一种电子设备的模块图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
除非另作定义,本发明中使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
请参见图1,本申请实施例提供了一种分片传输方法,应用于服务器,包括:
步骤101、接收分片文件,所述分片文件至少包括编号信息;
其中,服务器接收的分片文件可以来自于客户端,客户端可以是手机、平板电脑、移动上网装置或可穿戴式设备等。此处,仅作示例而不做限定,在其他可行的实施例中,还可以采用其他类型的客户端。在该实施方式中,首先通过客户端将待上传的文件进行等份分段读取,在读取待上传的文件时,可以通过本地读取的方式,在读取时,首先根据预定的分片大小计算出要读取的起始字节位及终止字节位,然后读取出此范围内的字节。其中,每读取的一段待上传的文件视为一个分片文件。
如图2所示,本申请中,选取分片文件的分片大小为5M,例如,在该实施方式中,编号为4的分片的字节读取的范围为4194304字节-5242880字节,编号为10的分片的字节读取范围为10485760字节-11534336字节。此处,仅作示例,不做限定。进一步地,客户端在读取分片文件后,将分片文件以并行地方式发送到服务器,可选地,可以同时发送3-5个分片文件,这样,可以提升分片传输的速度。
此外,每一个分片文件至少包括编号信息,具体而言,编号信息可以是0、1、2…N等数值,N为自然数,表示第N个分片文件,该实施方式中,以0作为首个分片文件的编号信息的编号值。
在该实施方式中,如图3所示,服务器包括多个服务器节点和存储系统Redis,该多个服务器节点构成一个服务器集群环境,为便于分片文件的传输,可将实时上传的分片文件暂存于存储系统Redis中。
步骤102、在所述编号信息不包括第一请求信息的情况下,存储所述分片文件;所述第一请求信息用于指示所述分片文件为最后一个分片文件;
在该实施方式中,第一请求信息可以是flush请求,具体而言,该flush请求基于编号信息确定。例如,客户端在待上传文件的最后一个分片文件的编号中加入flush请求,服务器接收到分片文件后,根据编号判断该分片文件是否带有flush请求,如果不带有flush请求,则表示不是最后一个分片文件。在该实施方式中,当服务器接收的分片文件不是最后一个文件时,将当前接收到的分片文件存储到存储系统Redis。
步骤103、当存储的所述分片文件的数量等于预设阈值时,对所述分片文件进行聚合;
可理解地,预设阈值可以是用于表示分片文件的数量的阈值,例如3或者5。表示存储有3个分片文件或者存储有5个分片文件,当存储系统Redis中存储的分片文件的数量等于预设阈值时,服务器对分片文件进行一次聚合动作。
步骤104、将聚合后的分片文件写入文件系统。
上述的分片传输方法,基于分片文件的编号信息进行判断,在编号信息不包括第一请求信息的情况下,存储分片文件;当存储的分片文件的数量等于预设阈值时,对分片文件进行聚合;然后将聚合后的分片文件写入文件系统。这样,对分片文件进行实时聚合与写入,可以避免分片长时间占用服务器的内存,提高了服务器在分片文件传输过程中的内存空间的使用率。
可选地,上述分片传输方法还包括,在编号信息包括第一请求信息的情况下,将分片文件直接写入文件系统。
例如,当服务器接收到分片文件后,根据编号判断该分片文件是否带有flush请求,如果带有flush请求,则表示是最后一个分片文件。在该实施方式中,当服务器接收的分片文件是最后一个文件时,将当前接收到的分片文件直接写入文件系统中。这样,可以通过判断是否带有flush请求的方式,快速地确定服务器当前接收的分片文件是否是最后一个分片文件,从而针对于不同的分片文件进行更好地存储和写入。
例如,在该实施方式中,将最后一个分片文件的编号值设为-1,服务器接收到分片文件后,取出分片文件的编号信息进行判断,当接收到的分片文件的编号值为-1时,表示接收到了客户端的flush请求,判定接收到的分片文件为最后一个分片文件,表示所有的分片文件都到达了服务器的集群环境中,可以执行最后的文件聚合操作,服务器随即会将剩下的所有分片按顺序追加写入到底层的文件系统,最后删除分片释放内存。这样,可以实时释放分片文件占用的内存,避免发生分片文件长时间占用服务器的内存的情况。
可选地,分片文件还包括标识信息;上述获取已经写入目标文件夹的分片文件的目标编号信息,包括:基于标识信息获取已经写入目标文件夹的分片文件的目标编号信息。
需要说明的是,客户端在上传分片文件之前,先产生预上传请求,并将该预上传请求发送至服务器,服务器接收到预上传请求后,针对于该待上传的文件生成一个全局唯一对应的文件标识,该标识用于区分该文件与其余的文件,在整个文件分片传输过程中,只要是属于同一个文件的分片文件的标识都一致。
进一步地,服务器将生成的标识发送至客户端,客户端在接收到标识后,在每一次传输分片文件时,都会携带该标识以标记分片文件所属的文件。也就是说,在一个可行的实施例中,客户端上传的分片文件包括文件内容、编号信息以及标识。
可选地,在存储分片文件之后,在存储的分片文件的数量等于预设阈值时,对分片文件进行聚合之前,上述的分片传输方法还包括:
生成异步线程;
当存储的分片文件的数量等于预设阈值时,对分片文件进行聚合包括:
在异步线程内为分片文件分配一个分布式排他锁;
当分片文件的数量等于预设阈值时,基于分布式排他锁对分片文件进行聚合。
具体而言,当接收到的分片文件不是最后一个分片文件时,服务器将分片文件暂存至存储系统Redis中,此时,服务器构造一个异步线程对象放进线程池中,这样,既可以完成对已经接收到的分片文件的后续处理,又能同时接收新上传的分片文件。需要说明的是,因为实时聚合是一个低优先级任务不需要过高的并发执行,因此,构造的上述异步线程的优先级不用设置过高,以避免影响服务器中其他任务的进行。进一步地,在异步线程中,首先向存储系统Redis请求该文件对应的分布式排他锁,例如,可以根据分片文件的标识确定分布式排他锁。
其中,分布式排他锁可以是fairLock类型的分布式排他锁,因为实时聚合动作往往有时序先后性而fairLock类型的分布式排他锁可以一定程序上保证聚合动作按时序进行。另外,在本申请中,在加锁时要设置有一定时长的超时时间,该超时时间设定为一个比较短的超时时间,具体根据实际情况设定,此处不做具体限定,因为实时聚合是一个低优先级的动作,通过设定超时时间,即使此次加锁失败了不能执行聚合,也不会影响文件整体传输。
在该实施方式中,为分片文件请求一个分布式排他锁之后,后续只允许属于该文件的分片文件进入,这样,可以将该文件与其他文件进行区分,进一步保证了文件传输的安全性。
可选地,当分片文件的数量等于预设阈值时,基于分布式排他锁对分片文件进行聚合,包括:
基于编号信息判断分片文件是否为首个分片;
在分片文件是首个分片的情况下,创建对应于分片文件的目标文件夹,并将分片文件写入目标文件夹中;
当目标文件夹中的分片文件的数量等于预设阈值时,基于分布式排他锁对分片文件进行聚合。
进一步地,当接收到分片文件后,首先基于分片文件的编号信息判断当前接收的分片文件是否为首个分片,在该实施方式中,设定首个分片文件的编号值为0,则若当前接收的分片文件的编号值为0,则表示当前接收的分片文件是首个分片文件,对于首个分片文件,在该实施方式中,基于该分片文件的标识创建一个对应于分片文件的目标文件夹,并将分片文件写入该目标文件夹中,然后将该分片文件的编号记录到此文件唯一标识对应的缓存数据结构中,最后释放分布式排他锁,删除分片并释放内存。通过创建目标文件夹,可以便于后续即将接收的分片文件与已经接收的分片文件存储至同一个文件夹中,避免产生分片文件存储混乱,便于对属于同一个分片文件的文件夹进行实时聚合。
进一步地,预设阈值可以用于表示对文件进行聚合的频率。需要说明的是,对于大型的文件,往往被划分为成百上千甚至更多数量的分片文件上传,如果每接收一个分片文件就进行一次聚合操作,会导致服务器线程数剧增,从而消耗服务器内存拉低服务器整体性能。因此,设置一个合理的聚合频率十分重要。在本申请中,设定预设阈值为5,表示每接收5个分片文件进行一次聚合操作。此处仅作示例,不做限定,可变换地,在其他可行的实施例中,还可以设定预设阈值为其他的数值。
在接收到分片文件时,为更快速地判断在接收到分片文件后是否需要进行聚合操作,可以基于分片文件的编号值进行计算,例如,将编号值与预设阈值进行取模计算,以此判断接收到的分片文件的数量是否达到预设的阈值。这样,可以快速地确定是否需要进行聚合操作,加快文件传输的速度。
可选地,基于编号信息判断分片文件是否为首个分片之后,上述的分片传输方法还包括:
在分片文件不是首个分片的情况下,获取已经写入目标文件夹的分片文件的目标编号信息;
以目标编号信息的编号值为起始值,以分片文件的编号信息的编号值为终止值,计算待写入编号值,将待写入编号值对应的分片文件写入目标文件夹。
具体而言,若当前接收的分片文件不是首个分片文件,则读取此文件唯一标识对应的缓存数据结构,提取出已经写入过的最新的分片文件的编号值,并以此值为起始,以接收到的分片文件的编号值为终止值,做步进为1的迭代操作,在迭代中取出对应的编号,判断对应的分片文件是否存在,如果存在则将分片文件追加到该文件中,并将编号记录到此文件唯一标识对应的缓存数据结构中,最后删除分片释放内存;如果不存在则终止迭代。迭代完成后释放分布式排他锁。这样,可以避免产生分片文件存储混乱,便于对属于同一个分片文件的文件夹进行实时聚合。
如图4所示,在本申请中,服务器接收到分片文件后,判断是否包括flush请求,若包括flush请求,则直接将分片文件写入到文件系统中,若不包括flush请求,则将分片文件写入存储系统Redis,同时开启异步线程,在异步线程中为分片文件请求文件的标识对应的分布式排他锁,然后判断该分片文件是否为首个分片,若是首个分片,则按照文件的标识创建一个文件,并将分片文件写入该文件中,若不是首个分片文件,则读取此文件唯一标识对应的缓存数据结构,提取出已经写入过的最新的分片文件的编号值,并以此值为起始,以接收到的分片文件的编号值为终止值,做步进为1的迭代操作,在迭代中取出对应的编号,判断对应的分片文件是否存在,如果存在则将分片文件追加到该文件中,并将最新的编号记录到此文件唯一标识对应的缓存数据结构中,然后释放分布式锁,最后删除分片释放内存。上述的分片传输方法,基于分片文件的编号信息进行判断,在编号信息不包括第一请求信息的情况下,存储分片文件;当存储的分片文件的数量等于预设阈值时,对分片文件进行聚合;然后将聚合后的分片文件写入文件系统。这样,对分片文件进行实时聚合与写入,可以避免分片长时间占用服务器的内存,提高了服务器在分片文件传输过程中的内存空间的使用率。
如图5所示,本申请实施例还提供一种分片传输装置500,应用于服务器,该分片传输装置500包括:
接收模块501,用于接收分片文件,所述分片文件至少包括编号信息;
存储模块502,用于在所述编号信息不包括第一请求信息的情况下,存储所述分片文件;所述第一请求信息用于指示所述分片文件为最后一个分片文件;
聚合模块503,用于当存储的所述分片文件的数量等于预设阈值时,对所述分片文件进行聚合;
第一写入模块504,用于将聚合后的分片文件写入文件系统。
可选地,上述的分片传输装置500还包括:
第二写入模块,用于在所述编号信息包括所述第一请求信息的情况下,将所述分片文件直接写入所述文件系统。
可选地,上述的分片传输装置500还包括异步线程管理模块,用于:
生成异步线程;
在所述异步线程内为所述分片文件分配一个分布式排他锁;
当所述分片文件的数量等于预设阈值时,基于所述分布式排他锁对所述分片文件进行聚合。
可选地,所述异步线程管理模块具体用于:
基于所述编号信息判断所述分片文件是否为首个分片;
在所述分片文件是首个分片的情况下,创建对应于所述分片文件的目标文件夹,并将所述分片文件写入所述目标文件夹中;
当所述目标文件夹中的所述分片文件的数量等于预设阈值时,基于所述分布式排他锁对所述分片文件进行聚合。
可选地,所述异步线程管理模块还用于:
在所述分片文件不是首个分片的情况下,获取已经写入目标文件夹的分片文件的目标编号信息;
以所述目标编号信息的编号值为起始值,以所述分片文件的编号信息的编号值为终止值,计算待写入编号值,将所述待写入编号值对应的分片文件写入所述目标文件夹。
可选地,所述分片文件还包括标识信息;
所述获取已经写入目标文件夹的分片文件的目标编号信息,包括:
基于所述标识信息获取已经写入目标文件夹的分片文件的所述目标编号信息。
上述的分片传输装置500包括上述各实施例的全部技术方案,因此至少能实现上述实施例的全部技术效果,此处不再一一赘述。
可选的,如图6所示,本申请实施例还提供一种电子设备600,包括处理器601,存储器602,存储在存储器602上并可在所述处理器601上运行的程序或指令,该程序或指令被处理器601执行时实现上述图1-图4的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述图1至图4的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种分片传输方法,应用于服务器,其特征在于,包括:
接收分片文件,所述分片文件至少包括编号信息;
在所述编号信息不包括第一请求信息的情况下,存储所述分片文件;所述第一请求信息用于指示所述分片文件为最后一个分片文件;
当存储的所述分片文件的数量等于预设阈值时,对所述分片文件进行聚合;
将聚合后的分片文件写入文件系统。
2.根据权利要求1所述的分片传输方法,其特征在于,所述方法还包括:在所述编号信息包括所述第一请求信息的情况下,将所述分片文件直接写入所述文件系统。
3.根据权利要求1所述的分片传输方法,其特征在于,在存储所述分片文件之后,在存储的所述分片文件的数量等于预设阈值时,对所述分片文件进行聚合之前,所述方法还包括:
生成异步线程;
所述当存储的所述分片文件的数量等于预设阈值时,对所述分片文件进行聚合包括:
在所述异步线程内为所述分片文件分配一个分布式排他锁;
当所述分片文件的数量等于预设阈值时,基于所述分布式排他锁对所述分片文件进行聚合。
4.根据权利要求3所述的分片传输方法,其特征在于,所述当所述分片文件的数量等于预设阈值时,基于所述分布式排他锁对所述分片文件进行聚合,包括:
基于所述编号信息判断所述分片文件是否为首个分片;
在所述分片文件是首个分片的情况下,创建对应于所述分片文件的目标文件夹,并将所述分片文件写入所述目标文件夹中;
当所述目标文件夹中的所述分片文件的数量等于预设阈值时,基于所述分布式排他锁对所述分片文件进行聚合。
5.根据权利要求4所述的分片传输方法,其特征在于,所述基于所述编号信息判断所述分片文件是否为首个分片之后,所述方法还包括:
在所述分片文件不是首个分片的情况下,获取已经写入目标文件夹的分片文件的目标编号信息;
以所述目标编号信息的编号值为起始值,以所述分片文件的编号信息的编号值为终止值,计算待写入编号值,将所述待写入编号值对应的分片文件写入所述目标文件夹。
6.根据权利要求5所述的分片传输方法,其特征在于,所述分片文件还包括标识信息;
所述获取已经写入目标文件夹的分片文件的目标编号信息,包括:
基于所述标识信息获取已经写入目标文件夹的分片文件的所述目标编号信息。
7.一种分片传输装置,应用于服务器,其特征在于,包括:
接收模块,用于接收分片文件,所述分片文件至少包括编号信息;
存储模块,用于在所述编号信息不包括第一请求信息的情况下,存储所述分片文件;所述第一请求信息用于指示所述分片文件为最后一个分片文件;
聚合模块,用于当存储的所述分片文件的数量等于预设阈值时,对所述分片文件进行聚合;
第一写入模块,用于将聚合后的分片文件写入文件系统。
8.根据权利要求7所述的分片传输装置,其特征在于,还包括:
第二写入模块,用于在所述编号信息包括所述第一请求信息的情况下,将所述分片文件直接写入所述文件系统。
9.一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010993398.9A CN114253907A (zh) | 2020-09-21 | 2020-09-21 | 一种分片传输方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010993398.9A CN114253907A (zh) | 2020-09-21 | 2020-09-21 | 一种分片传输方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114253907A true CN114253907A (zh) | 2022-03-29 |
Family
ID=80788944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010993398.9A Pending CN114253907A (zh) | 2020-09-21 | 2020-09-21 | 一种分片传输方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114253907A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160070741A1 (en) * | 2014-09-10 | 2016-03-10 | Panzura, Inc. | Managing the level of consistency for a file in a distributed filesystem |
US20160162532A1 (en) * | 2014-12-09 | 2016-06-09 | Microsoft Technology Licensing, Llc | Digital content aggregation from multiple sources |
CN106686411A (zh) * | 2015-11-10 | 2017-05-17 | 中兴通讯股份有限公司 | 流媒体频道录制方法、装置及回看方法、装置及服务器 |
CN109831481A (zh) * | 2018-12-21 | 2019-05-31 | 厦门市美亚柏科信息股份有限公司 | 一种大文件拆分传输的方法、装置及存储介质 |
CN109905479A (zh) * | 2019-03-04 | 2019-06-18 | 腾讯科技(深圳)有限公司 | 文件传输方法和装置 |
-
2020
- 2020-09-21 CN CN202010993398.9A patent/CN114253907A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160070741A1 (en) * | 2014-09-10 | 2016-03-10 | Panzura, Inc. | Managing the level of consistency for a file in a distributed filesystem |
US20160162532A1 (en) * | 2014-12-09 | 2016-06-09 | Microsoft Technology Licensing, Llc | Digital content aggregation from multiple sources |
CN106686411A (zh) * | 2015-11-10 | 2017-05-17 | 中兴通讯股份有限公司 | 流媒体频道录制方法、装置及回看方法、装置及服务器 |
CN109831481A (zh) * | 2018-12-21 | 2019-05-31 | 厦门市美亚柏科信息股份有限公司 | 一种大文件拆分传输的方法、装置及存储介质 |
CN109905479A (zh) * | 2019-03-04 | 2019-06-18 | 腾讯科技(深圳)有限公司 | 文件传输方法和装置 |
Non-Patent Citations (1)
Title |
---|
刘宝锺: "大数据分类模型和算法研究", vol. 2020, 31 January 2020, 昆明:云南大学出版社, pages: 320 - 329 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109254733B (zh) | 用于存储数据的方法、装置和系统 | |
CN105100146B (zh) | 数据存储方法、装置及系统 | |
CN111054067B (zh) | 游戏存档文件存储方法、电子设备和存储介质 | |
US20200401557A1 (en) | Metadata compaction in a distributed storage system | |
CN111262726B (zh) | 一种配置信息更新方法、装置及计算机可读存储介质 | |
CN109271363B (zh) | 一种文件存储的方法及设备 | |
CA3068345A1 (en) | Witness blocks in blockchain applications | |
CN109582649B (zh) | 一种元数据存储方法、装置、设备及可读存储介质 | |
CN112748877A (zh) | 一种文件的整合上传方法及装置、文件的下载方法及装置 | |
CN111432009A (zh) | 一种区块链数据的同步方法、装置及电子设备、存储介质 | |
CN109710502B (zh) | 日志传输方法、装置及存储介质 | |
CN115039082A (zh) | 日志写入方法、装置、电子设备以及存储介质 | |
CN113268540B (zh) | 一种数据同步的方法及装置 | |
CN111158606B (zh) | 存储方法、装置、计算机设备和存储介质 | |
EP4174675A1 (en) | On-board data storage method and system | |
CN114253907A (zh) | 一种分片传输方法、装置、电子设备及可读存储介质 | |
CN115297104B (zh) | 文件上传方法、装置、电子设备和存储介质 | |
CN115951845A (zh) | 一种磁盘管理方法、装置、设备及存储介质 | |
CN113609091B (zh) | 日志管理方法、装置、设备及存储介质 | |
CN111309471A (zh) | 数据处理方法、装置及分布式系统 | |
CN113900990A (zh) | 文件分片存储方法、装置、设备及存储介质 | |
CN111061682A (zh) | 一种数据缓存方法、读取方法、电子设备及存储介质 | |
CN112395296A (zh) | 一种大数据归档方法、装置、设备及存储介质 | |
CN114629895B (zh) | 一种文件分片断点续传方法、装置、终端设备及介质 | |
CN117579617B (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 |