CN106790653B - 文件传输处理方法及装置 - Google Patents
文件传输处理方法及装置 Download PDFInfo
- Publication number
- CN106790653B CN106790653B CN201710037235.1A CN201710037235A CN106790653B CN 106790653 B CN106790653 B CN 106790653B CN 201710037235 A CN201710037235 A CN 201710037235A CN 106790653 B CN106790653 B CN 106790653B
- Authority
- CN
- China
- Prior art keywords
- file
- block
- file block
- information
- blocks
- 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
-
- 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]
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种文件传输处理方法及装置。其中,该方法包括:将待处理的文件按照块大小拆分成多个文件块,并生成每个文件块对应的位置信息,其中,位置信息用于标识该文件块在文件中的位置;根据每个文件块的内容生成该文件块对应的验证信息,其中,验证信息用于对该文件块内容的完整性进行验证;将每个文件块以及该文件块对应的位置信息和验证信息放置到缓存中等待发送;从缓存中读取文件块及其对应的位置信息和验证信息并进行发送;接收发送的文件块并根据文件块对应的验证信息进行验证;对验证通过的文件块根据对应的位置信息进行组合得到待保存文件;保存待保存文件。本发明解决了传输大文件的效率低的技术问题。
Description
技术领域
本发明涉及文件处理领域,具体而言,涉及一种文件传输处理方法及装置。
背景技术
当前,在传输大量文件时,会出现传输文件数据较慢的情况,尤其是在网络繁忙时,传输文件的效率很低,对上述问题,现有技术的解决方案很多采用单线程的方式传输文件,但是采用单线程上传文件,上传速度慢,同时,一旦发生意外中断,就需重新上传文件的全部数据,极大地影响了上传的效率。如果用户在一次联网的情况下未能完成全部下载,下次启动应用程序还需要重新传输文件。
针对上述传输大文件的效率低的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种文件传输处理方法及装置,以至少解决传输大文件的效率低的技术问题。
根据本发明实施例的一个方面,提供了一种文件传输处理方法,包括:将待处理的文件按照块大小拆分成多个文件块,并生成每个文件块对应的位置信息,其中,位置信息用于标识该文件块在文件中的位置;根据每个文件块的内容生成该文件块对应的验证信息,其中,验证信息用于对该文件块内容的完整性进行验证;将每个文件块以及该文件块对应的位置信息和验证信息放置到缓存中等待发送;从缓存中读取文件块及其对应的位置信息和验证信息并进行发送;接收发送的文件块并根据文件块对应的验证信息进行验证;对验证通过的文件块根据对应的位置信息进行组合得到待保存文件;保存待保存文件。
进一步地,从缓存中读取文件块及其对应的位置信息和验证信息进行发送之后,该方法还包括:在缓存中保留已经发送的文件块及其对应的位置信息和验证信息,在满足预定条件之后,在缓存中删除已经发送的文件块及其对应的位置信息和验证信息;在对接收到的文件块使用对应的验证信息进行验证失败的情况下,方法还包括:请求从缓存中重新发送验证失败的文件块及其对应的验证信息。
进一步地,满足预定条件包括以下至少之一:在缓存中保留已经发送过的文件块及其对应的位置信息和验证信息的时长超过阈值、收到文件块接收方确认已经收到该文件块的信息、在缓存中预留的用于保留已经发送过的文件块及其对应位置信息和验证信息的空间已满;在请求从缓存中重新发送验证失败的文件块及其对应的验证信息失败的情况下,请求根据验证失败的文件块的位置信息重新从待处理的文件中拆分出该文件块。
进一步地,从缓存中读取文件块及其对应的位置信息和验证信息并进行发送包括:将多个文件块组成一个文件块组,为该文件块组生成验证信息,发送文件块组及对应的验证信息;接收发送的文件块并根据文件块对应的验证信息进行验证包括:在根据文件块组的验证信息对文件块组的验证通过之后,不再对该文件块组中的每个文件块进行验证;在该文件块组的验证失败之后,对文件块组中的每个文件块进行验证,查找到验证失败的文件块并请求重传。
进一步地,块大小为预先配置的或者根据接收文件块的接收方的可用资源情况确定的。
进一步地,在将待处理的文件按照块大小拆分成多个文件块,并生成每个文件块对应的位置信息之前,该方法还包括:获取接收方发送的文件处理信息,其中,文件处理信息包括接收方可处理文件块的大小和数量,可处理文件块的大小为接收方每次可接收的文件块的大小,文件块的数量为接收方每次可接收的文件块组中包含的文件块的数量;基于接收方的可处理文件块的大小,将待处理的文件拆分成多个文件块,并生成每个文件块对应的位置信息。
进一步地,在将每个文件块以及该文件块对应的位置信息和验证信息放置到缓存中等待发送时,包括:基于接收方可处理文件块的数量,将预定数量的文件块以及文件块对应的位置信息和验证信息放置到缓存中等待发送,其中,预定数量为接收方可处理文件块的数量。
根据本发明实施例的另一方面,还提供了一种文件传输处理装置,包括:拆分单元,用于将待处理的文件按照块大小拆分成多个文件块,并生成每个文件块对应的位置信息,其中,位置信息用于标识该文件块在文件中的位置;生成单元,用于根据每个文件块的内容生成该文件块对应的验证信息,其中,验证信息用于对该文件块内容的完整性进行验证;放置单元,用于将每个文件块以及该文件块对应的位置信息和验证信息放置到缓存中等待发送;读取单元,用于从缓存中读取文件块及其对应的位置信息和验证信息并进行发送;接收单元,用于接收发送的文件块并根据文件块对应的验证信息进行验证;组合单元,用于对验证通过的文件块根据对应的位置信息进行组合得到待保存文件;保存单元,用于保存待保存文件。
进一步地,该装置还包括:保留单元,用于从缓存中读取文件块及其对应的位置信息和验证信息进行发送之后,在缓存中保留已经发送的文件块及其对应的位置信息和验证信息,在满足预定条件之后,在缓存中删除已经发送的文件块及其对应的位置信息和验证信息;装置还包括:请求单元,用于在对接收到的文件块使用对应的验证信息进行验证失败的情况下,请求从缓存中重新发送验证失败的文件块及其对应的验证信息。
进一步地,保留单元包括以下至少之一:保留模块,用于在缓存中保留已经发送过的文件块及其对应的位置信息和验证信息的时长超过阈值、收到文件块接收方确认已经收到该文件块的信息、在缓存中预留的用于保留已经发送过的文件块及其对应位置信息和验证信息的空间已满;请求模块,用于在请求从缓存中重新发送验证失败的文件块及其对应的验证信息失败的情况下,请求根据验证失败的文件块的位置信息重新从待处理的文件中拆分出该文件块。
通过上述实施例,可以将待处理的文件按照块大小拆分成多个文件块,并生成每个文件块对应的位置信息,其中,位置信息用于标识该文件块在文件中的位置,然后,可以根据拆分出的每个文件块的内容生成该文件块对应的验证信息,其中,验证信息用于对该文件块内容的完整性进行验证,并将每个文件块以及该文件块对应的位置信息和验证信息放置到缓存中等待发送,然后,可以从缓存中读取文件块及其对应的位置信息和验证信息,并发送该文件块及其对应的位置信息以及验证信息,可以通过接收方接收发送的文件块并根据文件块对应的验证信息对该文件块进行验证,对验证通过的文件块,可以根据对应的位置信息进行组合得到待保存文件,然后,可以保存该待保存文件。通过上述实施方式,可以将待处理的文件分成多个文件块,再将各个文件块发送,通过验证的方式验证各个文件块的信息是否正确,从而将各个文件块组合起来形成一个完整的文件,这样通过传输多个文件块的方式,避免了传输大文件时所浪费的时间,大大提高了传输文件的效率。从而解决传输大文件的效率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的文件传输处理方法的流程图;
图2是根据本发明实施例的另一种可选的文件传输处理系统的示意图;以及
图3是根据本发明实施例的一种可选的文件传输处理装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种文件传输处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种可选的文件传输处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,将待处理的文件按照块大小拆分成多个文件块,并生成每个文件块对应的位置信息,其中,位置信息用于标识该文件块在文件中的位置;
步骤S104,根据每个文件块的内容生成该文件块对应的验证信息,其中,验证信息用于对该文件块内容的完整性进行验证;
步骤S106,将每个文件块以及该文件块对应的位置信息和验证信息放置到缓存中等待发送;
步骤S108,从缓存中读取文件块及其对应的位置信息和验证信息并进行发送;
步骤S110,接收发送的文件块并根据文件块对应的验证信息进行验证;
步骤S112,对验证通过的文件块根据对应的位置信息进行组合得到待保存文件;
步骤S114,保存待保存文件。
通过上述实施方式,可以将待处理的文件按照块大小拆分成多个文件块,并生成每个文件块对应的位置信息,其中,位置信息用于标识该文件块在文件中的位置,然后,可以根据拆分出的每个文件块的内容生成该文件块对应的验证信息,其中,验证信息用于对该文件块内容的完整性进行验证,并将每个文件块以及该文件块对应的位置信息和验证信息放置到缓存中等待发送,然后,可以从缓存中读取文件块及其对应的位置信息和验证信息,并发送该文件块及其对应的位置信息以及验证信息,可以通过接收方接收发送的文件块并根据文件块对应的验证信息对该文件块进行验证,对验证通过的文件块,可以根据对应的位置信息进行组合得到待保存文件,然后,可以保存该待保存文件。通过上述实施方式,可以将待处理的文件分成多个文件块,再将各个文件块发送,通过验证的方式验证各个文件块的信息是否正确,从而将各个文件块组合起来形成一个完整的文件,这样通过传输多个文件块的方式,避免了传输大文件时所浪费的时间,大大提高了传输文件的效率。从而解决传输大文件的效率低的技术问题。
可选的,上述实施方式可以应用于服务器和客户端中,可以通过该服务器处理传输文件;文件可以包括多种类型,例如,文件可能是结构化数据组成的文件,此时按照需要进行拆分;又例如,文件还可能是非结构化数据(文本、文件等)组成的文件。对非结构化数据组成的文件在拆分时,可以将相同内容的文件拆分在一起,例如,如果一个文件中有多个视频信息,可以在拆分时,将同一个视频拆分在同一个文件中,这样,传输的数据可以是较为完整的文件。其中,文件可以存储在服务器中,该文件可以为待处理的文件。或者也可以根据文件头中指明的文件类型来进行拆分。
可选的,上述实施方式可以由多个设备完成,该多个设备可以包括文件预处理端、发送端、缓存端、接收端以及存储端等,每个设备的功能可以是不同的。
另一种可选的实施方式,在步骤S102提供的技术方案中,将待处理的文件按照块大小拆分成多个文件块,并生成每个文件块对应的位置信息,其中,位置信息用于标识该文件块在文件中的位置。
其中,可以通过文件预处理端将待处理的文件拆分为多个文件块,该文件块的大小可以是预先设置的,每个文件块的大小可以是相同的,例如,每个文件块的大小可以为20M。可选的,在将文件拆分为多个文件块时,记录每个文件块所在的位置,若将一个完整的文件拆分为多个文件块,需要记录文件块之间的位置信息,以便于在重新组合文件时,不会将文件的内容打乱。例如,将文件按照先后顺序记录为文件块1、文件块2、文件块3、、、文件块N,在组合文件时,可以按照文件块的顺序组合文件。另一种可选的实施方式,在标识文件块的位置信息时,可以标识各个文件块的位置与文件所在的位置信息,例如,文件为A,则可以标识各个文件块为文件块A1、文件块A2、以及文件A3等,从而通过文件块的位置信息组合完整的文件。
可选的,在步骤S104提供的技术方案总,根据每个文件块的内容生成该文件块对应的验证信息,其中,验证信息用于对该文件块内容的完整性进行验证。
其中,验证信息可以包括各个文件块的开始和结束标识,包括符号、数字、字母等,例如,对文件块A,其验证信息可以为开始处A1,结束处为A100,通过验证A1到A100是否都出现,从而得到该文件块内容是否为完整的文件块的内容。验证信息也可以为文件块的大小信息,例如,若一个文件块为20M,在验证时,可以验证该文件块是否有20M,若有20M,则可以验证该文件块传输完整。
在上述实施方式中,验证信息可以是在拆分待处理的文件时,该待处理的文件可以有一个指纹,各个文件块也可以对应有指纹信息。同时,记录各个文件块的位置信息,该位置信息可以包括文件块在待处理的文件的地址。
可选的,在步骤S106中,将每个文件块以及该文件块对应的位置信息和验证信息放置到缓存中等待发送。其中,在发送文件块时,将文件块的内容、对应的位置信息、以及验证信息一起放在缓存中。该缓存文件块的操作可以是缓存端完成的,即缓存端可以将各个文件块放在缓存中,每个缓存对应一个文件块。
其中,缓存可以为多种方式,在传输文件块时,可以建立一定的传输通道,以传输各个文件块,例如,给每个文件块建立一个线程,通过各个线程传输各个文件块,每个线程可以传输一个文件块。
可选的,在步骤S108提供的技术方案中,可以从缓存中读取文件块及其对应的位置信息和验证信息并进行发送。即将缓存的文件块发送出去。在步骤S110提供的技术方案中,接收发送的文件块并根据文件块对应的验证信息进行验证。通过该实施方式,可以利用接收端接收各个文件块、验证信息、以及位置信息,并根据验证信息验证其对应的文件块是否传输完成,并验证传输的文件块是否传输正确,验证的方式可以通过上述的方式进行,即对文件块的开始信息和结束信息验证是否正确,若验证文件块的开始信息和结束信息正确,则可以确定该文件块的传输完成。
通过上述实施方式,可以在拆分待处理的文件为各个小的文件块后,在组合文件时,可以保证文件的完整性;同时,通过验证得到验证信息是否正确,可以判断出传输文件块的内容的安全性,这是由于在传输文件块时,可能会受到其它外在因素的干扰(如,断网、线程互串)导致传输文件块的操作出现误差,这时,通过验证的方式,可以确保传输文件块的安全性。
另一种可选的实施方式,在步骤S112提供的技术方案中,对验证通过的文件块根据对应的位置信息进行组合得到待保存文件。其中,可以通过接收到的各个文件块根据位置信息将待处理文件组合起来,其组合的方式,可以是根据各个文件块的先后顺序进行组合,从而组合为完整的待保存文件。
可选的,在步骤S114提供的技术方案中,可以保存待保存文件。其中,可以通过存储端存储待保存文件,该存储端可以为存储整个文件的地方,然后,可以将组合后的待保存文件存储起来。可选的,在保存了待保存文件后,可以向文件预处理端告知该文件传输完成。
另一种可选的实施方式,从缓存中读取文件块及其对应的位置信息和验证信息并进行发送之后,该方法还包括:在缓存中保留已经发送的文件块及其对应的位置信息和验证信息,在满足预定条件之后,在缓存中删除已经发送的文件块及其对应的位置信息和验证信息;在对接收到的文件块使用对应的验证信息进行验证失败的情况下,该方法还包括:请求从缓存中重新发送验证失败的文件块及其对应的验证信息。
通过上述实施方式,可以在从缓存中读取文件块及其对应的位置信息和验证信息,并将上述信息和文件块发送之后,为了保证文件块传输的完整性,对传输的文件块进行相应的验证,并在验证出现错误的情况下(即文件块的传输不正确或者没有全部传输完成),可以从缓存中再次读取文件块及其对应的位置信息和验证信息,这样,就需要缓存在预定时间段内不会删除缓存的文件块。同时,在对接收到的文件块进行验证时,若验证失败,则表示该次传输文件块的操作失败,需要重新传输该文件块,这时,可以向缓存发送请求,该请求表示从缓存中重新发送验证失败的文件块及其对应的验证信息,若验证成功,则表示该次传输文件块的操作成功,不需要再次传输文件块。
可选的,在满足预定条件之后,可以将缓存中的文件块的内容删除,其中,满足预定条件包括以下至少之一:在缓存中保留已经发送过的文件块及其对应的位置信息和验证信息的时长超过阈值、收到文件块接收方确认已经收到该文件块的信息、在缓存中预留的用于保留已经发送过的文件块及其对应位置信息和验证信息的空间已满;在请求从缓存中重新发送验证失败的文件块及其对应的验证信息失败的情况下,请求根据验证失败的文件块的位置信息重新从待处理的文件中拆分出该文件块。
其中,在预定条件中,缓存中保留已经发送过的文件块及其对应的位置信息和验证信息的时长超过阈值,阈值可以是缓存预先设置了可以保存各个文件块及其对应的位置信息和验证信息的预定时间段,例如,10分钟,若某一个文件块在缓存中保留的时长超出了该阈值,则可以将缓存中保留的文件块及其对应的信息删除,通过该实施方式,可以保证缓存能实时更新文件块的内容,不会造成传输文件块出现堵塞的情况。
可选的,在预定条件中,收到文件块接收方确认已经收到该文件块的信息可以表示的是,接收设备在接收到相应的文件块及其对应的位置信息和验证信息后,利用该验证信息确认传输的文件块成功时,可以将确认传输文件块成功的信息返回到缓存中,若缓存接收到该确认信息,则可以删除保留的文件块及其信息。通过该实施方式,可以让缓存能及时的了解到传输文件块是否成功,若成功,则可以及时的删除文件块及其其他信息,若失败,则可以重新传输文件块及其对应的位置信息和验证信息。
可选的,预定条件中在缓存中预留的用于保留已经发送过的文件块及其对应位置信息和验证信息的空间已满,可以是每个缓存可以保留的文件块及其对应位置信息和验证信息是有限的,每个缓存可以保留的文件块及其对应位置信息和验证信息也可以有一个限定值,例如,每个缓存可以保留50M的文件块,若缓存的文件块的大小超出该限定值,则可以将保留时间最长的文件块及其对应位置信息和验证信息删除。通过上述实施方式,可以及时的更新传输过的文件块及其对应位置信息和验证信息内容,从而保证了传输文件块的安全性。
另一种可选的实施方式,在请求从缓存中重新发送验证失败的文件块及其对应的验证信息失败的情况下,请求根据验证失败的文件块的位置信息重新从待处理的文件中拆分出该文件块。可以是在接收端接收到文件块及其验证信息后,通过验证信息验证该文件块传输失败时,告知缓存重新发送该文件块,若缓存发送该文件块失败,则可以根据传输缓存传输的位置信息查询到该文件块在待处理的文件的位置,并告知文件重新拆分出该文件块,并将该文件块重新放置在缓存中,通过缓存到达接收端。其中,若缓存发送的文件块成功,则不需要告知待处理的文件重新拆分文件块。
可选的,从缓存中读取文件块及其对应的位置信息和验证信息并进行发送包括:将多个文件块组成一个文件块组,为该文件块组生成验证信息,发送文件块组及对应的验证信息;接收发送的文件块并根据文件块对应的验证信息进行验证包括:在根据文件块组的验证信息对文件块组的验证通过之后,不再对该文件块组中的每个文件块进行验证;在该文件块组的验证失败之后,对文件块组中的每个文件块进行验证,查找到验证失败的文件块并请求重传。
在上述的实施方式中,从缓存中读取各个文件块及其对应的位置信息和验证信息之后,可以将各个文件块组合,从而形成一个文件块组,该文件块组可以是传输成功的各个文件块组合在一起的,文件块组可以对应有一个验证信息,每个文件块都可以有一个相应的位置信息,在生成了文件块组后,可以将该文件块组及其对应的验证信息发送到接收端中。通过上述实施方式,可以根据文件块组的验证信息对文件块组进行验证,若验证成功,则可以不用对文件块组中的各个文件块进行验证;若验证失败,则需要对文件块组中的各个文件块进行验证,在对每个文件块进行验证之后,可以得到验证失败的文件块,并将验证失败的文件块的信息发送到缓存中,请求缓存重新发送该文件块。
另一种可选的实施方式,块大小为预先配置的或者根据接收文件块的接收方的可用资源情况确定的。其中,在预先配置文件块的大小时,可以根据缓存能接收文件资源的能力或者接收端可以接收文件资源的能力确定的,每个缓存或接收端可以处理文件都有一个阈值,例如,缓存一次可以缓存10M,则在拆分文件块时,拆分出的文件块的大小不可以超出该阈值。可选的,在根据接收方的可用资源确定文件块的大小时,可以是接收方(即接收端)每隔一个预定时间段返回一次可用资源的信息,文件预处理端在拆分文件时,可以根据接收方返回的可用资源的信息确定拆分文件块的大小,例如,接收方返回可以接收10M的文件,则在拆分文件块时,拆分出的文件块的大小不可以超过10M。
可选的,在将待处理的文件按照块大小拆分成多个文件块,并生成每个文件块对应的位置信息之前,该方法还包括:获取接收方发送的文件处理信息,其中,文件处理信息包括接收方可处理文件块的大小和数量,可处理文件块的大小为接收方每次可接收的文件块的大小,文件块的数量为接收方每次可接收的文件块组中包含的文件块的数量;基于接收方的可处理文件块的大小,将待处理的文件拆分成多个文件块,并生成每个文件块对应的位置信息。
即在上述实施方式中,在拆分待处理文件之前,可以向接收端发送一个询问信息,该询问信息可以是询问接收端可以处理的文件块的数量和大小,接收端在接收到该询问后,可以将对应的文件块数量和大小的信息发送到文件预处理端中,文件预处理端在拆分时,可以基于该信息将待处理的文件拆分成多个文件块,文件块的大小可以是接收方发送来的大小信息。
另一种可选的实施方式,在将每个文件块以及该文件块对应的位置信息和验证信息放置到缓存中等待发送时,包括:基于接收方可处理文件块的数量,将预定数量的文件块以及文件块对应的位置信息和验证信息放置到缓存中等待发送,其中,预定数量为接收方可处理文件块的数量。
其中,在拆分待处理文件后,可以将拆分出的文件块放置在缓存中,在放置之前,可以根据接收方发送的可处理文件块的数量,将对应数量的文件块放置在缓存中,以让接收方能够接收对应数量的文件块,根据上述的拆分文件块的大小,需要处理的文件块的大小和数量都在接收方可以处理的能力范围内。
图2是根据本发明实施例的另一种可选的文件传输处理系统的示意图,如图2所示,该系统可以由文件预处理端21、配置端22、发送端23、缓存端24、接收端25和数据存储端26组成。在该实施方式中,缓存文件块的操作可以通过线程进行。
可选的,文件预处理端根据文件内容(即上述的待处理的文件)生成一个指纹(即上述的验证信息),同时对文件进行预处理,在该实施方式中,预处理可以为上述实施例的拆分文件块的操作。这里,可以按照配置的文件块的大小读取内容,并生成文件块内的指纹,同时记录文件内容的地址(即上述实施方式的位置信息)。
可选的,在对文件进行预处理后,可以将文件块和地址信息加入到分布式配置库。
另一种可选的实施方式,可以按照文件块的大小、接收端的数量、以及网络宽带的线程数,确定出与文件块对应的线程的数量,然后,接收多线程文件块,同时进行块内容的传送。可选的,接收端可以接收文件块,根据接收端的数量以及接收端接收文件块的资源能力,可以确定出接收文件块的接收端的数量;同时,网络带宽的线程数可以是能够传输文件块的线程的数量,在将文件放置在线程中进行传输之前,需要接收端返回可以接收文件块的接收端的数量信息,线程需要返回能后传输文件块的线程数量的信息,发送端可以根据返回的接收端的数量信息和线程数量的信息得到能够发送文件块的数量的信息,从而合理的发送各个文件块。
其中,缓存端对正在传送的多线程和块内容进行缓存,防止传输文件块失败,若传输文件块失败,则可以告知缓存端将缓存的文件块重新发送出去。
可选的,接收端对分布式配置库中文件块启动多线程接收,同时进行块内容接收,并对接收到的文件块的内容进行检验,检验出文件块对应的指纹信息是否正确。如果根据指纹信息检验出各个文件块内容正确,接收端可以对分布式配置库中文件块进行组合,得到完整的文件。
可选的,可以通过数据存储端对校验后正确的块内容和指纹进行分散的块文件存储和对组合完成的文件进行存储。
通过上述实施方式,可以通过文件预处理端21将待处理的文件按照块大小拆分成多个文件块,并生成每个文件块对应的地址信息,其中,地址信息用于记录该文件块在文件中的位置,然后,可以根据拆分出的每个文件块的内容生成该文件块对应的指纹信息,其中,指纹信息用于对该文件块内容的完整性进行验证,并通过发送端23将每个文件块以及该文件块对应的地址信息和指纹信息放置到线程中等待发送,然后,可以通过接收端25接收各个线程中的文件块及其对应的地址信息和指纹信息,可以通过数据存储端26保存组合后的文件和各个文件块。通过上述实施方式,可以将待处理的文件分成多个文件块,再将各个文件块发送出去,通过验证的方式验证各个文件块的信息是否正确,从而将各个文件块组合起来形成一个完整的文件,这样通过多个线程传输文件块的方式,避免了传输大文件时所浪费的时间,大大提高了传输文件时的效率。从而解决传输大文件的效率低的技术问题。
图3是根据本发明实施例的另一种可选的文件传输处理装置的示意图,如图3所示,该装置包括:拆分单元31,用于将待处理的文件按照块大小拆分成多个文件块,并生成每个文件块对应的位置信息,其中,位置信息用于标识该文件块在文件中的位置;生成单元32,用于根据每个文件块的内容生成该文件块对应的验证信息,其中,验证信息用于对该文件块内容的完整性进行验证;放置单元33,用于将每个文件块以及该文件块对应的位置信息和验证信息放置到缓存中等待发送;读取单元34,用于从缓存中读取文件块及其对应的位置信息和验证信息并进行发送;接收单元35,用于接收发送的文件块并根据文件块对应的验证信息进行验证;组合单元36,用于对验证通过的文件块根据对应的位置信息进行组合得到待保存文件;保存单元37,用于保存待保存文件。
通过上述实施方式,可以通过拆分单元31将待处理的文件按照块大小拆分成多个文件块,并通过生成单元32生成每个文件块对应的位置信息,其中,位置信息用于标识该文件块在文件中的位置,然后,可以根据拆分出的每个文件块的内容生成该文件块对应的验证信息,其中,验证信息用于对该文件块内容的完整性进行验证,并通过放置单元33将每个文件块以及该文件块对应的位置信息和验证信息放置到缓存中等待发送,然后,可以通过读取单元34从缓存中读取文件块及其对应的位置信息和验证信息,并发送该文件块及其对应的位置信息以及验证信息,可以通过接收单元35接收发送的文件块并根据文件块对应的验证信息对该文件块进行验证,对验证通过的文件块,可以通过组合单元36根据对应的位置信息进行组合得到待保存文件,可以通过保存单元37保存该待保存文件。通过上述实施方式,可以将待处理的文件分成多个文件块,再将各个文件块发送,通过验证的方式验证各个文件块的信息是否正确,从而将各个文件块组合起来形成一个完整的文件,这样通过传输多个文件块的方式,避免了传输大文件时所浪费的时间,大大提高了传输文件的效率。从而解决传输大文件的效率低的技术问题。
可选的,该装置还包括:保留单元,用于从缓存中读取文件块及其对应的位置信息和验证信息进行发送之后,在缓存中保留已经发送的文件块及其对应的位置信息和验证信息,在满足预定条件之后,在缓存中删除已经发送的文件块及其对应的位置信息和验证信息;装置还包括:请求单元,用于在对接收到的文件块使用对应的验证信息进行验证失败的情况下,请求从缓存中重新发送验证失败的文件块及其对应的验证信息。
另一种可选的实施方式,保留单元包括以下至少之一:保留模块,用于在缓存中保留已经发送过的文件块及其对应的位置信息和验证信息的时长超过阈值、收到文件块接收方确认已经收到该文件块的信息、在缓存中预留的用于保留已经发送过的文件块及其对应位置信息和验证信息的空间已满;请求模块,用于在请求从缓存中重新发送验证失败的文件块及其对应的验证信息失败的情况下,请求根据验证失败的文件块的位置信息重新从待处理的文件中拆分出该文件块。
其中,读取单元包括:发送模块,用于将多个文件块组成一个文件块组,为该文件块组生成验证信息,发送文件块组及对应的验证信息;接收单元包括:验证模块,用于在根据文件块组的验证信息对文件块组的验证通过之后,不再对该文件块组中的每个文件块进行验证;查找模块,用于在该文件块组的验证失败之后,对文件块组中的每个文件块进行验证,查找到验证失败的文件块并请求重传。
上述实施方式中,块大小可以为预先配置的或者根据接收文件块的接收方的可用资源情况确定的。
可选的,该装置还包括:获取单元,用于在将待处理的文件按照块大小拆分成多个文件块,并生成每个文件块对应的位置信息之前,获取接收方发送的文件处理信息,其中,文件处理信息包括接收方可处理文件块的大小和数量,可处理文件块的大小为接收方每次可接收的文件块的大小,文件块的数量为接收方每次可接收的文件块组中包含的文件块的数量;基于接收方的可处理文件块的大小,将待处理的文件拆分成多个文件块,并生成每个文件块对应的位置信息;基于接收方的可处理文件块的大小,将待处理的文件拆分成多个文件块,并生成每个文件块对应的位置信息。
另一种可选的实施方式,放置单元包括:放置模块,用于基于接收方可处理文件块的数量,将预定数量的文件块以及文件块对应的位置信息和验证信息放置到缓存中等待发送,其中,预定数量为接收方可处理文件块的数量。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (5)
1.一种文件传输处理方法,其特征在于,包括:
将待处理的文件按照块大小拆分成多个文件块,并生成每个文件块对应的位置信息,其中,所述位置信息用于标识该文件块在所述文件中的位置;
根据每个文件块的内容生成该文件块对应的验证信息,其中,所述验证信息用于对该文件块内容的完整性进行验证,所述验证信息包括下述至少之一:文件块的大小信息和文件块的指纹信息;
将所述每个文件块以及该文件块对应的位置信息和验证信息放置到缓存中等待发送;
从所述缓存中读取文件块及其对应的位置信息和验证信息并进行发送;
接收发送的文件块并根据文件块对应的验证信息进行验证;
对验证通过的文件块根据对应的位置信息进行组合得到待保存文件;
保存所述待保存文件,
其中,在将待处理的文件按照块大小拆分成多个文件块,并生成每个文件块对应的位置信息之前,所述文件传输处理方法还包括:获取所述接收方发送的文件处理信息,其中,所述文件处理信息包括接收方可处理文件块的大小和文件块的数量,所述可处理文件块的大小为所述接收方每次可接收的文件块的大小,所述文件块的数量为所述接收方每次可接收的文件块组中包含的文件块的数量;基于所述接收方的可处理文件块的大小,将待处理的文件拆分成多个文件块,并生成每个文件块对应的位置信息,
从所述缓存中读取文件块及其对应的位置信息和验证信息进行发送之后,所述方法还包括:在所述缓存中保留已经发送的文件块及其对应的位置信息和验证信息,在满足预定条件之后,在所述缓存中删除已经发送的文件块及其对应的位置信息和验证信息;在对接收到的文件块使用对应的验证信息进行验证失败的情况下,所述方法还包括:请求从所述缓存中重新发送验证失败的文件块及其对应的验证信息,
满足所述预定条件包括以下至少之一:在所述缓存中保留已经发送过的文件块及其对应的位置信息和验证信息的时长超过阈值、收到文件块接收方确认已经收到该文件块的信息、在所述缓存中预留的用于保留已经发送过的文件块及其对应位置信息和验证信息的空间已满;在请求从所述缓存中重新发送验证失败的文件块及其对应的验证信息失败的情况下,请求根据验证失败的文件块的位置信息重新从所述待处理的文件中拆分出该文件块。
2.根据权利要求1所述的方法,其特征在于,从所述缓存中读取文件块及其对应的位置信息和验证信息并进行发送包括:
将多个文件块组成一个文件块组,为该文件块组生成验证信息,发送文件块组及对应的验证信息;
接收发送的文件块并根据文件块对应的验证信息进行验证包括:在根据文件块组的验证信息对所述文件块组的验证通过之后,不再对该文件块组中的每个文件块进行验证;在该文件块组的验证失败之后,对所述文件块组中的每个文件块进行验证,查找到验证失败的文件块并请求重传。
3.根据权利要求1或2中任一项所述的方法,其特征在于,所述块大小为预先配置的或者根据接收文件块的接收方的可用资源情况确定的。
4.根据权利要求1所述的方法,其特征在于,将所述每个文件块以及该文件块对应的位置信息和验证信息放置到缓存中等待发送包括:
基于所述接收方可处理文件块的数量,将预定数量的文件块以及所述文件块对应的位置信息和验证信息放置到缓存中等待发送,其中,所述预定数量为所述接收方可处理文件块的数量。
5.一种文件传输处理装置,其特征在于,包括:
拆分单元,用于将待处理的文件按照块大小拆分成多个文件块,并生成每个文件块对应的位置信息,其中,所述位置信息用于标识该文件块在所述文件中的位置;
生成单元,用于根据每个文件块的内容生成该文件块对应的验证信息,其中,所述验证信息用于对该文件块内容的完整性进行验证,所述验证信息包括下述至少之一:文件块的大小信息和文件块的指纹信息;
放置单元,用于将所述每个文件块以及该文件块对应的位置信息和验证信息放置到缓存中等待发送;
读取单元,用于从所述缓存中读取文件块及其对应的位置信息和验证信息并进行发送;
接收单元,用于接收发送的文件块并根据文件块对应的验证信息进行验证;
组合单元,用于对验证通过的文件块根据对应的位置信息进行组合得到待保存文件;
保存单元,用于保存所述待保存文件,
其中,所述文件传输处理装置还包括:获取单元,用于在将待处理的文件按照块大小拆分成多个文件块,并生成每个文件块对应的位置信息之前,获取接收方发送的文件处理信息,其中,文件处理信息包括接收方可处理文件块的大小和数量,可处理文件块的大小为接收方每次可接收的文件块的大小,文件块的数量为接收方每次可接收的文件块组中包含的文件块的数量;基于接收方的可处理文件块的大小,将待处理的文件拆分成多个文件块,并生成每个文件块对应的位置信息;基于接收方的可处理文件块的大小,将待处理的文件拆分成多个文件块,并生成每个文件块对应的位置信息,
所述装置还包括:保留单元,用于从所述缓存中读取文件块及其对应的位置信息和验证信息进行发送之后,在所述缓存中保留已经发送的文件块及其对应的位置信息和验证信息,在满足预定条件之后,在所述缓存中删除已经发送的文件块及其对应的位置信息和验证信息;所述装置还包括:请求单元,用于在对接收到的文件块使用对应的验证信息进行验证失败的情况下,请求从所述缓存中重新发送验证失败的文件块及其对应的验证信息,
所述保留单元包括以下至少之一:保留模块,用于在所述缓存中保留已经发送过的文件块及其对应的位置信息和验证信息的时长超过阈值、收到文件块接收方确认已经收到该文件块的信息、在所述缓存中预留的用于保留已经发送过的文件块及其对应位置信息和验证信息的空间已满;请求模块,用于在请求从所述缓存中重新发送验证失败的文件块及其对应的验证信息失败的情况下,请求根据验证失败的文件块的位置信息重新从所述待处理的文件中拆分出该文件块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710037235.1A CN106790653B (zh) | 2017-01-17 | 2017-01-17 | 文件传输处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710037235.1A CN106790653B (zh) | 2017-01-17 | 2017-01-17 | 文件传输处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106790653A CN106790653A (zh) | 2017-05-31 |
CN106790653B true CN106790653B (zh) | 2020-04-24 |
Family
ID=58943375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710037235.1A Active CN106790653B (zh) | 2017-01-17 | 2017-01-17 | 文件传输处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106790653B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109617945A (zh) * | 2018-11-02 | 2019-04-12 | 北京达佳互联信息技术有限公司 | 文件传输的发送方法、发送装置、电子设备及可读介质 |
CN109815164A (zh) * | 2018-12-18 | 2019-05-28 | 航天信息股份有限公司 | 一种实现设备离线状态下的数据缓存的方法及系统 |
CN110138867A (zh) * | 2019-05-17 | 2019-08-16 | 哈工大机器人(山东)智能装备研究院 | 文件传输和接收方法、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102629258A (zh) * | 2012-02-29 | 2012-08-08 | 浪潮(北京)电子信息产业有限公司 | 重复数据删除方法和装置 |
CN103067129A (zh) * | 2012-12-24 | 2013-04-24 | 中国科学院深圳先进技术研究院 | 网络数据传输方法和系统 |
CN103106068A (zh) * | 2013-02-28 | 2013-05-15 | 江苏物联网研究发展中心 | 物联网大数据快速校验方法 |
CN104468843A (zh) * | 2014-12-31 | 2015-03-25 | 浪潮软件股份有限公司 | 一种文件上传方法及装置 |
CN104661042A (zh) * | 2013-11-25 | 2015-05-27 | 乐视网信息技术(北京)股份有限公司 | 一种传输流的传输方法、装置和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814969A (zh) * | 2009-02-24 | 2010-08-25 | 优必达科技有限公司 | 降低比特流的方法、降低比特流的系统及电子装置 |
CN101980168A (zh) * | 2010-11-05 | 2011-02-23 | 北京云快线软件服务有限公司 | 一种动态分块传输方法及装置 |
CN102571966B (zh) * | 2012-01-16 | 2014-10-29 | 北大方正集团有限公司 | 一种大型xml文件的网络传输方法 |
CN102685266B (zh) * | 2012-05-14 | 2015-04-15 | 中国科学院计算机网络信息中心 | 区文件签名方法及系统 |
CN104182487A (zh) * | 2014-08-11 | 2014-12-03 | 浪潮软件股份有限公司 | 一种支持多种存储方式的统一存储方法 |
-
2017
- 2017-01-17 CN CN201710037235.1A patent/CN106790653B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102629258A (zh) * | 2012-02-29 | 2012-08-08 | 浪潮(北京)电子信息产业有限公司 | 重复数据删除方法和装置 |
CN103067129A (zh) * | 2012-12-24 | 2013-04-24 | 中国科学院深圳先进技术研究院 | 网络数据传输方法和系统 |
CN103106068A (zh) * | 2013-02-28 | 2013-05-15 | 江苏物联网研究发展中心 | 物联网大数据快速校验方法 |
CN104661042A (zh) * | 2013-11-25 | 2015-05-27 | 乐视网信息技术(北京)股份有限公司 | 一种传输流的传输方法、装置和系统 |
CN104468843A (zh) * | 2014-12-31 | 2015-03-25 | 浪潮软件股份有限公司 | 一种文件上传方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106790653A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106372868B (zh) | 一种对写入区块链的交易数据的验证方法和装置 | |
CN107819828B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN101453478B (zh) | 一种在文件传输中的完整性校验方法 | |
CN105847447B (zh) | 消息推送方法和装置 | |
CN106790653B (zh) | 文件传输处理方法及装置 | |
CN106534261A (zh) | 数据写入方法、装置及系统 | |
CN110989922B (zh) | 一种分布式数据存储方法及系统 | |
CN102890631A (zh) | 基于持久化消息队列传输消息的方法及消息传输装置 | |
CN103685337A (zh) | 共享文件的方法、终端设备及中转服务器 | |
CN111262822B (zh) | 文件存储方法、装置、区块链节点和系统 | |
US10681115B2 (en) | Multimedia data transmission method and device | |
CN103259797A (zh) | 数据文件传输方法及平台 | |
CN113301568A (zh) | 用于配网的方法、装置和智能家居设备 | |
CN102118451B (zh) | 用户资源的上传处理方法及装置 | |
CN112887196A (zh) | 消息发送方法、系统、装置、设备及可读存储介质 | |
CN114553863B (zh) | 文件传输方法及装置、存储介质和电子设备 | |
CN111200637B (zh) | 一种缓存的处理方法及装置 | |
CN111752803A (zh) | 埋点数据收集上报的方法、装置及介质 | |
CN105592083A (zh) | 终端利用令牌访问服务器的方法和装置 | |
CN101453479A (zh) | 一种快速的文件传输系统 | |
CN1758801B (zh) | 移动通信终端中的消息发送设备和方法 | |
CN108965463B (zh) | 一种文件传输方法、装置和系统 | |
CN115412609B (zh) | 一种业务处理方法、装置、服务器及存储介质 | |
CN114466004A (zh) | 一种文件传输方法、系统、电子设备及存储介质 | |
CN101499920A (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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 402, room 8, 200336 Tian Shan Road, Shanghai, Changning District Patentee after: Boyan Hongzhi Technology (Shanghai) Co., Ltd Address before: 402, room 8, 200336 Tian Shan Road, Shanghai, Changning District Patentee before: SHANGHAI HONGZHI INFORMATION TECHNOLOGY Co.,Ltd. |