CN114338651A - 文件传输方法、装置、电子设备及可读存储介质 - Google Patents
文件传输方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN114338651A CN114338651A CN202111619207.3A CN202111619207A CN114338651A CN 114338651 A CN114338651 A CN 114338651A CN 202111619207 A CN202111619207 A CN 202111619207A CN 114338651 A CN114338651 A CN 114338651A
- Authority
- CN
- China
- Prior art keywords
- file
- fragment
- fragmented
- files
- transmission
- 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.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 242
- 238000000034 method Methods 0.000 title claims abstract description 66
- 239000012634 fragment Substances 0.000 claims abstract description 203
- 238000013467 fragmentation Methods 0.000 claims description 18
- 238000006062 fragmentation reaction Methods 0.000 claims description 18
- 230000011218 segmentation Effects 0.000 claims description 18
- 238000012546 transfer Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 abstract description 10
- 238000012544 monitoring process Methods 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000000586 desensitisation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种文件传输方法、装置、电子设备及可读存储介质,涉及数据传输技术领域。该方法包括:若待传输文件所需的存储空间大于第一阈值时,按照预设大小将所述待传输文件切分为多个分片文件;根据多个分片文件从线程池中确定用于传输文件的线程;在使用线程对分片文件进行传输时,先判断该分片文件是否为重复传输文件;如果是重复传输文件,根据获取的重传信息,确定需要重传的文件,并进行传输;如果不是重复传输文件,使用每个线程传输一个分片文件。本申请实施例中的方案在文件交换过程中,由于采用分片多线程传输方式,能够缩短传输时间、针对传输中断情况设置重传方案,从而能够提高传输性能、可用性和可靠性。
Description
技术领域
本申请涉及数据传输技术领域,具体而言,本申请涉及一种文件传输方法、装置、电子设备及可读存储介质。
背景技术
现有技术中进行数据传输交换时,由于同一数据文件的传输采用单线程,从而会导致数据传输时间长、传输中断情况,进而带来传输性能低、可用性和可靠性差等问题。
发明内容
本申请实施例提供了一种文件传输方法、装置、电子设备及可读存储介质,可以解决文件交换过程中传输时间长、可用性和可靠性差的问题。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种文件传输方法,该方法包括:
若待传输文件所需的存储空间大于第一阈值时,按照预设大小将所述待传输文件切分为多个分片文件;
根据多个分片文件从线程池中确定用于传输文件的线程;
在使用线程对分片文件进行传输时,先判断该分片文件是否为重复传输文件;
如果是重复传输文件,根据获取的重传信息,确定需要重传的文件,并进行传输;
如果不是重复传输文件,使用每个线程传输一个分片文件。
在一个可能的实现方式中,所述根据多个分片文件从线程池中确定用于传输文件的线程,包括:
当线程池中的所有线程传输文件所用的空间一样时,选取处于空闲状态的、数量等于分片文件总个数的线程,作为传输文件的线程;
当线程池中的所有线程传输文件所用的空间不一样时,选取传输分片文件所用的空间大于或者等于预设大小的、数量等于分片文件总个数的线程,作为传输文件的线程。
在另一个可能的实现方式中,当分片文件所需的存储空间大于线程传输文件所需的空间时,所述方法还包括:
根据线程所需的空间对分片文件进行分段,得到多个分段子文件;
使用线程将多个分段子文件按照该多个分段子文件的先后顺序,依次进行传输。
在又一个可能的实现方式中,当所述重传信息为接收到的来自文件接收方的传输出错信息,和/或,从本机日志中获取到的传输出错信息,其中,所述传输出错信息中包括重传位置标识,所述根据获取的重传信息,确定需要重传的文件,并进行传输,包括:
当所述重传位置标识指示目标分片文件的传输出错时,确定需要重传的文件为所述目标分片文件,并进行传输;
当重传位置标识指示目标分段子文件的传输出错时,确定需要重传的文件为所述目标分段子文件,以及所述目标分段子文件之后的所有分段子文件,并进行传输。
在又一个可能的实现方式中,所述当重传位置标识指示目标分段子文件的传输出错时,还包括:
当接收到的传输出错信息中的重传位置标识、与本机日志中的传输出错信息中的重传位置标识不一致时,选取第一重传位置标识对应的分段子文件作为需要重传的文件中的目标分段子文件,其中,所述第一重传位置标识为两个重传位置标识中重传位置标识对应的标识号较小的一个
在又一个可能的实现方式中,在使用线程对分片文件进行传输之前,所述方法还包括:
计算每个分片文件的文件标识,所述文件标识用于接收方对接收到的分片文件进行一致性检查。
根据本申请实施例的另一个方面,提供了一种文件组合方法,该方法包括:
接收来自发送方的文件;
若接收到的文件为多个分片文件,根据每个分片文件的分片信息,将多个分片文件进行组合,其中,所述每个分片文件的分配信息包括相应分片文件的索引;
若接收到的文件为多个分段子文件,根据每个分段子文件的分片信息和分段信息,将多个分段子文件进行组合,得到多个分片文件,再将得到的多个分片文件进行组合;
其中,所述每个分段子文件的分片信息包括相应分段子文件所属分片文件的索引,所述每个分段子文件的分段信息包括相应分段子文件的索引。
在一个可能的实现方式中,所述方法还包括:
在根据每个分片文件的分片信息,将多个分片文件进行组合时,若相邻两个分片文件的索引不是顺序连接的,向所述发送方发送传输出错信息;和/或,
在根据每个分段子文件的分片信息和分段信息,将多个分段子文件进行组合时,若相邻两个分段子文件的索引不是顺序连接的,向所述发送方发送传输出错信息;
其中,所述传输出错信息中包括重传位置标识,所述重传位置标识用于指示目标分片文件的传输出错,或者,用于指示目标分段子文件的传输出错。
根据本申请实施例的另一个方面,提供了一种文件传输装置,该装置包括:
处理模块,用于若待传输文件所需的存储空间大于第一阈值时,按照预设大小将所述待传输文件切分为多个分片文件;还用于根据多个分片文件从线程池中确定用于传输文件的线程;在使用线程对分片文件进行传输时,先判断该分片文件是否为重复传输文件;如果是重复传输文件,根据获取的重传信息,确定需要重传的文件;
传输模块,用于传输需要重传的文件;还用于如果不是重复传输文件,使用每个线程传输一个分片文件。
根据本申请实施例的另一个方面,提供了一种文件组合装置,该装置包括:
接收模块,用于接收来自发送方的文件;
执行模块,用于若接收到的文件为多个分片文件,根据每个分片文件的分片信息,将多个分片文件进行组合,其中,所述每个分片文件的分配信息包括相应分片文件的索引;还用于若接收到的文件为多个分段子文件,根据每个分段子文件的分片信息和分段信息,将多个分段子文件进行组合,得到多个分片文件,再将得到的多个分片文件进行组合;
其中,所述每个分段子文件的分片信息包括相应分段子文件所属分片文件的索引,所述每个分段子文件的分段信息包括相应分段子文件的索引。
根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序处理器执行计算机程序以实现上述的文件传输方法的步骤。
根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的文件传输方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例中,在文件交换过程中,由于采用分片多线程传输方式,能够缩短传输时间、针对传输中断情况设置重传方案,从而能够提高传输性能、可用性和可靠性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种文件传输方法的流程示意图;
图2为本申请实施例提供的一种文件组合方法的流程示意图;
图3为本申请另一实施例提供的一种文件传输方法的流程示意图;
图4为用于实现本申请实施例提供的一种文件传输方法的系统结构示意图;
图5为本申请实施例提供的一种文件传输方法的流程示意图;
图6为本申请实施例提供的一种文件传输装置的结构示意图;
图7为本申请实施例提供的一种文件组合装置的结构示意图;
图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
集中式系统,是由一台或多台主计算机组成的中心节点,数据集存储于这个中心节点中,并且整个系统的所有业务单元都集中部署在这个中心节点上,系统的所有功能均由其集中处理。也就是说,在集中式系统中,每个终端或客户端仅仅负责数据的录入和输出,而数据的存储与控制处理完全交由主机来完成。
分布式系统,是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。
分布式系统中的多台计算机都会在空间上随意分布,这些计算机可能被放在不同的机柜上,也可能在不同的机房中,甚至分布在不同的城市。同时,其分布情况也会随时变动。
分布式系统中的计算机没有主/从之分,既没有控制整个系统的主机,也没有被控制的从机,组成分布式系统的所有节点都是对等的。副本是分布式系统最常见的概念之一,指的是分布式系统对数据和服务提供的一种冗余方式。在常见的分布式系统中,为了对外提高可用的服务,往往会对数据和服务进行副本处理。数据副本是指在不同的节点上持久化同一份数据,当某一个节点上存储的数据丢失时,可以从副本上读取到该数据,这是解决分布式系统数据丢失问题最为有效的手段。另一类副本是服务副本,指多个节点提供同样的服务,每个节点都有能力接收来自外部的请求并进行相应的处理。
在一个计算机网络中,程序运行过程中的并发性操作是非常常见的行为,例如,同一个分布式系统的多个节点,可能会并发地操作一些共享的资源,诸如数据库或分布式存储等。
集中式系统的计算、存储都在一套硬件体系内,无需面对网络分区(网络无法连接)问题,能很容易实现高一致性,并通过存储的冗余和软硬件结合的高度优化,达到了较高的可靠性。但在可用性方面,由于集中式架构在设计上是一个单点,单机不可用即全部不可用,所以集中式的系统只能在停机维护时暂停业务,因此无法适用很多互联网场景。
由于分布式架构设计,天然就有多个节点,很容易通过主备、冗余、哈希等手段实现计算和存储冗余备份,从而实现高可用。
现有技术中进行数据传输交换的方案,由于同一数据文件的传输采用单线程,从而会导致数据传输交换会出现传输时间长、传输中断情况,进而带来传输性能低、可用性和可靠性差等问题。
本申请提供的文件传输方法、装置、电子设备及计算机可读存储介质,旨在解决现有技术的如上技术问题。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
本申请实施例中提供了一种文件传输方法,如图1所示,该方法可以应用于发送方,下文中以客户端作为发送方,以服务端作为接收方为例,对本申请实施例的技术方案进行描述,该方法包括:
S101、若待传输文件所需的存储空间大于第一阈值时,按照预设大小将所述待传输文件切分为多个分片文件。
在该实施例中,当发送方发送待传输的文件时,首先,判断该文件的大小是否满足条件,例如:大于第一阈值;其次,如果判定结果为该文件大于第一阈值,则可以将该文件按照预设大小,例如:按照第二阈值进行分片。
具体的,在该实施例中,上述第一阈值、第二阈值可以是在此次发送待传输的文件之前,通过发送端上的文件传输界面配置的,供此次发送待传输的文件时使用,也可以是预先设置的,在每次发送待传输的文件时,直接调用。例如:第一阈值可以为1GB,第二阈值为500MB。
需要说明的是,在该实施例中,根据500MB划分待传输文件时,最后一个分片文件可能不足500BM。
还需要说明的是,上述1GB、500MB仅为示例,并不对本申请实施例的技术方案构成任何限定。显然,还可以为其他数值,可以根据实际情况进行配置或设置,本申请实施例对此不做限定。
S102、根据多个分片文件从线程池中确定用于传输文件的线程。
具体的,在该实施例中,根据多个分片文件从线程池中确定用于传输文件的线程时,可以从线程池中选择处于空闲状态的线程,而且选择出的线程的个数与切分出的分片文件的个数相同。
一种可能的实现方式是,当线程池中的所有线程传输文件所用的空间一样时,选取处于空闲状态的、数量等于分片文件总个数的线程,作为传输文件的线程。
另一种可能的实现方式是,当线程池中的所有线程传输文件所用的空间不一样时,选取传输分片文件所用的空间大于或者等于预设大小的、数量等于分片文件总个数的线程,作为传输文件的线程。
S103、在使用线程对分片文件进行传输时,先判断该分片文件是否为重复传输文件。
具体的,在该实施例中,在使用线程对分片文件进行传输时,需要基于是否可以获取到传输出错信息来判断分片文件是否为重复传输文件,如果可以获取到传输出错信息,则确定分配文件为重复传输文件,否则,不为重复传输文件。
S104、如果是重复传输文件,根据获取的重传信息,确定需要重传的文件,并进行传输。
具体的,在该实施例中,可以通过接收来自文件接收方的传输出错信息,和/或,从本机日志中获取传输出错信息的方式来获取重传信息,其中,传输出错信息中包括重传位置标识,可以基于重传位置标识,确定需要重传的文件,并进行传输。
S105、如果不是重复传输文件,使用每个线程传输一个分片文件。
在该实施例中,可以由线程池的监控线程为多个分片文件分配线程,每个分片文件分配一个线程,将多个分片文件采用多个线程并发。在多个分片文件的传输过程中,若某一个分片文件为重复传输文件,根据获取的重传信息,确定需要重传的文件,并进行传输。若某一个分片文件不为重复传输文件,则从该分片文件的第1个字节开始传输。
例如:待传输文件的大小为1.5GB(即1536MB),按照500MB分片得到的分片文件1的起始位置为0MB,结束位置为500MB,分片文件2的起始位置为501MB,结束位置为1000MB,分片文件3的起始位置为1001MB,结束位置为1500MB,分片文件4的起始位置为1501MB,结束位置为1536MB。
假设某一个线程当前正在传输的分片文件为上述分片文件3,若未接收到来自文件接收方的指示该分片文件3传输出错的重传信息,也未从本机日志中获取到指示该分片文件3传输出错的重传信息,则该分片文件3不为重复传输文件,则从第1001MB的第1个字节开始传输。若接收到来自文件接收方的指示该分片文件3传输出错的重传信息,或者,从本机日志中获取到指示该分片文件3传输出错的重传信息,则该分片文件3为重复传输文件,则要确定该分片文件3中需要重传的数据,例如:重传信息指示第437段数据的传输出错,则从第437段数据开始到第500段数据结束的这64段数据为该分片文件3中需要重传的数据。
也就是说,在该实施例中,针对加入发送线程池中的每个线程,都需要判断通过该线程传输的分片文件是否为重复传输文件,若是,则要确定出需要重传的那部分数据,仅对该部分数据进行传输,从而可以有效的提高IO性能,节省带宽。
应理解,本申请实施例提供的方案采用分布式部署系统,上文中的发送方和接收方为部署于传输服务集群中的任意两个进行文件交互的文件传输服务节点,下文中以客户端作为发送方,以服务端作为接收方为例,对本申请实施例的技术方案进行描述。对本申请实施例中的文件大小和类型不做任何限定。
需要说明的是,在该实施例中,客户端也可以称为源端,在其他可选实施例中,客户端也可以用于接收文件。在该实施例中,服务端也可以称为目标端,在其他可选实施例中,服务端也可以用于发送待传输的文件。
假设:有10个并发客户端,每个客户端发送一个文件。在现有技术中,由于传输一个文件是采用单线程传输方式,例如:使用单线程传输一个较大的文件A需要1小时,文件传输时间长;而本案中采用分片的方式进行传输,每个分片的传输都是相互独立的,单独占用一个传输线程,假设将客户端要传输的一个较大的文件A分为10个分片后采用10个线程发送,每个分片采用1个线程发送,则传输文件A至多用6分钟。就10个并发客户端中的每一个客户端而言,由于采用了分片后多线程传输的方式,相对现有技术中的文件传输过程,大大地缩短了传输时长,而且可以通过重传应对传输中断的情况。
另外,分布式的优势在于一个文件传输任务可以交给不同的传输服务节点进行执行,例如:可以通过传输服务节点A、B执行,也可以通过传输服务节点执行,如果传输服务节点A、B在执行任务的时候发生了故障,则可以把任务分配给分布式系统中当前处于空闲态或者CPU使用率小于预设值(例如:40%)的传输服务节点C、D重新执行。分片的优势在于进行一个文件传输任务时,可以对任务进行分解采用多线程并发进行处理。
因此,本申请提供的一种文件传输方案,相比现有技术,在文件交换过程中,由于采用分片多线程传输方式,能够缩短传输时间、针对传输中断情况设置重传方案,从而能够提高传输性能、可用性和可靠性。
本申请实施例中还提供了一种可能的实现方式,当分片文件所需的存储空间大于线程传输文件所需的空间时,上述方法还可以包括:
根据线程所需的空间对分片文件进行分段,得到多个分段子文件;
使用线程将多个分段子文件按照该多个分段子文件的先后顺序,依次进行传输。
具体的,在该实施例中,如果某一个分片文件所需的存储空间大于线程传输文件所需的空间时,可以将该分片文件根据线程所需的空间进行分段,得到多个分段子文件,再使用线程将多个分段子文件按照多个分段子文件的先后顺序,依次进行传输。例如:某一个分片文件a所需的存储空间为5MB,线程传输文件所需的空间为1MB,则将该分片文件a划分为分段子文件a1、a2、a3、a4、a5,并使用线程依次传输分段子文件a1、a2、a3、a4、a5。
本申请实施例中还提供了一种可能的实现方式,当所述重传信息为接收到的来自文件接收方的传输出错信息,和/或,从本机日志中获取到的传输出错信息,其中,所述传输出错信息中包括重传位置标识,上述步骤S104具体可以包括:
当所述重传位置标识指示目标分片文件的传输出错时,确定需要重传的文件为所述目标分片文件,并进行传输。
具体的,在该实施例中,如果在传输过程中,服务端并未接收到文件传输结束的标记信息,则会在等待超时后记录该文件或者分片的传输出错信息。
当重传位置标识指示目标分段子文件的传输出错时,确定需要重传的文件为所述目标分段子文件,以及所述目标分段子文件之后的所有分段子文件,并进行传输。
具体的,客户端在发送每个分段数据(分段子文件)后会等待服务端的反馈,如果反馈超时或者反馈某一分段数据出错则会重新尝试发送,在默认发尝试发送预设次数,例如:5次,均不成功后则发送终止,并记录出错的分段所在的位置信息,再次启动传输时从出错的位置重新发送,发生错误后服务端和客户端都会记录错误信息,客户端发送时优先从服务端获取其记录的段所在的位置信息,如果服务端没有记录则从客户端记录的信息中获取。
需要说明的是,在该实施例中,优先从服务端获取分片传输出错信息,可以更加准确的确定需要续传的文件。例如:客户端发送了一个分片文件中的第9段数据,服务端接收到了该第9段数据,超时未向客户端反馈,客户端则认为第9段数据的传输有误,记录第9段数据的位置,而通过查询服务端的日志可以发现已接收到第9段数据而未收到第10段数据,服务端认为第10段数据的传输有误,记录第10段数据的位置,显然,续传时从第10段数据开始,能更有效的节省带宽、IO性能。
需要说明的是,在该实施例中,客户端在向服务端发送文件时,可以同时发送该文件的相关信息,例如:文件的总长度,分片数量,每个分片的长度,每个分片中的分段数量,分段长度,每个分片的编号/索引,每个分片中分段的编号/索引中的至少一项,从而在服务端针对接收到的文件进行合并时,可以根据上述相关信息判断先后接收到的两段数据是否相连,并在确定不相连时,可以确定丢的是哪段数据。
如果在服务端和客户端都没有获取到记录的传输出错信息,则可以根据日志中与该文件相关的传输信息,确定服务端和客户端都执行成功的最后一段数据,并从服务端和客户端都执行成功的最后一段数据之后的第一段数据开始发送;如果没有获取到上述传输信息,则从开始的位置重新传输。
具体的,在该实施例中,如果从客户端和服务端都没有获取到分片传输出错信息,例如:突然断电的情况下,客户端和服务端都未来得及记录分片传输出错信息,则根据日志信息中记录的传输信息确定从客户端和服务端都执行成功的最后一段数据之后的数据开始续传,例如:客户端发送了某一分片文件中的第9段数据,且服务端接收到了该第9段数据,则从该分片文件的第10段数据开始续传;如果日志中也未记录,则重传该分片文件。
本申请实施例中还提供了一种可能的实现方式,所述当重传位置标识指示目标分段子文件的传输出错时,还包括:
当接收到的传输出错信息中的重传位置标识、与本机日志中的传输出错信息中的重传位置标识不一致时,选取第一重传位置标识对应的分段子文件作为需要重传的文件中的目标分段子文件,其中,所述第一重传位置标识为两个重传位置标识中重传位置标识对应的标识号较小的一个。
具体的,在该实施例中,当接收到的传输出错信息中的重传位置标识、与本机日志中的传输出错信息中的重传位置标识不一致时,为了确保所确定的需要重传的文件的准确性,选取两个重传位置标识中较小的表上号对应的分段子文件作为需要重传的文件中的目标分段子文件。由于多个分段子文件是按先后顺序传输的,因此,该目标分段子文件之后的所有分段子文件均需要重传。
例如:某一个分片文件a划分为分段子文件a1、a2、a3、a4、a5,接收到的传输出错信息中的重传位置标识对应的标识号为a2,本机日志中的传输出错信息中的重传位置标识对应的标识号为a3,则目标分段子文件为a2,需要重传的文件为分段子文件a2、a3、a4、a5。
本申请实施例中还提供了一种可能的实现方式,在使用线程对分片文件进行传输之前,方法还包括:
计算每个分片文件的文件标识,所述文件标识用于接收方对接收到的分片文件进行一致性检查。
具体的,在该实施例中,文件在传输前会先计算文件的文件标识,例如:哈希码(hashcode)、MD5值等,并在传输完成后对该hashcode进行检验,用于检验传输完成后的文件与传输之前的文件内容是否一致,否则认为该传输失败,需要重新发送。对于分片传输的文件,则会计算每一个分片的文件标识,并在传输之后进行校验,对出错的分片请求进行重新传输。
例如:待传输文件1在传输之前,计算得到的MD5值为12345,则将不会对待传输文件1做任何修改进行传输,在传输时,若待传输文件1大于1GB,则可以将待传输文件1按照每片长度500MB划分为分片文件11、分片文件12、分片文件13文件分片和分片文件14。客户端可以调用MD5算法获取待传输文件1的MD5值,若待传输文件1的MD5值是12345时,可以计算得到分片文件11、分片文件12、分片文件13文件分片和分片文件14的文件标识分别为12345.1、12345.2、12345.3和12345.4。
服务端在接收到待传输文件1的分片文件12后,若分片文件12的文件标识为12345.0,则其文件标识与传输之前计算的文件标识12345.2不一致,因此确定分片文件12需要重传。
服务端在接收到待传输文件1的分片文件11、分片文件12、分片文件13文件分片和分片文件14后,若文件标识为1234,则与传输之前计算的文件标识12345不一致,因此确定待传输文件1需要重传。
需要说明的是,在上述实施例中,客户端启用多线程传输文件之前,可以对各个分片文件进行加密,具体的,可以采用DES、AES、protobuf序列化、自定义序列化等加密算法中的一种或多种进行加密,从而确保数据传输的安全性。
还需要说明的是,在上述实施例中,客户端在传输文件时,可以针对待传输文件进行脱敏操作,若待传输文件较大,例如:大于2GB,则可以先对待传输文件进行压缩,再对压缩后的文件进行分片处理。
本申请实施例还提供了一种文件组合方法,如图2所示,该方法可以应用于接收方,该方法包括:
S201、接收来自发送方的文件。
S202、若接收到的文件为多个分片文件,根据每个分片文件的分片信息,将多个分片文件进行组合,其中,所述每个分片文件的分配信息包括相应分片文件的索引。
S203、若接收到的文件为多个分段子文件,根据每个分段子文件的分片信息和分段信息,将多个分段子文件进行组合,得到多个分片文件,再将得到的多个分片文件进行组合。
其中,所述每个分段子文件的分片信息包括相应分段子文件所属分片文件的索引,所述每个分段子文件的分段信息包括相应分段子文件的索引。
具体的,在该实施例中,服务端接收客户端以多线程文件传输方式传输的文件,如果接收到的是多个分片文件,则将接收到的分片文件按照各个分片文件的分片信息中的索引进行组合,例如:接收到的4个分片文件中各个分片文件的分片信息中的索引分别为11、12、13、14,则,将分片文件11、分片文件12、分片文件13、分片文件14依次进行组合。
如果接收到的是多个分段子文件,则将接收到的分段子文件按照各个分段子文件的分片信息和分段信息中的索引进行组合,例如:接收到的10个分段子文件中各个分段子文件的分片分段信息中的索引分别为11-1(表示该分段子文件为分片文件11中的第1个分段)、11-2、11-3、11-4、11-5、11-6、12-1、12-2、12-3、12-4,则,将分段子文件11-1、分段子文件11-2、分段子文件11-3、分段子文件11-4、分段子文件11-5依次进行组合得到分片文件11;将分段子文件12-1、分段子文件12-2、分段子文件12-3、分段子文件12-4依次进行组合得到分片文件12;再将分片文件11和分片文件12进行组合。
本申请实施例中还提供了一种可能的实现方式,在根据每个分片文件的分片信息,将多个分片文件进行组合时,若相邻两个分片文件的索引不是顺序连接的,向所述发送方发送传输出错信息;和/或,
在根据每个分段子文件的分片信息和分段信息,将多个分段子文件进行组合时,若相邻两个分段子文件的索引不是顺序连接的,向所述发送方发送传输出错信息;
其中,所述传输出错信息中包括重传位置标识,所述重传位置标识用于指示目标分片文件的传输出错,或者,用于指示目标分段子文件的传输出错。
具体的,在该实施例中,如果服务端接收到客户端以多线程文件传输方式传输的4分片文件,各个分片文件的分片信息中的索引分别为11、12、14、15,则,将分片文件11、分片文件12、分片文件14、分片文件15依次进行组合的过程,发现分片文件12、分片文件14的索引不是顺序相连的,则确定分片文件13的传输出错,则可以向客户端发送用于请求客户端重传该分片文件的请求消息,该请求消息中携带包括重传位置标识的传输出错信息,其中,重传位置标识用于指示分片文件13的传输错误,或者记录该分片文件13的传输出错信息。
如果服务端在接收到多个分段子文件(分段数据)后需要进行合并处理,在合并之前需要验证先后接收到的分段数据是否是相连接的,如果前后两个分段数据不相连,则确定有丢包情况发生,会请求客户端重新发送丢包的该分段数据。
例如:接收到的10个分段子文件中各个分段子文件的分片分段信息中的索引分别为11-1(表示该分段子文件为分片文件11中的第1个分段)、11-2、11-3、11-4、11-5、11-6、11-8、11-9、11-10、11-11,再将上述分段子文件按照分片分段信息中的索引依次进行组合时,发现分段数据11-6、分段数据11-8的索引不是顺序相连的,则确定分段数据11-7的传输出错,则可以向客户端发送用于请求客户端重传该分段子文件的请求消息,该请求消息中携带包括重传位置标识的传输出错信息,其中,重传位置标识用于指示分段子文件11-7的传输错误。
另一种可能的实现方式,在第一重传请求中携带该段数据在第一分片文件中的位置信息,例如:该分段数据的起始位置和结束位置。
还应理解,在一个可能的实施例中,假设服务端在接收到分片文件14之后,接收到文件传输结束标记信息,则确定待传输文件1的所有分片传输完毕,可以将分片文件11、分片文件12、分片文件13、分片文件14依次进行组合,并对组合后的文件通过文件标识进行一致性校验,例如:通过MD5值,对该组合文件进行一致性校验。若组合文件的文件标识为1234,则与传输之前计算的文件标识12345不一致,因此,确定待传输文件1需要重传。
本申请实施例中还提供了一种可能的实现方式,所述方法还包括:
将接收到的多个分片文件,根据每个分片文件的文件标识进行一致性检查;
若所述多个分片文件通过一致性检查,则将所述多个分片文件进行组合;
若目标分片文件未通过一致性检查,则向所述发送方发送传输出错信息,所述重传位置标识用于指示目标分片文件的传输出错。
应当理解的是,在该实施例中,服务端在接收到每个分片文件后,可以基于该分片文件的文件标识,例如MD5值,对该分片文件进行一致性检查,若某个分片文件(上文中的目标分片文件)未通过一致性检查,例如:服务端在接收到待传输文件1的分片文件12后,若分片文件12的文件标识为12345.0,则其文件标识与传输之前计算的文件标识12345.2不一致,因此确定分片文件12需要重传,则向客户端发送用于请求客户端重传该分片文件的请求消息,该请求消息中携带包括重传位置标识的传输出错信息,其中,重传位置标识用于指示分片文件12的传输错误。
服务端还可以针对客户端重传的目标分片文件,继续进行一致性检查,直至通过后,将接收到的所有分片文件按照各个分片的分片信息中的索引进行组合。
需要说明的是,在上述实施例中,若接收到的文件为压缩加密文件,则需要进行解密,并进行解压缩后进行组合。
上文中分别从文件的发送端和接收端描述了本申请实施例提供的一种文件传输方法,下面结合附图3-5对本申请实施例提供的一种文件传输方法进行详细的说明。
如图3所示,为本申请实施例提供的一种文件传输方法的流程示意图。具体的,源端(上文中的客户端)具体执行以下步骤:
S301、文件传输前,对待传输文件进行脱敏、压缩、分片等处理;
S302、准备传输时,基于分片启动相应的线程;
S303、读取分片文件的字节流;
S304、对读取的字节流进行加密;
S305、采用相应的线程发送加密后的字节流。
目标端(上文中的服务端)具体执行以下步骤:
S306、接收加密的字节流;
S307、对加密的字节流进行解密;
S308、对解密后的字节流进行组合后输出。
在该实施例中,对于大文件使用分片多线程进行并发传输,提升对于服务器磁盘IO的使用率以及网络传输带宽的使用率从而提升文件传输性能。每一个分片都可以支持断点续传,对于传输后的文件进行合并,对合并后的文件传输完整性校验保证传输完成的文件正确可用。
如图4所示为用于实现本申请实施例提供的一种文件传输方法的系统,该系统中的传输服务节点A、B、C、D既可以作为传输过程中的服务端,也可以作为客户端,可以同时完成发送和接收且互不干扰。也就是说,传输服务集群由多个独立运行的文件传输服务节点组成,任意传输服务节点之间可以互相完成传输任务。
作为服务端的传输服务节点启动时需要监听本机端口是否有文件输入,被监听的端口可以根据实际情况进行配置,例如:配置为监听端口811.2。
对于文件传输服务过程中的传输内容通过前端界面以任务的方式进行配置,任务的调度方式可以周期性调度,例如:可以配置为每天调度30个任务,或者每小时调度2个任务等,也可以即时执行,即发现有新任务建立就会执行。
每一个传输任务对应一个文件即一个作业,如果需要进行分片,则每一个任务对应多个作业。任务和作业的执行监控都可以通过前端实时查看,作业传输进度及状态实时更新。
前端配置的监控管理单独部署,与文件服务传输节点的部署互不干扰。前端的监控管理可以包括:服务器管理、服务器监控、传输任务管理、传输任务监控、系统管理和日志管理等。
对于发生错误的任务及作业,通过前端界面可以灵活选择续传或者重新传输等操作。传输任务对应的文件可以是服务器中即存的文件或者是将要存在的一个文件,对于即存的文件任务在发起执行指令后立即执行,对于未到达的文件通过操作系统的事件进行监控,文件到达后开始传输,这里对于文件的到达一般通过控制文件进行实现。即:如果监测到控制文件到达,则确定相应的文件到达。
本申请实施例中的系统在部署时,每个部署节点既作为服务端,也作为客户端;文件传输采用点到点的传输模式,无中间节点的参与;集群化部署,分片、分段文件采用多线程传输方式进行传输,实现高可用、高性能文件传输;采用NIO传输协议,实现无阻塞多路并发高性能的传输。
具体的,如图5所示,加载通过前端界面配置的传输服务节点的配置信息(例如:配置哪个节点作为客户端,哪个节点作为服务端,上文中的第一阈值(文件大于多少GB需要分片)、第二阈值(分片长度为多少MB)、第三阈值(分段长度)等信息)后,客户端初始化后,可以监控分配给当前服务节点的任务状态和服务目录,若有处于就绪状态的任务,且监控到控制文件到达,则可以确定相应的文件到达,计算该文件的文件标识,例如:MD5码,并更新任务状态为可启动,将该任务加入传输线程池。
判断加入传输线程池中的任务是否为续传任务(该任务在传输过程中是否出现过错误),若是(该任务之前已经传输过,并在传输时出错),则确定出错的文件流及其之后的文件流为需要续传的文件流并进行传输,若否,则传输该任务对应的文件流(从该文件流的第一个字节开始传输)。在传输文件流时进行加密,传输正常则结束,若传输异常,则记录传输异常信息,并将其确定为续传任务。
服务端监听端口,监听到数据流达到并进行接收,在接收完成后对收到的数据流进行合流,若正常结束,则校验数据文件的MD5码,并更新任务信息,若发生异常,则记录传输异常信息(记录的日志信息),并记录该任务错误信息(记录的当前任务具体哪里出错的信息),供客户端获取确认加入传输线程池中的任务是否为续传任务。
综上,本申请提供的一种文件传输方法,具有以下优点:
1.断点续传:对于文件的传输过程可以明确的查看当前传输的状态及进度,如果发生异外中止,则从最近一次传输成功的位置继续传输,保证传输文件的完整性可用性,节约网络带宽提高传输效率;
2.分片传输:对于较大的数据文件,按照系统配置的参数进行分片传输,每一个分片都支持断点续传,最后一个分片传输完成后合并成完整数据文件;
3.多线程:同一个文件的分片按照多线程并发传输,利用网络带宽和磁盘的IO,极大的提升一个大文件的传输速率;
4.多路复用:服务端在接收一个文件的时候不会阻塞,可以同时接收多个文件互不影响,同时可以作为客户端对目标服务端进行文件传输。
本申请实施例提供了一种文件传输装置,如图6所示,该装置60可以包括:处理模块601和传输模块602,其中,
处理模块601,用于若待传输文件所需的存储空间大于第一阈值时,按照预设大小将所述待传输文件切分为多个分片文件;还用于根据多个分片文件从线程池中确定用于传输文件的线程;在使用线程对分片文件进行传输时,先判断该分片文件是否为重复传输文件;如果是重复传输文件,根据获取的重传信息,确定需要重传的文件;
传输模块602,用于传输需要重传的文件;还用于如果不是重复传输文件,使用每个线程传输一个分片文件。
本申请实施例提供的文件传输装置,具体执行上述方法实施例流程,具体请详见上述文件传输方法实施例的内容,在此不再赘述。本申请实施例提供的文件传输装置,在文件交换过程中,由于采用分片多线程传输方式,能够缩短传输时间、针对传输中断情况设置重传方案,从而能够提高传输性能、可用性和可靠性。
在一个可能的实现方式中,上述处理模块601在根据多个分片文件从线程池中确定用于传输文件的线程时,具体用于:
当线程池中的所有线程传输文件所用的空间一样时,选取处于空闲状态的、数量等于分片文件总个数的线程,作为传输文件的线程;
当线程池中的所有线程传输文件所用的空间不一样时,选取传输分片文件所用的空间大于或者等于预设大小的、数量等于分片文件总个数的线程,作为传输文件的线程。
在另一个可能的实现方式中,当分片文件所需的存储空间大于线程传输文件所需的空间时,上述处理模块601还用于:根据线程所需的空间对分片文件进行分段,得到多个分段子文件;
上述传输模块602还用于:使用线程将多个分段子文件按照该多个分段子文件的先后顺序,依次进行传输。
在又一个可能的实现方式中,当所述重传信息为接收到的来自文件接收方的传输出错信息,和/或,从本机日志中获取到的传输出错信息,其中,所述传输出错信息中包括重传位置标识,上述处理模块601在根据获取的重传信息,确定需要重传的文件时,具体用于:
当所述重传位置标识指示目标分片文件的传输出错时,确定需要重传的文件为所述目标分片文件;
当重传位置标识指示目标分段子文件的传输出错时,确定需要重传的文件为所述目标分段子文件,以及所述目标分段子文件之后的所有分段子文件。
上述传输模块602具体用于:传输目标分片文件,或者,传输目标分段子文件,以及该目标分段子文件之后的所有分段子文件。
在又一个可能的实现方式中,上述处理模块601在使用线程对分片文件进行传输之前,还用于:
计算每个分片文件的文件标识,所述文件标识用于接收方对接收到的分片文件进行一致性检查。
在又一个可能的实现方式中,所述当重传位置标识指示目标分段子文件的传输出错时,上述处理模块601还用于:
当接收到的传输出错信息中的重传位置标识、与本机日志中的传输出错信息中的重传位置标识不一致时,选取第一重传位置标识对应的分段子文件作为需要重传的文件中的目标分段子文件,其中,所述第一重传位置标识为两个重传位置标识中重传位置标识对应的标识号较小的一个。
本申请实施例提供了一种文件组合装置,如图7所示,该装置70可以包括:接收模块701和执行模块702,其中,
接收模块701,用于接收来自发送方的文件;
执行模块702,用于若接收到的文件为多个分片文件,根据每个分片文件的分片信息,将多个分片文件进行组合,其中,所述每个分片文件的分配信息包括相应分片文件的索引;还用于若接收到的文件为多个分段子文件,根据每个分段子文件的分片信息和分段信息,将多个分段子文件进行组合,得到多个分片文件,再将得到的多个分片文件进行组合;
其中,所述每个分段子文件的分片信息包括相应分段子文件所属分片文件的索引,所述每个分段子文件的分段信息包括相应分段子文件的索引。
在一个可能的实现方式中,装置70还可以包括发送模块,用于在根据每个分片文件的分片信息,将多个分片文件进行组合时,若相邻两个分片文件的索引不是顺序连接的,向所述发送方发送传输出错信息;和/或,
在根据每个分段子文件的分片信息和分段信息,将多个分段子文件进行组合时,若相邻两个分段子文件的索引不是顺序连接的,向所述发送方发送传输出错信息;
其中,所述传输出错信息中包括重传位置标识,所述重传位置标识用于指示目标分片文件的传输出错,或者,用于指示目标分段子文件的传输出错。
在一个可能的实现方式中,上述执行模块702还用于:
将接收到的多个分片文件,根据每个分片文件的文件标识进行一致性检查;
若所述多个分片文件通过一致性检查,则将所述多个分片文件进行组合;
若目标分片文件未通过一致性检查,则向所述发送方发送传输出错信息,所述重传位置标识用于指示目标分片文件的传输出错。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现文件传输方法的步骤,与相关技术相比可实现:本申请实施例中,在文件交换过程中,由于采用分片多线程传输方式,能够缩短传输时间、针对传输中断情况设置重传方案,从而能够提高传输性能、可用性和可靠性。
在一个可选实施例中提供了一种电子设备,如图8所示,图8所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器4003用于存储执行本申请实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (11)
1.一种文件传输方法,其特征在于,所述方法包括:
若待传输文件所需的存储空间大于第一阈值时,按照预设大小将所述待传输文件切分为多个分片文件;
根据多个分片文件从线程池中确定用于传输文件的线程;
在使用线程对分片文件进行传输时,先判断该分片文件是否为重复传输文件;
如果是重复传输文件,根据获取的重传信息,确定需要重传的文件,并进行传输;
如果不是重复传输文件,使用每个线程传输一个分片文件。
2.根据权利要求1所述的文件传输方法,其特征在于,所述根据多个分片文件从线程池中确定用于传输文件的线程,包括:
当线程池中的所有线程传输文件所用的空间一样时,选取处于空闲状态的、数量等于分片文件总个数的线程,作为传输文件的线程;
当线程池中的所有线程传输文件所用的空间不一样时,选取传输分片文件所用的空间大于或者等于预设大小的、数量等于分片文件总个数的线程,作为传输文件的线程。
3.根据权利要求1或2所述的文件传输方法,其特征在于,当分片文件所需的存储空间大于线程传输文件所需的空间时,所述方法还包括:
根据线程所需的空间对分片文件进行分段,得到多个分段子文件;
使用线程将多个分段子文件按照该多个分段子文件的先后顺序,依次进行传输。
4.根据权利要求3所述的文件传输方法,其特征在于,当所述重传信息为接收到的来自文件接收方的传输出错信息,和/或,从本机日志中获取到的传输出错信息,其中,所述传输出错信息中包括重传位置标识,所述根据获取的重传信息,确定需要重传的文件,并进行传输,包括:
当所述重传位置标识指示目标分片文件的传输出错时,确定需要重传的文件为所述目标分片文件,并进行传输;
当重传位置标识指示目标分段子文件的传输出错时,确定需要重传的文件为所述目标分段子文件,以及所述目标分段子文件之后的所有分段子文件,并进行传输。
5.根据权利要求4所述的文件传输方法,其特征在于,所述当重传位置标识指示目标分段子文件的传输出错时,还包括:
当接收到的传输出错信息中的重传位置标识、与本机日志中的传输出错信息中的重传位置标识不一致时,选取第一重传位置标识对应的分段子文件作为需要重传的文件中的目标分段子文件,其中,所述第一重传位置标识为两个重传位置标识中重传位置标识对应的标识号较小的一个。
6.一种文件组合方法,其特征在于,所述方法包括:
接收来自发送方的文件;
若接收到的文件为多个分片文件,根据每个分片文件的分片信息,将多个分片文件进行组合,其中,所述每个分片文件的分配信息包括相应分片文件的索引;
若接收到的文件为多个分段子文件,根据每个分段子文件的分片信息和分段信息,将多个分段子文件进行组合,得到多个分片文件,再将得到的多个分片文件进行组合;
其中,所述每个分段子文件的分片信息包括相应分段子文件所属分片文件的索引,所述每个分段子文件的分段信息包括相应分段子文件的索引。
7.根据权利要求6所述的文件组合方法,其特征在于,所述方法还包括:
在根据每个分片文件的分片信息,将多个分片文件进行组合时,若相邻两个分片文件的索引不是顺序连接的,向所述发送方发送传输出错信息;和/或,
在根据每个分段子文件的分片信息和分段信息,将多个分段子文件进行组合时,若相邻两个分段子文件的索引不是顺序连接的,向所述发送方发送传输出错信息;
其中,所述传输出错信息中包括重传位置标识,所述重传位置标识用于指示目标分片文件的传输出错,或者,用于指示目标分段子文件的传输出错。
8.一种文件传输装置,其特征在于,所述装置包括:
处理模块,用于若待传输文件所需的存储空间大于第一阈值时,按照预设大小将所述待传输文件切分为多个分片文件;还用于根据多个分片文件从线程池中确定用于传输文件的线程;在使用线程对分片文件进行传输时,先判断该分片文件是否为重复传输文件;如果是重复传输文件,根据获取的重传信息,确定需要重传的文件;
传输模块,用于传输需要重传的文件;还用于如果不是重复传输文件,使用每个线程传输一个分片文件。
9.一种文件组合装置,其特征在于,所述装置包括:
接收模块,用于接收来自发送方的文件;
执行模块,用于若接收到的文件为多个分片文件,根据每个分片文件的分片信息,将多个分片文件进行组合,其中,所述每个分片文件的分配信息包括相应分片文件的索引;还用于若接收到的文件为多个分段子文件,根据每个分段子文件的分片信息和分段信息,将多个分段子文件进行组合,得到多个分片文件,再将得到的多个分片文件进行组合;
其中,所述每个分段子文件的分片信息包括相应分段子文件所属分片文件的索引,所述每个分段子文件的分段信息包括相应分段子文件的索引。
10.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-5任一项,或者,6-7任一项所述的文件传输方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5任一项,或者,6-7任一项所述的文件传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111619207.3A CN114338651B (zh) | 2021-12-27 | 2021-12-27 | 文件传输方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111619207.3A CN114338651B (zh) | 2021-12-27 | 2021-12-27 | 文件传输方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338651A true CN114338651A (zh) | 2022-04-12 |
CN114338651B CN114338651B (zh) | 2024-06-18 |
Family
ID=81015283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111619207.3A Active CN114338651B (zh) | 2021-12-27 | 2021-12-27 | 文件传输方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338651B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115002100A (zh) * | 2022-05-27 | 2022-09-02 | 平安普惠企业管理有限公司 | 文件传输方法、装置、电子设备及存储介质 |
CN115242778A (zh) * | 2022-07-21 | 2022-10-25 | 中电金信软件有限公司 | 一种文件传输方法、装置、电子设备及可读存储介质 |
CN115550246A (zh) * | 2022-10-11 | 2022-12-30 | 缀初网络技术(上海)有限公司 | 基于多路径的文件传输方法及装置 |
CN116669097A (zh) * | 2022-08-26 | 2023-08-29 | 天翼数字生活科技有限公司 | 基于OKhttp的分片传输的方法和装置 |
CN116996505A (zh) * | 2023-09-27 | 2023-11-03 | 天津神舟通用数据技术有限公司 | 一种基于调度引擎的文件交换控制方法和系统 |
CN117216011A (zh) * | 2023-08-30 | 2023-12-12 | 建银工程咨询有限责任公司 | 文件传输方法、装置及电子设备 |
CN117972712A (zh) * | 2023-12-29 | 2024-05-03 | 北京辰光融信技术有限公司 | 固件更新方法、装置、计算机设备和计算机存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104506950A (zh) * | 2014-12-29 | 2015-04-08 | 珠海全志科技股份有限公司 | 网络流媒体播放中的多线程下载方法、装置及下载设备 |
US20160050155A1 (en) * | 2013-04-28 | 2016-02-18 | Xiaomi Inc. | Method and device for downloading file |
CN105453512A (zh) * | 2014-07-01 | 2016-03-30 | 华为技术有限公司 | 视频数据传输装置、方法、服务器、基站和客户端 |
US20170041375A1 (en) * | 2015-08-06 | 2017-02-09 | Airwatch Llc | Generating content fragments for content distribution |
CN110224863A (zh) * | 2019-05-22 | 2019-09-10 | 钛马信息网络技术有限公司 | 一种文件加速下载方法及装置 |
WO2019227427A1 (zh) * | 2018-05-31 | 2019-12-05 | 优视科技新加坡有限公司 | 文件下载方法、装置及设备/终端/服务器 |
CN111586158A (zh) * | 2020-05-06 | 2020-08-25 | 山东汇贸电子口岸有限公司 | 一种音视频分片上传与重传方法 |
-
2021
- 2021-12-27 CN CN202111619207.3A patent/CN114338651B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160050155A1 (en) * | 2013-04-28 | 2016-02-18 | Xiaomi Inc. | Method and device for downloading file |
CN105453512A (zh) * | 2014-07-01 | 2016-03-30 | 华为技术有限公司 | 视频数据传输装置、方法、服务器、基站和客户端 |
CN104506950A (zh) * | 2014-12-29 | 2015-04-08 | 珠海全志科技股份有限公司 | 网络流媒体播放中的多线程下载方法、装置及下载设备 |
US20170041375A1 (en) * | 2015-08-06 | 2017-02-09 | Airwatch Llc | Generating content fragments for content distribution |
WO2019227427A1 (zh) * | 2018-05-31 | 2019-12-05 | 优视科技新加坡有限公司 | 文件下载方法、装置及设备/终端/服务器 |
CN110224863A (zh) * | 2019-05-22 | 2019-09-10 | 钛马信息网络技术有限公司 | 一种文件加速下载方法及装置 |
CN111586158A (zh) * | 2020-05-06 | 2020-08-25 | 山东汇贸电子口岸有限公司 | 一种音视频分片上传与重传方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115002100A (zh) * | 2022-05-27 | 2022-09-02 | 平安普惠企业管理有限公司 | 文件传输方法、装置、电子设备及存储介质 |
CN115002100B (zh) * | 2022-05-27 | 2024-03-08 | 河北燕鸣科技有限公司 | 文件传输方法、装置、电子设备及存储介质 |
CN115242778A (zh) * | 2022-07-21 | 2022-10-25 | 中电金信软件有限公司 | 一种文件传输方法、装置、电子设备及可读存储介质 |
CN116669097A (zh) * | 2022-08-26 | 2023-08-29 | 天翼数字生活科技有限公司 | 基于OKhttp的分片传输的方法和装置 |
CN115550246A (zh) * | 2022-10-11 | 2022-12-30 | 缀初网络技术(上海)有限公司 | 基于多路径的文件传输方法及装置 |
CN117216011A (zh) * | 2023-08-30 | 2023-12-12 | 建银工程咨询有限责任公司 | 文件传输方法、装置及电子设备 |
CN117216011B (zh) * | 2023-08-30 | 2024-05-03 | 建银工程咨询有限责任公司 | 文件传输方法、装置及电子设备 |
CN116996505A (zh) * | 2023-09-27 | 2023-11-03 | 天津神舟通用数据技术有限公司 | 一种基于调度引擎的文件交换控制方法和系统 |
CN116996505B (zh) * | 2023-09-27 | 2023-12-15 | 天津神舟通用数据技术有限公司 | 一种基于调度引擎的文件交换控制方法和系统 |
CN117972712A (zh) * | 2023-12-29 | 2024-05-03 | 北京辰光融信技术有限公司 | 固件更新方法、装置、计算机设备和计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114338651B (zh) | 2024-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114338651B (zh) | 文件传输方法、装置、电子设备及可读存储介质 | |
CN107295080B (zh) | 应用于分布式服务器集群的数据存储方法和服务器 | |
US11611537B1 (en) | Autonomous agent messaging | |
US10965519B2 (en) | Exactly-once transaction semantics for fault tolerant FPGA based transaction systems | |
CN111343277B (zh) | 分布式数据存储方法、系统、计算机设备和存储介质 | |
US11159439B1 (en) | Agent message delivery fairness | |
US8335238B2 (en) | Reassembling streaming data across multiple packetized communication channels | |
US11620195B2 (en) | Linear view-change BFT | |
US9917884B2 (en) | File transmission method, apparatus, and distributed cluster file system | |
US20120259912A1 (en) | Cluster unique identifier | |
US8489967B2 (en) | Dynamic monitoring of ability to reassemble streaming data across multiple channels based on history | |
CN112118315A (zh) | 数据处理系统、方法、装置、电子设备和存储介质 | |
CN109739435B (zh) | 文件存储和更新方法及装置 | |
EP3031172B1 (en) | Managing data feeds | |
EP3713195B1 (en) | Log processing method, related device, and system | |
US8539149B2 (en) | Storage system and communications method | |
CN105373563B (zh) | 数据库切换方法及装置 | |
US8201017B2 (en) | Method for queuing message and program recording medium thereof | |
JP2010044553A (ja) | データ処理方法、クラスタシステム、及びデータ処理プログラム | |
CN109992447B (zh) | 数据复制方法、装置及存储介质 | |
CN111064587B (zh) | 一种分布式数据系统的节点及广播传输数据管理方法 | |
CN116361282A (zh) | 数据处理方法、装置、相关设备和存储介质 | |
CN118193238A (zh) | 一种业务信息的处理方法、装置、设备及存储介质 | |
JP2023174221A (ja) | フォールトトレラントシステム及びデータ処理方法 | |
WO2017013791A1 (ja) | データバックアップシステム |
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 |