CN114172894A - 数据传输方法、装置、服务器和计算机设备 - Google Patents
数据传输方法、装置、服务器和计算机设备 Download PDFInfo
- Publication number
- CN114172894A CN114172894A CN202111454590.1A CN202111454590A CN114172894A CN 114172894 A CN114172894 A CN 114172894A CN 202111454590 A CN202111454590 A CN 202111454590A CN 114172894 A CN114172894 A CN 114172894A
- Authority
- CN
- China
- Prior art keywords
- file
- identification information
- uploaded
- fragmented
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 189
- 238000000034 method Methods 0.000 title claims abstract description 78
- 239000012634 fragment Substances 0.000 claims abstract description 68
- 238000012546 transfer Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 description 10
- 238000013461 design Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (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
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据传输方法、装置、服务器和计算机设备。
背景技术
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个请求-响应协议,常用于浏览器与服务器之间的交互。用户在使用浏览器时,通常可以利用HTTP技术来从服务器下载文件或者上传文件至服务器。
现有技术中,对于大文件,在用户利用HTTP技术将大文件传输给服务器时,通常会先使用浏览器通过消息摘要算法(Message-Digest Algorithm 5,MD5)计算出大文件的MD5值,然后服务器收到这个MD5值之后可以校验上传的文件是否一致,从而保证浏览器的文件传输完整性。
但是,现有技术的这种文件传输方式,然后受网络波动的干扰,造成文件传输的中断和丢包,一旦发生中断和丢包,整个大文件需要重新开始上传,文件传输的效率低。
发明内容
本申请提供一种数据传输方法、装置、服务器和计算机设备,用于解决现有的超文本传输协议在传输大文件时,文件传输效率低的问题。
第一方面,本申请实施例提供一种数据传输方法,包括:
响应于文件传输请求,获取目标传输文件中每个分片文件的标识信息,所述目标传输文件包括至少两个分片文件;
根据每个分片文件的标识信息对上传的每个文件进行识别,得到识别结果,所述识别结果用于指示上传的文件是否为分片文件,所述文件为通过超文本传输协议上传的;
根据所述识别结果,确定预设数据库中每个分片文件对应的指示数据的数值,所述预设数据库中存储有所述文件传输请求对应的任务标识和每个分片文件对应的指示数据构成的键值对;
在每个分片文件对应的指示数据的数值与预设值匹配时,将上传的各个文件组合得到目标传输文件。
在第一方面的一种可能设计中,
所述根据每个分片文件的标识信息对上传的每个文件进行识别,得到识别结果,包括:
获取当前上传的文件的标识信息和文件顺序;
根据所述文件顺序,在各个分片文件的标识信息中选取出目标标识信息;
根据所述目标标识信息和当前上传的文件的标识信息,得到当前上传的文件的识别结果。
在第一方面的另一种可能设计中,所述根据所述识别结果,确定预设数据库中每个分片文件对应的指示数据的数值,包括:
若所述目标标识信息与当前上传的文件的标识信息匹配,则将所述预设数据库中所述当前上传的文件对应的指示数据的数值更新为所述预设值。
在第一方面的再一种可能设计中,所述方法还包括:
响应于续传请求,读取所述预设数据库中每个分片文件对应的指示数据的数值,所述续传请求中至少包括有所述任务标识;
根据每个分片文件对应的指示数据的数值,确定待续传的分片文件以指示客户端进行文件续传。
在第一方面的又一种可能设计中,所述方法还包括:
获取所述目标传输文件的标识信息,根据所述目标传输文件的标识信息建立文件夹,所述文件夹中包括有用于保存所述分片文件的临时文件。
在第一方面的又一种可能设计中,所述方法还包括:
响应于中断请求,将上传的文件存储至所述临时文件中,所述中断请求用于指示文件上传中断。
在第一方面的又一种可能设计中,所述将上传的文件组合得到目标传输文件,包括:
将上传的文件组合得到组合文件,获取所述组合文件的标识信息;
将所述组合文件的标识信息与目标传输文件的标识信息进行对比;
若所述组合文件的标识信息与所述目标传输文件的标识信息匹配,则将所述组合文件作为所述目标传输文件。
第二方面,本申请实施例提供一种数据传输方法,包括:
获取目标传输文件,将所述目标传输文件划分为至少两个分片文件;
获取每个分片文件的标识信息和所述目标传输文件的标识信息,上传至服务器;
根据超文本传输协议,将每个分片文件上传至所述服务器。
在第二方面的一种可能设计中,所述方法还包括:
发送中断请求至所述服务器,所述中断请求用于指示文件上传中断。
在第二方面的另一种可能设计中,所述方法还包括:
发送续传请求至所述服务器,所述续传请求中至少包括任务标识,所述任务标识用于指示所述服务器确定所述客户端待续传的分片文件。
第三方面,本申请实施例提供一种数据传输装置,包括:
信息获取模块,用于响应于文件传输请求,获取目标传输文件中每个分片文件的标识信息,所述目标传输文件包括至少两个分片文件;
结果确定模块,用于根据每个分片文件的标识信息对上传的每个文件进行识别,得到识别结果,所述识别结果用于指示上传的文件是否为分片文件,所述文件为通过超文本传输协议上传的;
数值确定模块,用于根据所述识别结果,确定预设数据库中每个分片文件对应的指示数据的数值,所述预设数据库中存储有所述文件传输请求对应的任务标识和每个分片文件对应的指示数据构成的键值对;
文件组合模块,用于在每个分片文件对应的指示数据的数值与预设值匹配时,将上传的各个文件组合得到目标传输文件。
第四方面,本申请实施例提供一种数据传输装置,包括:
文件划分模块,用于获取目标传输文件,将所述目标传输文件划分为至少两个分片文件;
信息上传文件,用于获取每个分片文件的标识信息和所述目标传输文件的标识信息,上传至服务器;
文件上传模块,用于根据超文本传输协议,将每个分片文件上传至所述服务器。
第五方面,本申请实施例提供一种服务器,包括:第一处理器,以及与所述第一处理器通信连接的第一存储器;
所述第一存储器存储计算机执行指令;
所述第一处理器执行所述第一存储器存储的计算机执行指令,以实现如上所述的方法。
第六方面,本申请实施例提供一种计算机设备,包括:第二处理器,以及与所述第二处理器通信连接的第二存储器;
所述第二存储器存储计算机执行指令;
所述第二处理器执行所述第二存储器存储的计算机执行指令,以实现如上述的方法。
第七方面,本申请实施例提供一种可读存储介质,所述可读存储介质中存储有计算机指令,所述计算机指令被处理器执行时用于实现上述的方法。
第八方面,本申请实施例提供一种程序产品,包括计算机指令,该计算机指令被处理器执行时实现上述的方法。
本申请实施例提供的数据传输方法和装置,通过将大文件分片成若干个分片文件,并且在浏览器每上传一个分片文件到服务器时,服务器都进行一次校验,如果校验通过,则对该分片文件对应的指示数据的数值进行更新,直到客户端完成所有的分片文件的上传,最后将这些分片文件组合得到目标传输文件。在文件传输过程中碰到网络波动造成中断或丢包时,不需要浏览器重新上传整个大文件,提高文件传输效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理;
图1为本申请实施例提供的数据传输方法的场景示意图;
图2为本申请实施例提供的数据传输方法实施例一的流程示意图;
图3为本申请实施例提供的数据传输方法实施例二的流程示意图;
图4为本申请实施例提供的数据传输装置实施例一的结构示意图;
图5为本申请实施例提供的数据传输装置实施例二的结构示意图;
图6为本申请实施例提供的服务器的结构示意图;
图7为本申请实施例提供的计算机设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先对本申请所涉及的名词进行解释:
图1为本申请实施例提供的数据传输方法的场景示意图,该方法可以应用在服务器中,如图1所示,以计算机设备10中的浏览器作为客户端为例,计算机设备10通过网络与服务器11进行数据交互。用户在浏览器上可以通过超文本协议(Hyper Text TransferProtocol,HTTP)技术上传大文件到服务器11。大文件具体可以是指占用存储空间超过预设值的文件,例如生活中常见的视频文件、应用软件安装文件等。
在实际生活应用中,用户使用HTTP技术从浏览器上传大文件至服务器11时,经常会面对文件上传速度慢,被网关限制文件大小,上传过程中断后无法继续上传,以及由于HTTP传输丢失数据包造成的文件不完整等一系列问题。现有技术为了解决大文件不能够一次性上传问题,其采用的一种方式是将文件进行切分,分成很多大小一致的小文件,然后依次上传到服务器。但是这种方式由于文件上传过程中缺少校验,很难保证文件传输的完整性。另外一种方式则是浏览器先预先计算出大文件的MD5值,发送给服务器。服务器在浏览器上传完文件之后,利用该MD5值与上传文件的MD5值记性校验,从而保证文件传输的完整性。而这种方式还是不能够克服网络不稳定造成的中断或丢包的问题,一旦在文件的传输过程中出现中断或丢包,就无法恢复,导致用户需要重头开始重新上传,文件上传效率很慢。
针对上述问题,本申请实施例提供的数据传输方法、装置、服务器和计算机设备,在浏览器通过HTTP技术上传大文件到服务器时,浏览器通过将大文件分为若干个分片文件逐一上传,然后由服务器对浏览器上传的每一个分片文件进行校验,确保每一个分片文件的完整性,最后将所有上传的分片文件组合得到大文件,能够避免网络不稳定造成中断和丢包,使得用户需要从头重新上传大文件的问题。同时也使得整个文件上传的过程能够方便进行断点续传,提高文件的上传效率。
下面,通过具体实施例对本申请的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图2为本申请实施例提供的数据传输方法实施例一的流程示意图,该方法可以应用于服务器中。以服务器作为执行本体为例,如图2所示,该方法具体可以包括如下步骤:
S201、响应于文件传输请求,获取目标传输文件中每个分片文件的标识信息。
其中,目标传输文件包括至少两个分片文件。示例性的,目标传输文件为大文件,即占用内存空间超过预设值的文件。目标传输文件可以由浏览器进行拆分,得到三个分片文件。示例性的,三个分片文件如下表1所示:
表1
如上表1所示,目标传输文件被划分为三个分片文件1-3。其中,第一个分片文件的MD5值为K1,第二个分片文件的MD5值为K2,第三个分片文件的MD5值为K3。总的目标传输文件的MD5值为K。
在本实施例中,当用户需要将目标传输文件上传到服务器时,浏览器(即浏览器)可以先将目标传输文件进行分片,并且确定出目标传输文件的MD5值、分片文件的MD5值,再将分片文件的总数量、分片文件、分片文件的MD5值、目标传输文件的MD5值传送给服务器。
在本实施例中,标识信息可以是指上述的MD5值,每个分片文件都具有不同的MD5值,且与目标传输文件的MD5值不相同。其中,MD5值类似于文件的ID,MD5值通常是不会变化的,但会受到病毒和木马等恶意计算机程序的篡改。
S202、根据每个分片文件的标识信息对上传的每个文件进行识别,得到识别结果。
其中,识别结果用于指示上传的文件是否为分片文件,文件为通过超文本传输协议上传的。
在本实施例中,服务器在收到浏览器上传的文件之后,会检验这个文件的MD5值是否等于浏览器之前上传的分片文件的标识信息,如果等于,则确定浏览器没有上传错文件,浏览器可以再继续上传其它的分片文件,如果不等于,则确定出浏览器上传错了文件,需要选择正确的分片文件重新上传。
示例性的,以三个分片文件为例,第一个分片文件的MD5值为K1,第二个分片文件的MD5值为K2,第三个分片文件的MD5值为K3。当浏览器上传第一个文件时,如果该文件的MD5值与K1不相等,则确定出浏览器上传错了分片文件。如果该文件的MD5值与K1相等,则继续上传第二个文件。
S203、根据识别结果,确定预设数据库中每个分片文件对应的指示数据的数值。
其中,预设数据库中存储有文件传输请求对应的任务标识和每个分片文件对应的指示数据构成的键值对。
在本实施例中,在浏览器需要上传某个大文件到服务器时,会发起该大文件对应的文件传输请求,建立该大文件对应的传输任务,传输任务具有任务标识。其中,在浏览器上传不同的大文件时,对应的任务标识不相同,以方便服务器能够识别区分不同的大文件。
服务器的预设数据库中存储有每一个分片文件对应的指示数据,示例性的,该指示数据可以是byte型数据,其取值可以为0或者1。当取值为0时表示浏览器还没有上传该分片文件至服务器,当取值为1时表示浏览器已经上传该分片文件至服务器。
示例性的,当浏览器当前上传的文件不是分片文件时,服务器可以反馈提示信息给浏览器。提示信息用于指示浏览器传输正确的分片文件。示例性的,当识别结果指示的是上传的文件为分片文件时,则提示信息用于指示浏览器继续传输下一个文件,如果识别结果指示的是上传的文件不是分片文件时,则提示信息用于指示浏览器重新上传文件。
S204、在每个分片文件对应的指示数据的数值与预设值匹配时,将上传的各个文件组合得到目标传输文件。
示例性的,当浏览器完成第一个分片文件的上传之后,服务器通过提示信息指示浏览器进行第二个文件的上传,然后服务器校验浏览器上传的第二个文件的MD5值是否与第二个分片文件的MD5值相同,如果相同,则通过提示信息继续指示浏览器进行第三个文件的上传,直到浏览器完成所有的分片文件的上传。
在本实施例中,当所有的分片文件都上传完成之后,每一个分片文件对应的指示数据的数值都取值为1。
本申请实施例通过将大文件分片成若干个分片文件,并且在浏览器每上传一个分片文件到服务器时,服务器都进行一次校验,直到浏览器完成所有的分片文件的上传,最后将这些分片文件组合得到目标传输文件。使得浏览器在传输文件过程中碰到网络波动造成中断或丢包时,方便进行断点续传,不需要浏览器重新上传整个大文件,提高文件传输效率,同时也能对每一个分片文件进行校验和监控,保证大文件分片上传后的文件完整性。
在一些实施例中,上述步骤S202中“根据每个分片文件的标识信息对上传的每个文件进行识别,得到识别结果”,具体可以通过如下步骤实现:
获取当前上传的文件的标识信息和文件顺序;
根据文件顺序,在各个分片文件的标识信息中选取出目标标识信息;
根据目标标识信息和当前上传的文件的标识信息,得到当前上传的文件的识别结果。
在本实施例中,目标传输文件在被浏览器划分为多个分片文件之后,每一个分片文件都有其对应的偏移量和标识信息。浏览器在上传文件至服务器时,会根据偏移量确定文件顺序,按照文件顺序一个一个的上传,例如先上传第一个,如果第一个上传正确,则继续上传第二个…第三个,直到完成所有分片文件的上传。
示例性的,若浏览器当前上传的为第一个文件,则服务器根据分片文件的偏移量,选取出第一个分片文件的标识信息作为目标标识信息,将目标标识信息与浏览器上传的第一个文件的标识信息进行对比,确定上传的第一个文件是否为第一个分片文件。
示例性的,浏览器上传文件的文件顺序应当是根据分片文件的偏移量得到的,例如分片文件包括有三个,根据偏移量分为第一个分片文件、第二个分片文件和第三个分片文件,则当浏览器上传第一个文件时,该第一个文件的文件顺序对应的是第一个分片文件,这样才能够保证当浏览器上传的第一个文件时,服务器能够根据第一个分片文件的标识信息,识别出第一个文件为第一分片文件。
本申请实施例通过对浏览器上传的每一个文件进行校验,能够保证每一个分片文件上传的完整性,使得大文件分片上传后文件的完整性。同时,如果在上传过程中出现网络波动等造成中断的问题,也能够将中断造成的文件损失降低到最小,避免用户从头开始重新上传大文件,提高文件上传效率。
在一些实施例中,上述数据传输方法还可以包括如下步骤:
若目标标识信息与当前上传的文件的标识信息匹配,则将预设数据库中当前上传的文件对应的指示数据的数值更新为预设值。
示例性的,用一个任务ID作为任务标识,浏览器在需要传输某一个目标传输文件时,服务器会根据该目标传输文件的MD5值,生成一个任务ID,用来标识这次文件上传。
其中,预设数据库可以是远程字典服务(Remote Dictionary Server,Redis)数据库。Redis数据库中以任务ID为键值,位数等于分片总数的byte型数据,初始化为零。示例性的,以目标传输文件被划分为三个分片文件为例,任务ID对应有三个byte型数据,每一个byte型数据的初始值如下表2:
第一个byte:0 | 第二个byte:0 | 第三个byte:0 |
表2
在本实施例中,上述的byte型数据即指示数据,每一个分片文件对应一个byte型数据。示例性的,按照分片文件的偏移量顺序,第一个分片文件对应第一个byte,第二个分片文件对应第二个byte,第三个分片文件对应第三个byte。
其中,byte型数据的数值可以取值为0或者1,示例性的,当浏览器上传的第n个文件确定为第n个分片文件时,则对应的第n个byte型数据的数值会被更新为1。其中,n可以取正整数,指示的是目标传输文件包括的分片文件总数量。
本申请实施例通过在Redis数据库中设置键值对,可以利用键值对中指示数据的数值来指示出浏览器是否完成了某一个指示数据对应的分片文件的上传,方便服务器后续进行断点续传。
进一步的,在一些实施例中,上述数据传输方法还可以包括如下步骤:
响应于续传请求,读取预设数据库中每个分片文件对应的指示数据的数值;
根据每个分片文件对应的指示数据的数值,确定待续传的分片文件以指示客户端进行文件续传。
其中,续传请求中至少包括有任务标识。示例性的,上述的任务ID即可以作为任务标识。
在本实施例中,浏览器在上传文件的过程中,可以中断文件传输,例如受到网络波动的影响,造成浏览器被动的中断文件传输,又例如用户可以在浏览器操作点击,输出指令,控制浏览器主动的中断文件传输。当浏览器中断文件传输之后,服务器可以根据byte型数据的数值,确定出当前浏览器完成了哪些分片文件的上传。
示例性的,当第一个byte的数值为1,第二个byte和第三个byte的数值为0时,服务器可以确定当前浏览器只完成了第一个分片文件的上传。
在本实施例中,当服务器从中断中恢复过来,再发起续传请求时,需要将先上传任务ID(即任务标识)给服务器,服务器根据任务ID,从Redis数据库中找到该任务ID对应的byte型数据,根据这些byte型数据的数值,确定出浏览器完成了哪些分片文件的上传。然后通知浏览器略过已经上传完了的分片文件,直接从未上传的分片文件开始上传。
示例性的,服务器根据任务ID查找到对应的byte型数据中,第一个byte型数据的数值为1,其它的为0,则服务器会返回第一个分片文件上传成功的消息给浏览器,通知浏览器从第二个文件开始上传。
本申请实施例通过使用指示数据来记录浏览器完成了哪些分片文件的上传,能够对整个文件上传过程进行监控,保证最后目标传输文件上传的完整性,同时也方便后续发生中断之后进行续传,不需要用户从头重新上传大文件。
在一些实施例中,上述数据传输方法还可以包括如下步骤:
获取目标传输文件的标识信息,根据目标传输文件的标识信息建立文件夹。
其中,文件夹中包括有用于保存分片文件的临时文件。示例性的,目标传输文件的标识信息可以是目标传输文件的MD5值。
在本实施例中,文件夹中可以包括多个临时文件,一个为临时总文件,其它的则为分片临时文件。示例性的,当浏览器上传的第一个文件时,则服务器可以将浏览器上传的第一个文件保存在临时总文件中,并再在临时文件夹中新建一个第一分片临时文件,用于保存第一个文件。之后浏览器再继续上传第n个文件,服务器将第n个分片文件保存至临时总文件中,然后再在临时文件夹中新建第n个分片临时文件,用于保存第n个文件。
示例性的,在保存好第n个文件之后,服务器会校验第n个文件的MD5值是否等于第n个分片文件的MD5值,如果相等,则将Redis数据库中的第n个byte型数据的数值更新为1,并返回成功的指示消息给浏览器,提示浏览器进行第n+1个文件的上传。如果不相等,则不对Redis数据库中的第n个byte型数据的数值更新,直接返回失败的指示消息给浏览器,提示浏览器重新进行第n个文件的上传。
示例性的,在一些实时方式中,浏览器可以发起中断请求以中断文件传输,即服务器会响应于浏览器发起的中断请求,将浏览器上传的文件存储至临时文件中。
其中,中断请求用于指示浏览器的文件上传中断
本申请实施例通过发起中断请求,能够中断文件上传,并且在中断之后还能够再发起续传,在中断点继续上传文件,不需要从头重新上传大文件,提高文件传输效率。
在一些实施例中,上述步骤S204中“将上传的文件组合得到目标传输文件”具体可以通过如下步骤实现:
将上传的文件组合得到组合文件,获取组合文件的标识信息;
将组合文件的标识信息与目标传输文件的标识信息进行对比;
若组合文件的标识信息与目标传输文件的标识信息匹配,则将组合文件作为目标传输文件。
示例性的,当浏览器完成预设数量(例如预设数量可以为3)的分片文件的上传之后,服务器可以将这些分片文件组合起来,得到组合文件。示例性的,组合文件可以是上述的临时总文件,通过获取临时总文件的MD5值作为组合文件的标识信息,然后与目标传输文件的MD5值进行对比,如果对比一致,则确定上传完成,反馈上传成功消息给浏览器。如果对比不一致,则确定上传失败,反馈上传失败消息给浏览器,要求浏览器重新上传。
示例性的,服务器可以检查键值对中所有的byte型数据(即指示数据)的数值是否都被更新过(例如都被从初始值0更新为1),如果都被更新过,则可以确定浏览器完成了预设数量的分片文件的上传。
本申请实施例通过对每一个上传的文件进行校验,最后将浏览器上传的所有分片文件组合得到目标传输文件,能够保证目标传输文件的完整性,保证传输过程中的错误可监控。
图3为本申请实施例提供的数据传输方法实施例二的流程示意图,该方法可以应用于客户端。示例性的,以计算机设备中的浏览器作为客户端为例,如图3所示,该方法可以包括如下步骤:
S301、获取目标传输文件,将目标传输文件划分为至少两个分片文件。
S302、获取每个分片文件的标识信息和目标传输文件的标识信息,上传至服务器。
示例性的,分片文件的标识信息为MD5值,每个分片文件对应有不同的MD5值。目标传输文件的标识信息也为MD5值,目标传输文件的MD5值与各个分片文件的MD5值不相同。
S303、根据超文本传输协议,将每个分片文件上传至服务器。
在本实施例中,当客户端完成所有分片文件上传之后,会在客户端页面上弹窗提示,通知用户目标传输文件传输完成。
在一些实施例中,该数据传输方法还可以包括如下步骤:
发送中断请求至服务器。其中,中断请求用于指示文件上传中断。
在本实施例中,用户可以输入中断指令给客户端,要求客户端中断文件上传。示例性的,客户端也可以在检测到出现网络问题时,主动发送中断请求给服务器,提示服务器文件需要中断上传。
示例性的,网络问题具体可以是网络波动或者网络连接中断等影响文件正常上传的问题。
进一步的,在一些实施例中,该数据传输方法还可以包括步骤:发送续传请求至服务器。
其中,续传请求中至少包括任务标识,任务标识用于指示服务器确定客户端的待续传的分片文件。示例性的,任务标识可以是任务ID,服务器会为每一个目标传输文件创建一个对应的任务ID,并下发给客户端。
在本实施例中,续传请求通常发生在中断请求之后,示例性的,以客户端在进行分片文件1上传为例,若分片文件1未上传完成,则在中断之后,如果客户端需要续传,客户端需要从头开始重新上传分片文件1。若分片文件1已经上传完成,正准备开始上传分片文件2,则在中断之后,如果客户端需要续传,客户端只需要从分片文件2开始上传即可。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图4为本申请实施例提供的数据传输装置实施例一的结构示意图。该数据传输装置可以集成在服务器上,也可以独立于服务器且与服务器协同实现数据传输。如图4所示,该数据传输装置包括信息获取模块41、结果确定模块42、信息反馈模块43和文件组合模块44。
其中,信息获取模块41用于响应于文件传输请求,获取目标传输文件中每个分片文件的标识信息。结果确定模块42用于根据每个分片文件的标识信息对上传的每个文件进行识别,得到识别结果。信息反馈模块43用于根据识别结果,确定预设数据库中每个分片文件对应的指示数据的数值。文件组合模块44用于在每个分片文件对应的指示数据的数值与预设值匹配时,将上传的各个文件组合得到目标传输文件。
其中,目标传输文件包括至少两个分片文件,识别结果用于指示上传的文件是否为分片文件,文件为通过超文本传输协议上传的,预设数据库中存储有文件传输请求对应的任务标识和每个分片文件对应的指示数据构成的键值对。
在一些实施例中,上述结果确定模块具体可以用于:
获取当前上传的文件的标识信息和文件顺序;
根据文件顺序,在各个分片文件的标识信息中选取出目标标识信息;
根据目标标识信息和当前上传的文件的标识信息,得到当前上传的文件的识别结果。
在一些实施例中,数值确定模块具体可以用于:若目标标识信息与当前上传的文件的标识信息匹配,则将预设数据库中当前上传的文件对应的指示数据的数值更新为预设值。
在一些实施例中,还包括续传指示模块,用于:
响应于续传请求,读取预设数据库中每个分片文件对应的指示数据的数值;
根据每个分片文件对应的指示数据的数值,确定待续传的分片文件以指示客户端进行文件续传。
其中,续传请求中至少包括有任务标识。
在一些实施例中,还包括文件创建模块,用于获取目标传输文件的标识信息,根据目标传输文件的标识信息建立文件夹。
其中,文件夹中包括有用于保存分片文件的临时文件。
在一些实施例中,还包括文件存储模块,用于响应于客户端发起的中断请求,将客户端上传的文件存储至临时文件中。
其中,中断请求用于指示客户端的文件上传中断。
在一些实施例中,上述文件组合模块具体可以用于:
将上传的文件组合得到组合文件,获取组合文件的标识信息;
将组合文件的标识信息与目标传输文件的标识信息进行对比;
若组合文件的标识信息与目标传输文件的标识信息匹配,则将组合文件作为目标传输文件。
本申请实施例提供的装置,可用于执行图2所示实施例中的方法,其实现原理和技术效果类似,在此不再赘述。
图5为本申请实施例提供的数据传输装置实施例二的结构示意图,该数据传输装置可以集成在客户端上,也可以独立于客户端且与客户端协同实现数据传输。如图5所示,该数据传输装置包括文件划分模块51、信息上传模块52和文件上传模块53。
其中,文件划分模块51用于获取目标传输文件,将目标传输文件划分为至少两个分片文件。信息上传文件52用于获取每个分片文件的标识信息和目标传输文件的标识信息,上传至服务器。文件上传模块53用于根据超文本传输协议,将每个分片文件上传至服务器。
在一些实施例中,还包括中断模块,用于发送中断请求至服务器。
其中,中断请求用于指示文件上传中断。
在一些实施例中,还包括续传模块,用于发送续传请求至服务器。
其中,续传请求中至少包括任务标识,任务标识用于指示服务器确定客户端的待续传的分片文件。
本申请实施例提供的装置,可用于执行图3所示实施例中的方法,其实现原理和技术效果类似,在此不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现。例如,文件划分模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上文件划分模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid state disk(SSD))等。
图6为本申请实施例提供的服务器的结构示意图。如图6所示,该服务器60包括:至少一个第一处理器61、第一存储器62、第一总线63。
其中第一处理器61和第一存储器62通过第一总线63完成相互间的通信。
第一处理器61,用于执行第一存储器62中存储的计算机执行指令,具体可以执行上述图2所示实施例中所描述的方法中的相关步骤。
第一处理器61可能是中央处理器。服务器61包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
第一存储器61,用于存放计算机执行指令。第一存储器可能包含高速RAM存储器,也可能还包括非易失性存储器,例如至少一个磁盘存储器。
图7为本申请实施例提供的计算机设备的结构示意图。如图7所示,该计算机设备70包括:至少一个第二处理器71、第二存储器72、第二总线73和通信接口74。
其中:第二处理器71、通信接口74以及第二存储器72通过第二总线73完成相互间的通信。
通信接口74可以用于与其它设备进行通信,该通信接口包括用于进行数据传输的通信接口以及用于进行人机交互的显示界面或操作界面等。
第二处理器71,用于执行第二存储器72中存储的计算机执行指令,具体可以执行上述图3所示实施例中所描述的方法中的相关步骤。
第二处理器71可能是中央处理器。服务器71包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
第二存储器71,用于存放计算机执行指令。第二存储器可能包含高速RAM存储器,也可能还包括非易失性存储器,例如至少一个磁盘存储器。
本实施例还提供一种可读存储介质,可读存储介质中存储有计算机指令,当服务器的至少一个处理器执行该计算机指令时,服务器执行上述图2所示实施例中提供的方法。
本申请实施例还提供一种可读存储介质,可读存储介质中存储有计算机指令,当计算机设备的至少一个处理器执行该计算机指令时,计算机设备执行上述图3所示实施例中提供的方法。
本实施例还提供一种程序产品,该程序产品包括计算机指令,该计算机指令存储在可读存储介质中。服务器的至少一个处理器可以从可读存储介质读取该计算机指令,至少一个处理器执行该计算机指令使得服务器实施上述图2所示实施例中的方法。
本实施例还提供一种程序产品,该程序产品包括计算机指令,该计算机指令存储在可读存储介质中。计算机设备的至少一个处理器可以从可读存储介质读取该计算机指令,至少一个处理器执行该计算机指令使得计算机设备实施上述图3所示实施例中的方法。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系;在公式中,字符“/”,表示前后关联对象是一种“相除”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中,a,b,c可以是单个,也可以是多个。
可以理解的是,在本申请实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。在本申请的实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (16)
1.一种数据传输方法,其特征在于,包括:
响应于文件传输请求,获取目标传输文件中每个分片文件的标识信息,所述目标传输文件包括至少两个分片文件;
根据每个分片文件的标识信息对上传的每个文件进行识别,得到识别结果,所述识别结果用于指示上传的文件是否为分片文件,所述文件为通过超文本传输协议上传的;
根据所述识别结果,确定预设数据库中每个分片文件对应的指示数据的数值,所述预设数据库中存储有所述文件传输请求对应的任务标识和每个分片文件对应的指示数据构成的键值对;
在每个分片文件对应的指示数据的数值与预设值匹配时,将上传的各个文件组合得到目标传输文件。
2.根据权利要求1所述的方法,其特征在于,所述根据每个分片文件的标识信息对上传的每个文件进行识别,得到识别结果,包括:
获取当前上传的文件的标识信息和文件顺序;
根据所述文件顺序,在各个分片文件的标识信息中选取出目标标识信息;
根据所述目标标识信息和当前上传的文件的标识信息,得到当前上传的文件的识别结果。
3.根据权利要求2所述的方法,其特征在于,所述根据所述识别结果,确定预设数据库中每个分片文件对应的指示数据的数值,包括:
若所述目标标识信息与当前上传的文件的标识信息匹配,则将所述预设数据库中所述当前上传的文件对应的指示数据的数值更新为所述预设值。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于续传请求,读取所述预设数据库中每个分片文件对应的指示数据的数值,所述续传请求中至少包括有所述任务标识;
根据每个分片文件对应的指示数据的数值,确定待续传的分片文件以指示客户端进行文件续传。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
获取所述目标传输文件的标识信息,根据所述目标传输文件的标识信息建立文件夹,所述文件夹中包括有用于保存所述分片文件的临时文件。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
响应于中断请求,将上传的文件存储至所述临时文件中,所述中断请求用于指示文件上传中断。
7.根据权利要求1所述的方法,其特征在于,所述将上传的文件组合得到目标传输文件,包括:
将上传的文件组合得到组合文件,获取所述组合文件的标识信息;
将所述组合文件的标识信息与目标传输文件的标识信息进行对比;
若所述组合文件的标识信息与所述目标传输文件的标识信息匹配,则将所述组合文件作为所述目标传输文件。
8.一种数据传输方法,其特征在于,所述方法包括:
获取目标传输文件,将所述目标传输文件划分为至少两个分片文件;
获取每个分片文件的标识信息和所述目标传输文件的标识信息,上传至服务器;
根据超文本传输协议,将每个分片文件上传至所述服务器。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
发送中断请求至所述服务器,所述中断请求用于指示文件上传中断。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
发送续传请求至所述服务器,所述续传请求中至少包括任务标识,所述任务标识用于指示所述服务器确定客户端待续传的分片文件。
11.一种数据传输装置,其特征在于,包括:
信息获取模块,用于响应于文件传输请求,获取目标传输文件中每个分片文件的标识信息,所述目标传输文件包括至少两个分片文件;
结果确定模块,用于根据每个分片文件的标识信息对上传的每个文件进行识别,得到识别结果,所述识别结果用于指示上传的文件是否为分片文件,所述文件为通过超文本传输协议上传的;
数值确定模块,用于根据所述识别结果,确定预设数据库中每个分片文件对应的指示数据的数值,所述预设数据库中存储有所述文件传输请求对应的任务标识和每个分片文件对应的指示数据构成的键值对;
文件组合模块,用于在每个分片文件对应的指示数据的数值与预设值匹配时,将上传的各个文件组合得到目标传输文件。
12.一种数据传输装置,其特征在于,包括:
文件划分模块,用于获取目标传输文件,将所述目标传输文件划分为至少两个分片文件;
信息上传文件,用于获取每个分片文件的标识信息和所述目标传输文件的标识信息,上传至服务器;
文件上传模块,用于根据超文本传输协议,将每个分片文件上传至所述服务器。
13.一种服务器,其特征在于,包括:第一处理器,以及与所述第一处理器通信连接的第一存储器;
所述第一存储器存储计算机执行指令;
所述第一处理器执行所述第一存储器存储的计算机执行指令,以实现如权利要求1-7中任一项所述的方法。
14.一种计算机设备,其特征在于,包括:第二处理器,以及与所述第二处理器通信连接的第二存储器;
所述第二存储器存储计算机执行指令;
所述第二处理器执行所述第二存储器存储的计算机执行指令,以实现如权利要求8-10中任一项所述的方法。
15.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机指令,所述计算机指令被处理器执行时用于实现如权利要求1-10任一项所述的方法。
16.一种程序产品,包括计算机指令,其特征在于,该计算机指令被处理器执行时实现权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111454590.1A CN114172894A (zh) | 2021-12-01 | 2021-12-01 | 数据传输方法、装置、服务器和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111454590.1A CN114172894A (zh) | 2021-12-01 | 2021-12-01 | 数据传输方法、装置、服务器和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114172894A true CN114172894A (zh) | 2022-03-11 |
Family
ID=80482093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111454590.1A Pending CN114172894A (zh) | 2021-12-01 | 2021-12-01 | 数据传输方法、装置、服务器和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114172894A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115242774A (zh) * | 2022-06-24 | 2022-10-25 | 浪潮通信技术有限公司 | 边缘计算网关配置传输方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101534322A (zh) * | 2009-04-13 | 2009-09-16 | 腾讯科技(深圳)有限公司 | 文件上传系统和文件上传方法 |
CN103973421A (zh) * | 2013-02-06 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 文件传送方法及装置 |
CN109361754A (zh) * | 2018-11-05 | 2019-02-19 | 中国广核电力股份有限公司 | 一种基于浏览器的文件传输方法及装置 |
WO2019222934A1 (zh) * | 2018-05-23 | 2019-11-28 | 优视科技新加坡有限公司 | 文件处理方法、装置和系统 |
CN112073535A (zh) * | 2020-09-21 | 2020-12-11 | 烟台云朵软件有限公司 | 一种基于位图的数据包分片传输方法 |
-
2021
- 2021-12-01 CN CN202111454590.1A patent/CN114172894A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101534322A (zh) * | 2009-04-13 | 2009-09-16 | 腾讯科技(深圳)有限公司 | 文件上传系统和文件上传方法 |
CN103973421A (zh) * | 2013-02-06 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 文件传送方法及装置 |
WO2019222934A1 (zh) * | 2018-05-23 | 2019-11-28 | 优视科技新加坡有限公司 | 文件处理方法、装置和系统 |
CN109361754A (zh) * | 2018-11-05 | 2019-02-19 | 中国广核电力股份有限公司 | 一种基于浏览器的文件传输方法及装置 |
CN112073535A (zh) * | 2020-09-21 | 2020-12-11 | 烟台云朵软件有限公司 | 一种基于位图的数据包分片传输方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115242774A (zh) * | 2022-06-24 | 2022-10-25 | 浪潮通信技术有限公司 | 边缘计算网关配置传输方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110716895B (zh) | 目标数据归档方法、装置、计算机设备及介质 | |
CN109361740B (zh) | 一种区块链的区块生成方法、装置、设备和介质 | |
US20210124574A1 (en) | Techniques for updating a file using a multi-version patch file | |
WO2021164178A1 (zh) | 基于云技术的文件分片上传方法、装置、设备及存储介质 | |
CN107483627B (zh) | 一种文件分发、下载方法、分发服务器、客户端及系统 | |
EP2834759B1 (en) | Telemetry system for a cloud synchronization system | |
US8108536B1 (en) | Systems and methods for determining the trustworthiness of a server in a streaming environment | |
EP3340063A1 (en) | Method, device, terminal, server, and system for accessing usb device | |
WO2021139238A1 (zh) | 云业务应用升级方法、装置、电子设备和存储介质 | |
US10001987B2 (en) | Method for updating a firmware file of an input/output module | |
US11190576B2 (en) | File distribution and download method, distribution server, client terminal and system | |
CN107066300B (zh) | 一种存储设备的固件升级方法和存储设备 | |
WO2022116088A1 (zh) | 固件数据处理方法及装置 | |
US11307790B2 (en) | Method, device, and computer program product for managing data placement | |
CN114172894A (zh) | 数据传输方法、装置、服务器和计算机设备 | |
CN110442601B (zh) | 一种Openstack镜像数据并行加速的方法和装置 | |
CN104079623A (zh) | 多级云存储同步控制方法及系统 | |
CN109325002B (zh) | 文本文件处理方法、装置、系统、电子设备、存储介质 | |
CN112835885A (zh) | 一种分布式表格存储的处理方法、装置及系统 | |
CN111224756B (zh) | 确定数据传输异常的方法、装置、存储介质及电子设备 | |
CN114866533A (zh) | 一种文件上传方法、装置及电子设备 | |
CN114268624B (zh) | 版本文件传输方法、装置及服务器 | |
CN107203559B (zh) | 一种划分数据条带的方法和装置 | |
CN113609532B (zh) | 一种数据完整性校验方法、装置、计算机设备和存储介质 | |
CN109885424B (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 |