CN112637357A - 文件传输方法、装置和终端设备 - Google Patents
文件传输方法、装置和终端设备 Download PDFInfo
- Publication number
- CN112637357A CN112637357A CN202011589682.6A CN202011589682A CN112637357A CN 112637357 A CN112637357 A CN 112637357A CN 202011589682 A CN202011589682 A CN 202011589682A CN 112637357 A CN112637357 A CN 112637357A
- Authority
- CN
- China
- Prior art keywords
- file
- transmitted
- fragment
- fragmented
- uploading
- 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
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000005540 biological transmission Effects 0.000 title claims abstract description 53
- 239000012634 fragment Substances 0.000 claims description 141
- 238000012545 processing Methods 0.000 claims description 13
- 238000012546 transfer Methods 0.000 claims description 10
- 238000013467 fragmentation Methods 0.000 claims description 7
- 238000006062 fragmentation reaction Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 238000001914 filtration Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 238000009877 rendering Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000009434 installation Methods 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
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- 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 Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施例提供了一种文件传输方法、装置和终端设备,涉及数据传输技术领域。在对待传输文件进行分片,得到至少一个分片文件后,根据设定的并发数,将各分片文件添加到上传队列中,将上传队列中的分片文件上传到服务端。如此,通过构造上传队列并设定并发数,可以将并发上传的请求维持在设定的数量上,避免了一次性并发过多的上传请求,保证了文件上传的效率。
Description
技术领域
本发明涉及数据传输技术领域,具体而言,涉及一种文件传输方法、装置和终端设备。
背景技术
目前,对于大文件的上传,大多是在对文件进行切片后,对切片的文件进行一次性并发上传,但是这种方式,若文件的分片过多,则会一次性创建大量文件上传的超文本传输协议(Hyper Text Transfer Protocol,HTTP)请求,而大量的HTTP请求会对有并发限制的设备产生影响,导致上传效率较低,甚至崩溃。
发明内容
基于上述研究,本发明提供了一种文件传输方法、装置和终端设备,以改善上述问题。
本发明的实施例可以这样实现:
第一方面,本发明提供一种文件传输方法,应用于终端设备,所述方法包括:
对待传输文件进行分片,得到至少一个分片文件;
根据设定的并发数,将各所述分片文件添加到上传队列中;
将所述上传队列中的分片文件上传到服务端。
在可选的实施方式中,所述根据设定的并发数,将各所述分片文件添加到上传队列中的步骤包括:
判断所述上传队列中的分片文件的个数是否达到所述设定的并发数;
若未达到,根据所述上传队列中的分片文件的个数与所述设定的并发数的差值,添加与所述差值相同数量的所述分片文件到所述上传队列中。
在可选的实施方式中,在根据设定的并发数,将各所述分片文件添加到上传队列中之前,所述方法还包括:
启动目标浏览器线程,计算所述待传输文件的散列值;
根据所述待传输文件的散列值向服务端发送查询请求,所述查询请求用于请求查询所述待传输文件是否存在已上传的分片文件;
接收所述服务端返回的查询结果,根据所述查询结果,将所述待传输文件未上传的分片文件按照所述设定的并发数添加到所述上传队列中。
在可选的实施方式中,所述启动目标浏览器线程,计算所述待传输文件的散列值的步骤包括:
启动所述目标浏览器线程,计算每个所述分片文件的散列值;
将每个所述分片文件的散列值进行拼接,得到所述待传输文件的散列值。
在可选的实施方式中,所述对待传输文件进行分片,得到至少一个分片文件的步骤包括:
按照设定的文件大小,对所述待传输文件进行分片,得到至少一个所述分片文件以及每个所述分片文件的顺序索引;
所述将每个所述分片文件的散列值进行拼接,得到所述待传输文件的散列值的步骤包括:
按照每个所述分片文件的顺序索引,将每个所述分片文件的散列值进行拼接,得到所述待传输文件的散列值。
在可选的实施方式中,所述根据所述查询结果,将所述待传输文件未上传的分片文件按照所述设定的并发数添加到所述上传队列中的步骤包括:
对所述查询结果进行解析,得到解析后的查询结果;
若解析后的查询结果包括所述待传输文件已上传的分片文件的顺序索引,则根据已上传的分片文件的顺序索引,对已上传的分片文件进行过滤,得到未上传的分片文件,将所述未上传的分片文件以及所述未上传的分片文件的顺序索引按照所述设定的并发数添加到所述上传队列中;
若解析后的查询结果包括未存在已上传的分片文件的提示信息,则将所述待传输文件所有的分片文件以及每个所述分片文件的顺序索引按照所述设定的并发数添加到所述上传队列中。
第二方面,本发明提供一种文件传输方法,应用于文件传输系统,所述文件传输系统包括终端设备以及服务端;
所述终端设备对待传输文件进行分片,得到至少一个分片文件,根据设定的并发数,将各所述分片文件添加到上传队列中,将所述上传队列中的分片文件上传到所述服务端;
所述服务端接收所述终端设备上传的分片文件,对接收到的分片文件进行合并。
在可选的实施方式中,在所述终端设备根据设定的并发数,将各所述分片文件添加到上传队列中之前,所述方法还包括:
所述终端设备启动目标浏览器线程,计算所述待传输文件的散列值,根据所述待传输文件的散列值向所述服务端发送查询请求,所述查询请求用于请求查询所述待传输文件是否存在已上传的分片文件;
所述服务端响应所述查询请求,根据所述待传输文件的散列值,查询所述待传输文件是否存在已上传的分片文件,向所述终端设备返回查询结果;
所述终端设备根据所述查询结果将所述待传输文件未上传的分片文件按照所述设定的并发数添加到所述上传队列中。
第三方面,本发明提供一种文件传输装置,应用于终端设备,所述文件传输装置包括文件分片模块、文件处理模块以及文件上传模块;
所述文件分片模块用于对待传输文件进行分片,得到至少一个分片文件;
所述文件处理模块用于根据设定的并发数,将各所述分片文件添加到上传队列中;
所述文件上传模块用于将所述上传队列中的分片文件上传到服务端。
第四方面,本发明提供一种终端设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述实施方式任意一项所述的文件传输方法。
第五方面,本发明提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时实现前述实施方式任意一项所述的文件传输方法。
本发明实施例提供的文件传输方法、装置和终端设备,在对待传输文件进行分片,得到至少一个分片文件后,根据设定的并发数,将各分片文件添加到上传队列中,将上传队列中的分片文件上传到服务端。如此,通过构造上传队列并设定并发数,可以将并发上传的请求维持在设定的数量上,避免了一次性并发过多的上传请求,保证了文件上传的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例所提供的终端设备的一种方框示意图。
图2为本发明实施例所提供的文件传输方法的一种流程示意图。
图3为本发明实施例所提供的文件传输方法的另一种流程示意图。
图4为本发明实施例所提供的文件传输装置的一种方框示意图。
图标:100-终端设备;10-文件传输装置;11-文件分片模块;12-文件处理模块;13-文件上传模块;20-存储器;30-处理器;40-通信单元。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
对于大文件的断点续传需要进行几个阶段:1、前端对数据文件进行切片。2、使用web worker进程计算文件的散列值,如md5。3、通过异步并发控制http请求来并发上传切片。4、后端以流的方式写入分片文件,并对上传的分片文件进行合并。
目前,对于大文件的断点续传,大多是直接在前端页面当前的主进程中计算文件的md5值,然后对文件按照指定大小进行切片。对切片的文件进行一次性并发上传,后端接收完传入的并发文件后进行合并写入。当遇到网络异常或者人为操作中断文件的上传后,再次上传相同的文件会接着之前的进度上传。
但现有的方式,由于在前端页面的主进程中计算文件的md5值,当文件过大时,会导致页面的渲染阻塞,从而进入假死状态。
并且,现有的方式,是全量分片的并发上传,或者是串行一个一个分片的上传方式。对于全量上传,若分片数量过多,则会一次性创建大量http请求,从而对有并发限制的设备(浏览器)有影响,而串行上传的效率在带宽充足的情况下比较低。
基于以上研究,本实施例提供了一种文件传输方法、装置和终端设备,一方面通过定义请求的并发数,按照定义的并发数的数量将分片文件添加到上传队列中,执行文件上传请求,从而将分片并发上传的请求始终维持在在设定的数量上,避免了一次性并发过多的上传请求。另一方面,将计算文件的散列值的操作放到另外一个浏览器线程运行,从而不占用当前页面的主进程,避免了页面的渲染阻塞,进入假死状态的问题。
请参阅图1,图1为本实施例所提供的终端设备100的一种结构示意图,本实施例所提供的终端设备100可以是,但不限于,手机、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digitalassistant,PDA)等电子设备上,本申请实施例对终端设备100的具体类型不作任何限制。
如图1所示,终端设备100可以包括文件传输装置10、存储器20、处理器30以及通信单元40。
所述存储器20、处理器30以及通信单元40相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器20中存储有文件传输装置10,所述文件传输装置10包括至少一个可以软件或固件(firmware)的形式存储于所述存储器20中的软件功能模块,所述处理器30通过运行存储在存储器20内的软件程序以及模块(如本发明实施例中的文件传输装置10),从而执行各种功能应用以及数据处理,即实现本发明实施例中的文件传输方法。
其中,所述存储器20可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器用于存储程序,所述处理器在接收到执行指令后,执行所述程序。
所述处理器30可能是一种集成电路芯片,具有数据的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等。可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
通信单元40用于通过网络建立终端设备100与其他设备(如网站服务器、服务端)之间的通信连接,实现数据的收发操作。例如,所述终端设备100可以通过网络从服务端下载安装所需要的客户端,例如浏览器(IE浏览器、UC浏览器、360浏览器及QQ浏览器等)或其它各种应用程序。所述终端设备100上安装的客户端可直接与所述服务端进行数据通信和交互。
在本实施例中,所述服务端可以是单个物理服务器,也可以是由多个用于执行不同数据处理功能的物理服务器构成的服务器组。服务器组可以是集中式的,也可以是分布式的。在一些可能的实施方式中,若服务端采用单个物理服务器,可以基于不同服务功能为该物理服务器分配不同的逻辑服务器组件。
所述网络可以是,但不限于,有线网络或无线网络。所述终端设备100的操作系统可以是,但不限于,安卓(Android)系统、IOS(iPhone operating system)系统、Windowsphone系统、Windows系统等。
可以理解,图1所示的结构仅为示意,终端设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
基于图1的实现架构,请结合参阅图2,图2为本实施例所提供的文件传输方法的一种流程示意图。该方法由图1所示的终端设备100执行,下面对图2所示的流程示意图进行详细阐述。
步骤S10:对待传输文件进行分片,得到至少一个分片文件。
步骤S20:根据设定的并发数,将各分片文件添加到上传队列中。
步骤S30:将上传队列中的分片文件上传到服务端。
其中,当终端用户需要上传文件时,则可以先选择好待传输文件,终端设备100则可对选择的待传输文件进行分片,得到该文件的至少一个分片文件。
在得到该文件的分片文件后,则可以根据设定的并发数,将各分片文件添加到上传队列中,然后将上传队列中的分片文件上传到服务端。
本实施例所提供的文件传输方法,在对待传输文件进行分片,得到至少一个分片文件后,根据设定的并发数,将各分片文件添加到上传队列中,将上传队列中的分片文件上传到服务端。如此,构造上传队列并设定上传的并发数,可以将并发上传的请求维持在设定的数量上,有效避免了一次性并发过多的上传请求,保证了文件上传的效率。
需要说明的是,本实施例中,每个分片文件的上传,即对应一次文件上传的http请求,因此,根据设定的并发数,将各分片文件添加到上传队列中,也可以理解为根据设定的并发数,对各分片文件的http请求进行处理,处理http请求的过程,即为上传分片文件。
为了保证分片文件上传的有序性以及避免一次性并发过多的上传请求,可选的,在本实施例中,根据设定的并发数,将各分片文件添加到上传队列中的步骤包括:
判断上传队列中的分片文件的个数是否达到并发数。
若未达到,根据上传队列中的分片文件的个数与并发数的差值,添加与差值相同数量的分片文件到上传队列中。
其中,在添加分片文件到上传队列时,首先判断上传队列中的分片文件的个数是否达到了并发数,若未达到设定的并发数,根据上传队列中分片文件的个数与并发数的差值,添加与差值相同数量的分片文件到上传队列中。例如,设定的并发数是4,上传队列中的分片文件的个数是2,上传队列中的分片文件的个数与并发数的差值为2,则可以添加2个分片文件到上传队列中。
若上传队列中的分片文件的个数达到了并发数,则需要等待上传队列中的分片文件完成上传后,才将未添加到上传队列中的分片文件添加到上传队列中。例如,设定的并发数是4,上传队列中的分片文件的个数为4,达到了设定的并发数,则需要等待上传队列中的分片文件上传完成,才能添加分片文件。例如,当上传队列中的一个分片文件完成上传后,则可以将一个新的(即未添加的)分片文件添加到上传队列中进行上传,当上传队列中的两个分片文件完成上传后,则可以将两个新的分片文件添加到上传队列中进行上传,以此类推,只有当上传队列中有对应的分片文件上传完成后,再可以新的分片文件添加到队列中进行上传。
本实施例所提供的文件传输方法,通过构造上传队列并设定上传的并发数,可以有效将并发上传的请求维持在设定的数量上,进而避免了一次性并发过多的上传请求,保证了文件上传的效率。
可选的,为了保证上传后的文件的连续性,在本实施例中,对待传输文件进行分片,得到至少一个分片文件的步骤包括:
按照设定的文件大小,对待传输文件进行分片,得到至少一个所述分片文件以及每个所述分片文件的顺序索引。
可选的,在本实施例中,可通过Blob.prototype.slice方法,对待传输文件进行分片。通过调用Blob.prototype.slice方法,即可按照设定的文件大小,对待传输文件进行分片,得到分片文件以及每个分片文件的顺序索引。
例如,设定的文件大小为a,待传输文件的大小为b,则可得到b/a个分片文件。
在本实施例中,每个分片文件的顺序索引,即表征该分片文件在待传输文件的顺序,在得到每个分片文件的顺序索引,按照每个分片文件的顺序索引,依次对所有的分片文件进行拼接,即可还原得到待传输文件,从而可保证文件的连续性。
在得到每个分片文件以及每个分片文件的顺序索引后,即可将得到的分片文件添加到上传队列中,然后上传到服务端。
鉴于实际应用中,网络异常或者人为中断的操作会中止文件的上传,在这种情况下,服务端已经接收到部分的上传的文件,为了提高文件的上传效率,避免文件重复上传以及节省用户的网络流量,在本实施例中,在根据设定的并发数,将各所述分片文件添加到上传队列中之前,文件传输方法还包括:
启动目标浏览器线程,计算待传输文件的散列值。
根据待传输文件的散列值向服务端发送查询请求。
其中,查询请求用于请求查询待传输文件是否存在已上传的分片文件。
接收服务端返回的查询结果,根据查询结果,将待传输文件未上传的分片文件按照设定的并发数添加到上传队列中。
为了避免文件的散列值的计算过程占用当前页面的主进程,即文件传输的主进程,在本实施例中,利用浏览器的多线程模型,使用WebWorker启动一个新的浏览器线程(即目标浏览器线程),计算待传输文件的散列值。目标浏览器线程在计算得到待传输文件的散列值后,将计算得到的散列值推送回到主进程。
可选的,在本实施例中,待传输文件的散列值可以是md5散列值,目标浏览器线程可以是spark-md5。
为了提高计算效率,在本实施例中,启动目标浏览器线程,计算待传输文件的散列值的步骤包括:
启动目标浏览器线程,计算每个分片文件的散列值。
将每个分片文件的散列值进行拼接,得到待传输文件的散列值。
其中,可通过目标浏览器线程,计算待传输文件的每个分片文件的散列值,然后再将每个分片文件的散列值进行拼接,即可得到待传输文件的散列值。
为了保证文件的散列值的唯一性、准确性以及文件的连续性,在本实施例中,可按照每个分片文件的顺序索引,将每个分片文件的散列值进行拼接,得到待传输文件的散列值。
例如,某个待传输文件存在分片文件a,分片文件b以及分片文件c,分片文件a的散列值为A,分片文件b的散列值为B,分片文件c的散列值为C,假设分片文件a,分片文件b以及分片文件c的顺序索引依次分别为1、2、3,即分片文件a在前,分片文件b在中,分片文件c在后,则将每个分片文件的散列值进行拼接,得到待传输文件的散列值为ABC。
在得到待传输文件的散列值之后,即可根据待传输文件的散列值,向服务端发送查询请求,请求查询该文件是否存在已上传的分片文件。服务端在查询之后,便会向终端设备100返回查询结果。终端设备100便可以根据查询结果,得到将该待传输文件未上传的分片文件,然后将该待传输文件未上传的分片文件添加到上传队列中,以进行上传。
在本实施例中,终端设备100在首次上传待传输文件时,会将待传输文件的散列值发送到服务端,服务端会根据终端设备100上传的待传输文件的散列值建立文件夹,即建立以待传输文件的散列值命名的文件夹,后续服务端在接收到终端设备100上传的该待传输文件的分片文件时,则将该待传输文件的分片文件保存在该文件夹中。
在本实施例中,终端设备100在上传分片文件时,会将分片文件的顺序索引一并上传,因此,服务端在接收到终端设备100上传的分片文件后,将分片文件进行保存时,每个分片文件的文件名则可以待传输文件的散列值以及该分片文件的顺序索引进行命名。例如,待传输文件的散列值为a,该待传输文件的某分片文件的顺序索引为1,则该分片文件的文件名为a_1。
当终端设备100向服务端发送查询请求,请求查询待传输文件是否存在已上传的分片文件时,可以将待传输文件的散列值发送到服务端,然后向服务端请求查询该待传输文件是否存在已上传的分片文件,服务端在接收到终端设备100发送的查询请求以及待传输文件的散列值后,则可以响应查询请求,根据待传输文件的散列值,查找本地是否存在与待传输文件的散列值相同的文件夹名,若存在,即表示该待传输文件已上传过分片文件,找到该待传输文件的散列值对应的文件夹,将该文件夹下的分片文件的文件名打包,作为查询结果返回到终端设备100。
若未查找到与该待传输文件的散列值相同的文件夹名,即表示该待传输文件未上传过分片文件,然后向终端设备100返回未存在已上传的分片文件的查询结果。
终端设备100在接收到服务端返回的查询结果后,即可根据查询结果将文件未上传的分片文件按照设定的并发数添加到上传队列中,等待上传。
可选的,在本实施例中,根据查询结果将文件未上传的分片文件按照设定的并发数添加到上传队列中的步骤包括:
对查询结果进行解析,得到解析后的查询结果。
若解析后的查询结果包括待传输文件已上传的分片文件的顺序索引,则根据已上传的分片文件的顺序索引,对已上传的分片文件进行过滤,得到未上传的分片文件,将未上传的分片文件以及未上传的分片文件的顺序索引按照并发数添加到上传队列中。
若解析后的查询结果包括未存在已上传的分片文件的提示信息,则将待传输文件所有的分片文件以及每个分片文件的顺序索引按照并发数添加到上传队列中。
其中,终端设备100在接收到服务端发送的查询结果后,对查询结果进行解析,即可得到待传输文件是否存在已上传分片文件的结果。若解析后的查询结果包括待传输文件已上传的分片文件的顺序索引,则根据已上传的分片文件的顺序索引,对待传输文件已上传的分片文件进行过滤,从而得到待传输文件未上传的分片文件。在得到未传输的分片文件后,则根据设定的并发数,将待传输文件未传输的分片文件以及未传输分片文件的顺序索引按照设定的并发数添加到上传队列中。若解析后的查询结果包括未存在已上传的分片文件的提示信息,则将待传输文件所有的分片文件以及每个分片文件的顺序索引按照设定的并发数添加到上传队列中。
在将分片文件以及分片文件的顺序索引添加到上传队列中,则可以上传队列中的分片文件以及分片文件的顺序索引上传到服务端。可以理解地,在每上传一个分片文件时,该分片文件的顺序索引会一并上传到服务端。
而服务端在接收到待传输文件的分片文件以及分片文件的顺序索引后,将分片文件保存在待传输文件对应的文件夹中,即以待传输文件的散列值命名的文件夹中,然后根据待传输文件的散列值以及分片文件的顺序索引对分片文件进行命名。
服务端在接收完待传输文件所有的分片文件之后,则可将所有的分片文件进行合并,以还原得到待传输文件。
为了保证待传输文件的一致性以及连续性,服务端可按照所有分片文件的顺序索引进行合并。
本实施例所提供的文件传输方法,通过启动目标浏览器线程,计算文件的散列值,避免了文件的散列值的计算过程占用当前页面的主进程,进而有效避免了页面的渲染阻塞,避免了页面出现假死状态。通过计算文件的散列值,根据文件的散列值,确保了文件上传的进度,避免了文件的重复上传。通过设定文件上传的并发数,可以将并发上传的请求维持在设定的数量上,避免了一次性并发过多的上传请求,保证了文件上传的效率。
基于同一发明构思,请结合参阅图3,本实施例还提供一种文件传输方法,应用于文件传输系统,本实施例所提供的文件传输系统包括终端设备100以及服务端。下面对图3所示的流程示意图进行详细阐述。
步骤S1:终端设备对待传输文件进行分片,得到至少一个分片文件,根据设定的并发数,将各分片文件添加到上传队列中,将上传队列中的分片文件上传到服务端。
步骤S2:服务端接收终端设备上传的分片文件,对接收到的分片文件进行合并。
在可选的实施方式中,在终端设备100根据设定的并发数,将各分片文件依次添加到上传队列中之前,所述方法还包括:
终端设备100启动目标浏览器线程,计算待传输文件的散列值,根据待传输文件的散列值向服务端发送查询请求,查询请求用于请求查询待传输文件是否存在已上传的分片文件。
服务端响应查询请求,根据待传输文件的散列值,查询待传输文件是否存在已上传的分片文件,向终端设备100返回查询结果。
终端设备100根据查询结果将待传输文件未上传的分片文件按照设定的并发数添加到上传队列中。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述应用于文件传输系统的文件传输方法的具体工作过程,可以参考前述应用于终端设备100的文件传输方法中的对应过程,在此不再过多赘述。
本实施例所提供的应用于文件传输系统的文件传输方法,通过启动目标浏览器线程,计算文件的散列值,避免了文件的散列值的计算过程占用当前页面的主进程,进而有效避免了页面的渲染阻塞,避免了页面出现假死状态。通过计算文件的散列值,根据文件的散列值,确保了文件上传的进度,避免了文件的重复上传。通过设定文件上传的并发数,可以将并发上传的请求维持在设定的数量上,避免了一次性并发过多的上传请求,保证了文件上传的效率。
在上述基础上,请结合参阅图4,本实施例还提供一种文件传输装置10,应于终端设备100,本实施例所提供的文件传输装置10包括文件分片模块11、文件处理模块12以及文件上传模块13。
文件分片模块11用于对待传输文件进行分片,得到至少一个分片文件。
文件处理模块12用于根据设定的并发数,将各分片文件添加到上传队列中。
文件上传模块13用于将上传队列中的分片文件上传到服务端。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述文件传输装置10的具体工作过程,可以参考前述应用于终端设备100的文件传输方法中的对应过程,在此不再过多赘述。
综上,本实施例所提供的文件传输方法、装置和终端设备,通过启动目标浏览器线程,计算文件的散列值,避免了文件的散列值的计算过程占用当前页面的主进程,进而有效避免了页面的渲染阻塞,避免了页面出现假死状态。通过计算文件的散列值,根据文件的散列值,确保了文件上传的进度,避免了文件的重复上传。通过设定文件上传的并发数,可以将并发上传的请求维持在设定的数量上,避免了一次性并发过多的上传请求,保证了文件上传的效率。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种文件传输方法,其特征在于,应用于终端设备,所述方法包括:
对待传输文件进行分片,得到至少一个分片文件;
根据设定的并发数,将各所述分片文件添加到上传队列中;
将所述上传队列中的分片文件上传到服务端。
2.根据权利要求1所述的文件传输方法,其特征在于,所述根据设定的并发数,将各所述分片文件添加到上传队列中的步骤包括:
判断所述上传队列中的分片文件的个数是否达到所述设定的并发数;
若未达到,根据所述上传队列中的分片文件的个数与所述设定的并发数的差值,添加与所述差值相同数量的所述分片文件到所述上传队列中。
3.根据权利要求1或2所述的文件传输方法,其特征在于,在根据设定的并发数,将各所述分片文件添加到上传队列中之前,所述方法还包括:
启动目标浏览器线程,计算所述待传输文件的散列值;
根据所述待传输文件的散列值向服务端发送查询请求,所述查询请求用于请求查询所述待传输文件是否存在已上传的分片文件;
接收所述服务端返回的查询结果,根据所述查询结果,将所述待传输文件未上传的分片文件按照所述设定的并发数添加到所述上传队列中。
4.根据权利要求3所述的文件传输方法,其特征在于,所述启动目标浏览器线程,计算所述待传输文件的散列值的步骤包括:
启动所述目标浏览器线程,计算每个所述分片文件的散列值;
将每个所述分片文件的散列值进行拼接,得到所述待传输文件的散列值。
5.根据权利要求4所述的文件传输方法,其特征在于,所述对待传输文件进行分片,得到至少一个分片文件的步骤包括:
按照设定的文件大小,对所述待传输文件进行分片,得到至少一个所述分片文件以及每个所述分片文件的顺序索引;
所述将每个所述分片文件的散列值进行拼接,得到所述待传输文件的散列值的步骤包括:
按照每个所述分片文件的顺序索引,将每个所述分片文件的散列值进行拼接,得到所述待传输文件的散列值。
6.根据权利要求5所述的文件传输方法,其特征在于,所述根据所述查询结果,将所述待传输文件未上传的分片文件按照所述设定的并发数添加到所述上传队列中的步骤包括:
对所述查询结果进行解析,得到解析后的查询结果;
若解析后的查询结果包括所述待传输文件已上传的分片文件的顺序索引,则根据已上传的分片文件的顺序索引,对已上传的分片文件进行过滤,得到未上传的分片文件,将所述未上传的分片文件以及所述未上传的分片文件的顺序索引按照所述设定的并发数添加到所述上传队列中;
若解析后的查询结果包括未存在已上传的分片文件的提示信息,则将所述待传输文件所有的分片文件以及每个所述分片文件的顺序索引按照所述设定的并发数添加到所述上传队列中。
7.一种文件传输方法,其特征在于,应用于文件传输系统,所述文件传输系统包括终端设备以及服务端;
所述终端设备对待传输文件进行分片,得到至少一个分片文件,根据设定的并发数,将各所述分片文件添加到上传队列中,将所述上传队列中的分片文件上传到所述服务端;
所述服务端接收所述终端设备上传的分片文件,对接收到的分片文件进行合并。
8.根据权利要求7所述的文件传输方法,其特征在于,在所述终端设备根据设定的并发数,将各所述分片文件添加到上传队列中之前,所述方法还包括:
所述终端设备启动目标浏览器线程,计算所述待传输文件的散列值,根据所述待传输文件的散列值向所述服务端发送查询请求,所述查询请求用于请求查询所述待传输文件是否存在已上传的分片文件;
所述服务端响应所述查询请求,根据所述待传输文件的散列值,查询所述待传输文件是否存在已上传的分片文件,向所述终端设备返回查询结果;
所述终端设备根据所述查询结果将所述待传输文件未上传的分片文件按照所述设定的并发数添加到所述上传队列中。
9.一种文件传输装置,其特征在于,应用于终端设备,所述文件传输装置包括文件分片模块、文件处理模块以及文件上传模块;
所述文件分片模块用于对待传输文件进行分片,得到至少一个分片文件;
所述文件处理模块用于根据设定的并发数,将各所述分片文件添加到上传队列中;
所述文件上传模块用于将所述上传队列中的分片文件上传到服务端。
10.一种终端设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1-6任意一项所述的文件传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011589682.6A CN112637357A (zh) | 2020-12-29 | 2020-12-29 | 文件传输方法、装置和终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011589682.6A CN112637357A (zh) | 2020-12-29 | 2020-12-29 | 文件传输方法、装置和终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112637357A true CN112637357A (zh) | 2021-04-09 |
Family
ID=75286018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011589682.6A Pending CN112637357A (zh) | 2020-12-29 | 2020-12-29 | 文件传输方法、装置和终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112637357A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114915622A (zh) * | 2022-05-31 | 2022-08-16 | 广东三维睿新科技有限公司 | 一种web端基于http的文件传输方法 |
CN115037741A (zh) * | 2022-08-11 | 2022-09-09 | 中国长江三峡集团有限公司 | 一种文件传输方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107172131A (zh) * | 2017-04-26 | 2017-09-15 | 腾讯科技(深圳)有限公司 | 文件上传方法和装置 |
CN109714330A (zh) * | 2018-12-24 | 2019-05-03 | 武汉烽火众智数字技术有限责任公司 | 一种跨网络的断点续传方法和系统 |
CN109982160A (zh) * | 2019-04-09 | 2019-07-05 | 北京奇艺世纪科技有限公司 | 一种视频上传的方法、装置、客户端设备及服务器 |
US10771524B1 (en) * | 2019-07-31 | 2020-09-08 | Theta Labs, Inc. | Methods and systems for a decentralized data streaming and delivery network |
CN111917867A (zh) * | 2020-07-29 | 2020-11-10 | 星辰天合(北京)数据科技有限公司 | 上传Web文件的方法及装置 |
-
2020
- 2020-12-29 CN CN202011589682.6A patent/CN112637357A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107172131A (zh) * | 2017-04-26 | 2017-09-15 | 腾讯科技(深圳)有限公司 | 文件上传方法和装置 |
CN109714330A (zh) * | 2018-12-24 | 2019-05-03 | 武汉烽火众智数字技术有限责任公司 | 一种跨网络的断点续传方法和系统 |
CN109982160A (zh) * | 2019-04-09 | 2019-07-05 | 北京奇艺世纪科技有限公司 | 一种视频上传的方法、装置、客户端设备及服务器 |
US10771524B1 (en) * | 2019-07-31 | 2020-09-08 | Theta Labs, Inc. | Methods and systems for a decentralized data streaming and delivery network |
CN111917867A (zh) * | 2020-07-29 | 2020-11-10 | 星辰天合(北京)数据科技有限公司 | 上传Web文件的方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114915622A (zh) * | 2022-05-31 | 2022-08-16 | 广东三维睿新科技有限公司 | 一种web端基于http的文件传输方法 |
CN114915622B (zh) * | 2022-05-31 | 2024-01-30 | 广东三维睿新科技有限公司 | 一种web端基于http的文件传输方法 |
CN115037741A (zh) * | 2022-08-11 | 2022-09-09 | 中国长江三峡集团有限公司 | 一种文件传输方法及装置 |
CN115037741B (zh) * | 2022-08-11 | 2022-11-15 | 中国长江三峡集团有限公司 | 一种文件传输方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110060064B (zh) | 一种交易信息验证方法及相关装置 | |
CN108566290B (zh) | 服务配置管理方法、系统、存储介质和服务器 | |
CN109391673B (zh) | 一种管理更新文件的方法、系统及终端设备 | |
CN112637357A (zh) | 文件传输方法、装置和终端设备 | |
WO2017215646A1 (zh) | 数据传输方法和装置 | |
EP3991389B1 (en) | File upload control for client-side applications in proxy solutions | |
CN110659151A (zh) | 数据校验方法及装置,存储介质 | |
CN113132267B (zh) | 一种分布式系统、数据聚合方法和计算机可读存储介质 | |
CN113411404A (zh) | 一种文件下载方法、装置、服务器及存储介质 | |
CN110460668B (zh) | 一种文件上传方法、装置、计算机设备和存储介质 | |
CN111680104A (zh) | 数据同步方法、装置、计算机设备及可读存储介质 | |
KR20170088950A (ko) | 검색 엔진으로 웹 사이트 인증 데이터를 제공하기 위한 방법 및 장치 | |
CN110750539A (zh) | 基于Redis数据库的信息查询方法、装置及电子设备 | |
CN108319624B (zh) | 数据加载方法及装置 | |
CN112969198A (zh) | 数据传输方法、终端及存储介质 | |
CN115617760B (zh) | 一种大批量文件快速上传的方法 | |
CN107094160B (zh) | 一种数据文件下载的方法和系统 | |
CN116614495A (zh) | 数据上传方法、装置、设备、存储介质及程序产品 | |
CN111245949A (zh) | 文件归档传输方法、装置及设备 | |
CN108965463B (zh) | 一种文件传输方法、装置和系统 | |
CN110955460A (zh) | 一种服务进程启动方法、装置、电子设备和存储介质 | |
CN110990360A (zh) | 基于网络存储设备的文件同步方法及相关组件 | |
CN114172998B (zh) | 一种文件传输方法、装置、电子设备及存储介质 | |
CN115048272A (zh) | 容器监控处理方法、装置、宿主机、系统、存储介质及程序产品 | |
CN114615325A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210409 |