CN112311897A - 资源文件下载方法、装置、设备及介质 - Google Patents
资源文件下载方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112311897A CN112311897A CN202011286661.7A CN202011286661A CN112311897A CN 112311897 A CN112311897 A CN 112311897A CN 202011286661 A CN202011286661 A CN 202011286661A CN 112311897 A CN112311897 A CN 112311897A
- Authority
- CN
- China
- Prior art keywords
- file
- resource
- resource file
- client
- downloading
- 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 49
- 239000012634 fragment Substances 0.000 claims abstract description 111
- 230000005540 biological transmission Effects 0.000 claims abstract description 35
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000002699 waste material Substances 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种资源文件下载方法、装置、设备及介质,涉及计算机技术领域,用于提高下载资源文件的下载速度。该方法包括:应用于客户端中,所述客户端运行在终端设备上,所述方法包括:获取待下载的资源文件的文件信息,所述文件信息包括存储所述资源文件的服务器地址信息;根据所述终端设备的传输带宽,创建多个第一线程;根据所述服务器地址信息,通过所述多个第一线程中每个第一线程分别从服务器下载所述资源文件的文件分片;根据获得的各个文件分片,获得所述资源文件。该方法通过在下载资源文件时,创建多个线程,多个线程并发下载资源文件,提高了资源文件的下载速度。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种资源文件下载方法、装置、设备及介质。
背景技术
团队即时通讯应用通常支持资源文件下载功能,即资源文件被存储在服务器中,当用户需要该资源文件时,用户可以通过团队即时通讯客户端向服务器请求资源文件,以获得该资源文件。
目前,客户端通常是利用超文本传输协议(Hyper Text Transfer Protocol,HTTP)向服务器请求资源文件,但当下载资源文件的文件大小较大时,资源文件的下载速度较慢。
发明内容
本申请实施例提供一种资源文件下载方法、装置、设备及介质,用于提高资源文件的下载速度。
一方面,提供一种资源文件下载方法,应用于客户端中,所述客户端运行在终端设备上,所述方法包括:
获取待下载的资源文件的文件信息,所述文件信息包括存储所述资源文件的服务器地址信息;
根据所述终端设备的传输带宽,创建多个第一线程;
根据所述服务器地址信息,通过所述多个第一线程中每个第一线程分别从服务器下载所述资源文件的文件分片;
根据获得的各个文件分片,获得所述资源文件。
在本申请实施例中,提供一种资源文件下载装置,所述装置设置在终端设备中,所述装置包括:
获取模块,用于获取待下载的资源文件的文件信息,所述文件信息包括存储所述资源文件的服务器地址信息;
创建模块,用于根据所述终端设备的传输带宽,创建多个第一线程;
下载模块,用于根据所述服务器地址信息,通过所述多个第一线程中每个第一线程分别从服务器下载所述资源文件的文件分片;
获得模块,用于根据获得的各个文件分片,获得所述资源文件。
在一种可能的实施例中,所述文件信息包括所述资源文件的文件大小信息;所述创建模块还用于:
在所述根据所述客户端的传输带宽,创建多个第一线程之前,根据所述文件大小信息,确定所述资源文件的文件大小大于或等于第一阈值;
根据所述文件大小信息,确定所述资源文件的文件大小小于第一阈值,则创建一个第一线程,并通过一个第一线程从服务器下载所述资源文件。
在一种可能的实施例中,当所述文件大小大于或等于第二阈值时,所述创建模块还用于:向所述服务器请求获得存储有所述资源文件的其它客户端的客户端地址信息;所述其它客户端为除了所述客户端之外的客户端;根据所述客户端地址信息,创建第二线程;
所述下载模块,还用于通过所述第二线程从所述其它客户端下载所述待下载资源的文件分片。
在一种可能的实施例中,所述下载模块,具体用于根据设定的文件分片大小,通过所述多个第一线程的每个第一线程,按照文件分片的排列顺序从第一个文件分片开始从服务器下载各个文件分片,所述排列顺序包括从所述资源文件开始到结束的正向顺序或从所述资源文件结束到开始的逆向顺序;通过所述第二线程,按照所述排列顺序从最后一个文件分片开始从所述其它客户端开始下载所述资源文件;
所述获得模块,具体用于当从所述其它客户端获得的所述资源文件中的部分文件与从所述服务器获得的部分文件重合时,获得所述资源文件。
在一种可能的实施例中,所述下载模块具体用于通过所述每个第一线程向服务器发送数据请求;所述数据请求携带有用于指示第一线程当前需要下载的文件分片在所述资源文件中的大小区间;
通过所述每个第一线程接收所述服务器发送的与所述大小区间所对应的文件分片。
在一种可能的实施例中,所述终端设备的传输带宽越大,则对应创建的第一线程的数量越多。
本申请实施例提供一种计算机设备,包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如一方面中任一项的资源文件下载方法。
本申请实施例提供一种存储介质,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如一方面中任一项的资源文件下载方法。
由于本申请实施例采用上述技术方案,至少具有如下技术效果:
在本申请实施例中,客户端在获得待下载的资源文件的文件信息之后,可以依据客户端所在的中终端设备的传输带宽,确定创建第一线程的数量,并根据所创建的多个第一线程并发向服务器请求资源文件的文件分片,基于这些文件分片,以获得资源文件,也就是说,在本申请实施例中是通过多个第一线程并发向服务器请求文件分片,相较于单个线程向服务器请求下载资源文件的方式,本申请实施例提供的下载资源文件的速度更快,下载效率更高。且,能够更快地响应用户的下载需求,提升了用户使用体验。
附图说明
图1为本申请实施例提供的一种资源文件下载方法的应用场景示意图;
图2为本申请实施例提供的图1中各个设备的交互过程示意图;
图3为本申请实施例提供的客户端展示的聊天界面示例图;
图4为本申请实施例提供的资源文件分片结果的一种示例图;
图5为本申请实施例提供的一种下载资源文件的一种示例图;
图6为本申请实施例提供的一种资源文件下载进度展示示例图;
图7为本申请实施例提供的一种资源文件下载装置的结构示意图;
图8为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了更好的理解本申请实施例提供的技术方案,下面将结合说明书附图以及具体的实施方式进行详细的说明。
为了便于本领域技术人员更好地理解本申请的技术方案,下面对本申请涉及的名词进行介绍。
资源文件:泛指可以从设备中读取出的内容,或者其他可以在计算机设备中展示的内容。资源文件的类型可以是图片、音频、视频、文字、表情等一种或多种组合。例如客户端可以通过专门的程序接口从设备中读取,并在客户端中根据用户需要进行展示。
超文本传输协议(Hyper Text Transfer Protocol,HTTP):是一种用于分布式、协作式和超媒体信息系统的应用层协议,以HTTP下载为例,作为HTTP客户端通过资源标识符向HTTP服务端发送所有请求,HTTP服务端根据接收到的请求后,向客户端发送响应信息。
点对点(peer-to-peer,P2P)传输:又可以称为对等互联网络技术,是指依赖于参与网络的各个设备的计算能力和带宽,以为参与设备提供服务。以P2P下载为例,当设备A和设备B均属于网络中参与设备,那么设备A下载资源文件时,设备A可以从设备B请求该资源文件,无需各个参与设备均从服务器下载资源文件,以提高网络传输效率。
传输带宽:本申请中是指设备的传输带宽,是设备传输性能的外在体现,具体可以包括设备的下行传输带宽。在团队即时通讯应用中,使用该团队即时通讯应用的团队可以根据运营商的配置,获得一定的传输带宽,可以是该团队中各个设备共同使用该传输带宽,那么这种情况下,团队中某个设备的传输带宽即为该团队的传输带宽。或者,该团队中的管理员可以为每个设备分配一定的传输带宽,那么这种情况下,设备的带宽即为管理员为其分配的传输带宽。
文件信息:是指资源文件的文件信息,又可以称为资源文件的元数据,资源文件的文件信息包括存储该资源文件的服务器地址信息,该服务器地址信息可以是通过该资源文件的下载链接表示,该文件信息还包括资源文件的文件大小等。该文件信息还可以包括用于存储该资源文件的内存地址信息。该文件信息还可以包括该资源文件唯一的文件标识,该文件标识可以是文件名、文件名和文件大小、或者基于加密算法,对文件名和文件大小进行加密计算得到的唯一字符串等。
下面对相关技术进行介绍:
在相关技术中,客户端通常是基于http协议从服务器下载资源文件,一般在下载资源文件时,客户端会创建一个线程,利用该线程向服务器请求资源文件。但这种方式,当资源文件较大时,一个线程的下载速度较慢。且,下载响应超时之后,又需要该线程重新请求服务器进行下载,进一步降低了下载速度。
有鉴于此,本申请实施例提供的一种资源文件下载方法,下面对本申请实施例中的资源文件下载方法的设计思想进行介绍。
在本申请实施例中,客户端可以根据其所属的终端设备的传输带宽,创建多个线程,利用多个线程并发,向服务器请求资源文件,以提高下载资源文件的速度,在不影响客户端的正常使用的情况下,最大程度地提高资源文件下载速度。
进一步地,资源文件较小时,一个线程通常可以顺利完成资源文件下载,因此在本申请实施例中可以是在资源文件较大时,再创建多个线程下载资源文件。
进一步地,当资源文件较大时,除了并发多个线程,还可以引入P2P下载方式,客户端可以结合P2P下载方式和HTTP下载方式下载资源文件,进一步提高下载资源文件的速度。
基于上述设计思想,下面对本申请实施例的资源文件下载方法的应用场景进行介绍。
请参照图1,为本申请实施例提供的一种资源文件下载方法的应用场景图,该应用场景包括多个终端设备和服务器,每个终端设备中安装有客户端。该客户端可以是预安装的客户端、网页版的客户端或嵌入在第三方应用中的客户端,本申请不限制客户端的具体类型。该客户端泛指支持资源下载的任意应用所对应的客户端,客户端例如即时通讯应用客户端,具体例如团队即时通讯客户端。服务器为该应用所对应的后台服务器。
在图1中,是以第一用户对应第一终端设备110-1,第一终端设备110-1安装有第一客户端111-1,以第二用户对应第二终端设备110-2,第二终端设备110-2安装有第二客户端111-2,以第三用户对应第三终端设备110-3,第三终端设备110-3安装有第三客户端111-3为例进行介绍,具体不限制终端设备以及客户端的数量。
某个用户可以通过其对应的客户端上传某个资源文件,服务器120获得该资源文件之后,可以存储该资源文件,例如服务器120可以将该资源文件存储在数据库中,该数据库可以是设置在服务器120中,或者存储在服务器120可以访问的其它存储设备中。服务器120进一步可以将该资源文件的文件信息以消息形式共享给团队内其他用户的客户端,以使得其他用户的客户端可以展示该资源文件的文件信息,以便于其他用户可以对该资源文件进行相应的操作,例如查看操作、下载操作、预览操作、在线编辑操作或转发操作等。
例如当第一用户需要下载该资源文件时,第一用户可以在第一客户端111-1上进行文件下载操作,第一客户端111-1响应于该文件下载操作,下载该资源文件。下载资源文件的具体内容将在下文中进行介绍。
其中,终端设备又可以简称为终端,终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
应当说明的是,图1所示的应用场景只是对本申请实施例涉及的资源文件下载方法的应用场景进行示例,实际并不限制本申请实施例涉及的资源文件下载方法的应用场景。
基于图1所示的应用场景,下面对本申请实施例的资源文件下载方法进行介绍。请参照图2,为本申请实施例提供的图1中各个设备之间的交互过程示意图,该交互过程具体包括:
S201,第一客户端111-1响应文件下载操作,获取文件信息。
当第一用户需要下载某个资源文件时,第一用户可以通过第一客户端111-1进行文件下载操作,例如第一用户可以点击聊天界面中资源文件通知消息关联的下载按键,相当于第一用户进行了文件下载操作。第一客户端111-1响应于该文件下载操作,确定第一用户当前需要下载的资源文件,第一客户端111-1可以获得该资源文件的文件信息。
具体的,资源文件通知消息是指其它客户端发送的用于通知上传该资源文件的消息。资源文件通知消息可以携带有资源文件的文件信息,因此第一客户端111-1可以在接收其它客户端发送的资源文件通知消息之后,可以基于该资源文件通知消息解析得到该资源文件的文件信息。
或者,第一客户端111-1提前预存有各个文件的文件信息,在确定第一用户需要下载的资源文件之后,可以从预存的文件信息中,获得该资源文件的文件信息。文件信息的内容可以参照前文论述的内容,此处不再赘述。
例如,请参照图3,为第一客户端111-1的聊天界面示例图,第一用户属于A公司所对应的团队,第一用户通过聊天界面可以查看张三所发送的资源文件通知消息,第一用户点击该资源文件通知消息关联的下载按键301,也就相当于进行了文件下载操作,第一客户端111-1响应该文件下载操作,获得该资源文件的文件信息。
S202,第一客户端111-1根据第一终端设备110-1的传输带宽,创建多个第一线程。
创建的第一线程越多,相对可以提升资源文件的下载速度,但创建的第一线程过多,多个线程同时请求服务器,反而可能会导致网络堵塞,因此在本申请实施例中第一客户端111-1会根据第一终端设备110-1的传输带宽,确定创建第一线程的数量。例如第一终端设备110-1的传输带宽越大,则创建的第一线程的数量越多。如此一来,在尽量提高传输速度的同时,还能避免造成网络堵塞的情况。第一终端设备110-1的传输带宽可以是参照前文论述的内容,此处不再赘述。
例如,当第一客户端111-1安装在个人计算机上时,可以创建3个第一线程,用于下载资源文件;当第一客户端111-1安装在手机上时,由于个人计算机的传输带宽通常大于手机,因此可以在该手机中创建2个第一线程,用于下载资源文件。
当资源文件的文件大小较小时,即使通过一个线程请求服务器进行下载,也相对能够快速下载完成,此时创建更多的线程,反而可能会影响下载速度,因此在本申请实施例中,当文件大小小于第一阈值时,可以创建一个第一线程,后续可以通过该第一线程下载资源文件。当该资源文件的文件大小大于或等于第一阈值时,可以创建多个第一线程,后续可以通过多个第一线程下载资源文件。第一阈值可以按照需求设定,例如第一阈值为5M。
S203,若文件大小大于或等于第二阈值,则第一客户端111-1生成P2P下载请求。
在本申请实施例中,当文件大小较大时,第一客户端111-1不仅可以通过在HTTP下载方式中引入多个第一线程并行下载资源文件,还可以结合P2P下载方式下载资源文件,以进一步提高下载资源文件的速率,因此在本申请实施例中,第一客户端111-1在确定文件大小大于或等于第二阈值时,可以生成P2P下载请求。
其中,第二阈值与第一阈值的大小关系可以是任意的,本申请不做具体限定,例如第一阈值可以小于第二阈值,第一阈值例如第二阈值为3M。该P2P下载请求用于请求支持P2P下载的客户端的客户端地址信息,该P2P下载请求可以携带有该资源文件的文件标识,文件标识可以参照前文论述的内容,此处不再赘述。
S204,第一客户端111-1将P2P下载请求发送给服务器120。
S205,服务器120生成资源查询请求。
服务器120接收P2P下载请求,可以从P2P下载请求中解析获得该第一客户端111-1待下载的资源文件的文件标识,从而根据该文件标识生成资源查询请求。该资源查询请求用于携带有该文件标识,用于查询其它客户端是否存储有该资源文件。
S206,服务器120将资源查询请求发送给其它客户端。
服务器120将资源查询请求分别发送给除了第一客户端111-1之外的其它客户端,以问询其它客户端是否存储有该资源文件。例如,请继续参照图2,服务器120可以将资源查询请求发送给第二客户端111-2和第三客户端111-3。
S207,其它客户端向服务器120反馈资源查询反馈。
其它客户端接收资源查询请求后,确定服务器120需要查询的资源文件,并确定自身是否存储有该资源文件。如果其它客户端确定自身存储有该资源文件,则向服务器120反馈存储有该资源文件的资源查询反馈;如果其它客户端确定自身没有存储有该资源文件,则向服务器120反馈没有存储有该资源文件。服务器120根据其它客户端的反馈,确定存储有该资源文件的客户端,进而可以获得存储有该资源文件的客户端的客户端地址信息。客户端地址信息例如可以是客户端的网际协议(Internet Protocol,IP)地址等。例如,请继续参照图2,第二客户端111-2和第三客户端111-3分别向服务器120发送资源查询反馈。
作为一种实施例,S206~S207为可选的步骤。
在另一种可能的实施例中,服务器120可以预存有各个客户端所存储的资源文件列表,资源文件列表包括该客户端所存储的资源文件。在服务器120获得P2P下载请求之后,根据该资源文件的文件标识,可以确定存储有该资源文件的客户端,以获得该客户端的客户端地址信息。例如各个客户端在上传或是下载资源文件时,服务器120会记录各个客户端的操作记录,根据各个客户端的操作记录,获得各个客户端所存储的资源文件列表。
S208,服务器120向第一客户端111-1发送客户端地址信息。
由于可能有多个客户端中均存储有该资源文件,因此服务器120在确定多个客户端均存储有该资源文件后,服务器120可以从存储有该资源文件的客户端中,按照预设规则确定出一个或多个客户端,将确定出的客户端的客户端地址信息反馈给第一客户端111-1,以使第一客户端111-1可以根据客户端地址信息请求资源文件。预设规则例如可以是选择距离第一客户端111-1最近的客户端,或者选择当前待处理请求数最少的客户端等。
或者,服务器120可以将所有存储有该资源文件的客户端的客户端地址信息均反馈给第一客户端111-1,第一客户端111-1可以按照预设规则,选择一个或多个客户端作为请求资源文件的对象。
第一客户端111-1接收客户端地址信息之后,可以根据客户端地址信息,确定存储有该资源文件的客户端。例如,服务器120在确定第二客户端111-2存储有该资源文件之后,可以将第二客户端111-2所对应的客户端地址信息发送给第一客户端111-1。图2中是以第二客户端111-2存储有该资源文件为例,实际不限制存储有资源文件的客户端。
S209,第一客户端111-1创建第二线程。
第一客户端111-1在获得客户端地址信息之后,可以确定对应的客户端上存储有资源文件,也就表示可以通过P2P下载方式下载资源文件,因此第一客户端111-1可以创建第二线程,第二线程用于从其它客户端请求资源文件。其中,第二线程的数量也可以是一个或多个,同理,第一客户端111-1可以根据第一终端设备110-1的传输带宽,确定创建第二线程的数量。进一步地,第一终端设备110-1的传输带宽越大,第一客户端111-1创建的第二线程的数量越多。
S210,第一客户端111-1通过第一线程向服务器120请求文件分片。
第一客户端111-1可以按照固定分片大小,将待下载的资源文件沿排列顺序划分为多个文件分片,固定分片大小可以是根据每个第一线程一次能够下载的文件分片大小确定的,例如一个第一线程一次能够下载1M的文件分片大小,那么固定分片大小可以设定为1M。排列顺序包括正向顺序或逆向顺序。正向顺序是指资源文件的开始到结束的顺序,逆向顺序是指资源文件从结束到开始。每个文件分片分别在资源文件对应一个大小区间。
在各个第一线程下载资源文件时,各个第一线程可以沿该排列顺序从第一个文件分片开始依次下载该资源文件中的各个文件分片。由于第一客户端111-1创建了多个第一线程,那么多个第一线程可以同时处理一个任务,每个任务对应下载资源文件中的一个文件分片,任意一个第一线程处理当前任务之后,可以继续处理下一个任务,从而实现多个第一线程并行下载资源文件。
具体的,在每个第一线程向服务器120请求文件分片时,每个第一线程可以向服务器120发送数据请求,该数据请求携带有该第一线程当前需要请求的文件分片的大小区间。具体实施时,由于第一线程是以http下载方式下载文件分片,因此每个第一线程可以通过http协议头range首部请求服务器120。例如,第一线程请求下载资源文件的第一个文件分片,具体在资源文件中的大小区间为第0kb至第1023kb,那么协议头中range bytes定义为“0-1023”。
例如,请参照图4,为资源文件分片结果的一种示例图,第一客户端111-1沿正向顺序,可以将资源文件分别划分为文件分片a、b…至m,这时,第一个文件分片为文件分片a,最后一个文件分片为文件分片为文件分片m。
同理,继续参照图4,第一客户端111-1沿逆向顺序,将资源文件分别划分为文件分片a至文件分片m,这时第一个文件分片为文件分片m,最后一个文件分片为文件分片a。当第一线程有三个时,三个第一线程可以同时向服务器分别请求文件分片a、b和c。
S211,服务器120向第一客户端111-1反馈文件分片。
各个第一线程分别向服务器120请求文件分片,服务器120接收数据请求之后,会对应地向各个第一线程分别反馈该数据请求中大小区间所对应的文件分片。
进一步地,当文件信息包括用于存储资源文件的内存地址时,第一客户端111-1在获得文件分片之后,还可以及时地将文件分片存储对应的内存地址中。
应当说明的是,在任意一个第一线程获得对应的文件分片之后,可以继续重复S210-S211的步骤,直到下载任务完成。例如,如果第一客户端111-1只利用http下载方式进行下载,那么多个第一线程直到下载完该资源文件后,停止执行S210-S211的步骤。
S212,第一客户端111-1通过第二线程向第二客户端111-2请求文件分片。
在本申请实施例中,第一客户端111-1获得服务器120反馈的客户端地址信息之后,根据客户端地址信息,确定第二客户端111-2存储有该资源文件,则可以根据该客户端地址信息,向第二客户端111-2请求资源文件。例如第一客户端111-1具体通过第二线程向第二客户端111-2。如果第二线程只有一个,那么第一客户端111-1可以通过该第二线程向第二客户端111-2请求文件分片;如果第二线程的数量有多个,那么第一客户端111-1可以通过多个第二线程同时向第二客户端111-2请求文件分片,进一步提高下载文件分片的效率。
由于在本申请实施例中第一客户端111-1结合了P2P下载方式和HTTP下载方式两种下载方式,因此为了避免两种下载方式重复下载相同的文件分片,浪费下载资源,在具体实施时,第一客户端111-1在通过第二线程向第二客户端111-2请求文件分片时,可以沿着排列顺序中最后一个文件分片开始依次下载该资源文件的各个文件分片。
在本申请实施例中,由于第一线程是从第一个文件分片开始下载,而第二线程是从最后一个文件分片开始下载,因此可以避免第一线程和第二线程重复下载相同的文件分片,在提升下载速度的同时,还能避免因重复下载所造成的下载资源的浪费。
例如,请参照图5,为下载资源文件的一种示例图,例如第一线程包括是三个线程,在开始下载资源文件时,一个第一线程执行任务1,即下载第一个文件分片所示的文件分片a,一个第一线程执行任务2,即下载文件分片b,一个第一线程执行任务3,即下载第一个文件分片c,第二线程从最后一个文件分片开始下载,最后一个文件分片即为文件分片m。
由于第一线程和第二线程均可能会意外崩溃,或者出现通信故障等情况,一旦出现这些情况,那么之前已经下载的文件分片可能会丢失,可能后续需要重复下载,因此在本申请实施例中,第一客户端111-1可以实时记录http下载方式中连续已下载的文件分片信息,还可以实时记录P2P下载方式中连续已下载的文件分片信息,这里的文件分片信息用于指示已下载到哪一个文件分片,具体例如为已下载到的文件分片的大小区间。这样一来,即使某个线程崩溃,第一客户端111-1可以根据记录的连续已下载的文件分片信息,从该文件分片开始继续下载,而无需重复下载之前已下载过的文件分片。
S213,第二客户端111-2向第一客户端111-1反馈文件分片。
第二线程向第二客户端111-2请求对应的文件分片,第二客户端111-2对应向第二线程反馈文件分片。
作为一种实施例,为了便于用户及时查看下载进度,在本申请实施例中,第一客户端111-1可以确定各个下载方式对应已下载的文件分片的总数量与该资源文件的总文件分片的总数量,从而确定资源文件的下载进度。
进一步地,第一客户端111-1还可以实时显示该资源文件的下载进度,还可以显示资源文件对应的取消下载按键,第一客户端111-1可以响应于用户针对取消下载按键的操作,取消下载该资源文件,并释放已下载的文件分片所占用的内存。
例如,继续沿用图3所示的例子,请参照图6,为资源文件下载进度展示示例图,第一客户端111-1在聊天界面中显示当前资源文件的下载进度601,具体为图6中所示的2%,2%表示第一客户端111-1当前已下载了该资源文件的2%。第一客户端111-1还显示有取消下载按键602,当用户点击该下载按键602之后,第一客户端111-1可以响应于该操作,取消资源文件的下载。
S214,第一客户端111-1根据文件分片,获得资源文件。
当第一客户端111-1利用http下载方式和P2P下载方式下载文件分片时,当通过http下载方式下载的部分文件和通过P2P下载方式下载的部分文件重合时,表示已经获得了该资源文件的所有文件分片。例如,请继续参照图5,当http下载方式下载到文件分片f,P2P下载方式下载到文件分片g时,第一客户端111-1确定二者下载的部分重合,因此确定该资源文件的文件分片已下载完成。
或者,当第一客户端111-1利用http下载方式下载文件分片时,当通过第一线程下载完资源文件的所有的文件分片时,表示完成了下载过程。
无论哪一种下载方式,当第一客户端111-1获得所有的文件分片之后,第一客户端111-1组合各个文件分片,也就获得了资源文件。
在具体实施时,由于其它客户端可能均没有存储有该资源文件,那么这种情况下,第一客户端111-1将无法支持P2P下载方式,此时第一客户端111-1则无需执行S208、S209以及S212~S213的部分。
在另一种可能的实施例中,当第一客户端111-1只采用HTTP下载方式,而不结合P2P下载方式时,此时第一客户端111-1则无需执行S203-S208和S209的部分。
应当说明的是,图2中是以第一客户端111-1下载资源文件为例进行说明,实际上任意一个客户端均可以按照上述过程下载资源文件,此处不再赘述。
基于同一发明构思,本申请实施例提供一种资源文件下载装置,装置相当于设置在终端设备中,用于实现客户端的相应功能,请参照图7,该装置包括:
获取模块701,用于获取待下载的资源文件的文件信息,文件信息包括存储资源文件的服务器地址信息;
创建模块702,用于根据终端设备的传输带宽,创建多个第一线程;
下载模块703,用于根据服务器地址信息,通过多个第一线程中每个第一线程分别从服务器下载资源文件的文件分片;
获得模块704,用于根据获得的各个文件分片,获得资源文件。
在一种可能的实施例中,文件信息包括资源文件的文件大小信息;创建模块702还用于:
在根据客户端的传输带宽,创建多个第一线程之前,根据文件大小信息,确定资源文件的文件大小大于或等于第一阈值;
根据文件大小信息,确定资源文件的文件大小小于第一阈值,则创建一个第一线程,并通过一个第一线程从服务器下载资源文件。
在一种可能的实施例中,当文件大小大于或等于第二阈值时,创建模块702还用于:向服务器请求获得存储有资源文件的其它客户端的客户端地址信息;其它客户端为除了客户端之外的客户端;根据客户端地址信息,创建第二线程;
下载模块703,还用于通过第二线程从其它客户端下载待下载资源的文件分片。
在一种可能的实施例中,下载模块703,具体用于根据设定的文件分片大小,通过多个第一线程的每个第一线程,按照文件分片的排列顺序从第一个文件分片开始从服务器下载各个文件分片,排列顺序包括从资源文件开始到结束的正向顺序或从资源文件结束到开始的逆向顺序;通过第二线程,按照排列顺序从最后一个文件分片开始从其它客户端开始下载资源文件;
获得模块704,具体用于当从其它客户端获得的资源文件中的部分文件与从服务器获得的部分文件重合时,获得资源文件。
在一种可能的实施例中,下载模块703具体用于通过每个第一线程向服务器发送数据请求;数据请求携带有用于指示第一线程当前需要下载的文件分片在资源文件中的大小区间;
通过每个第一线程接收服务器发送的与大小区间所对应的文件分片。
在一种可能的实施例中,终端设备的传输带宽越大,则对应创建的第一线程的数量越多。
图7所示的装置可以用于实现前文论述的任一的资源文件下载方法,此处不再赘述。
基于同一发明构思,本申请实施例提供一种计算机设备800,请参照图8,该计算机设备包括处理器801和存储器802。
处理器801可以是一个中央处理单元(central processing unit,CPU),或者为数字处理单元等等。本申请实施例中不限定上述存储器802和处理器801之间的具体连接介质。本申请实施例在图8中以存储器802和处理器801之间通过总线803连接,总线803在图8中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线803可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器802可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器802也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器802是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器802可以是上述存储器的组合。
处理器801,用于调用存储器802中存储的计算机程序时执行前文论述的任一的资源文件下载方法。另外,处理器801还可以用于实现前文论述的任一客户端的功能,还可以用于实现图7所示的装置的功能。
基于同一发明构思,本申请实施例提供一种存储介质,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行前文论述的任一的资源文件下载方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
基于同一发明构思,本申请实施例提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的资源文件下载方法。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种资源文件下载方法,其特征在于,应用于客户端中,所述客户端运行在终端设备上,所述方法包括:
获取待下载的资源文件的文件信息,所述文件信息包括存储所述资源文件的服务器地址信息;
根据所述终端设备的传输带宽,创建多个第一线程;
根据所述服务器地址信息,通过所述多个第一线程中每个第一线程分别从服务器下载所述资源文件的文件分片;
根据获得的各个文件分片,获得所述资源文件。
2.如权利要求1所述的方法,其特征在于,所述文件信息包括所述资源文件的文件大小信息;
在所述根据所述客户端的传输带宽,创建多个第一线程之前,包括:根据所述文件大小信息,确定所述资源文件的文件大小大于或等于第一阈值;以及
所述方法还包括:根据所述文件大小信息,确定所述资源文件的文件大小小于第一阈值,则创建一个第一线程,并通过一个第一线程从服务器下载所述资源文件。
3.如权利要求1所述的方法,其特征在于,当所述文件大小大于或等于第二阈值时,所述方法还包括:
向所述服务器请求获得存储有所述资源文件的其它客户端的客户端地址信息;所述其它客户端为除了所述客户端之外的客户端;
根据所述客户端地址信息,创建第二线程;
通过所述第二线程从所述其它客户端下载所述待下载资源的文件分片。
4.如权利要求3所述的方法,其特征在于,所述通过所述多个第一线程中每个第一线程分别从服务器下载所述资源文件的文件分片,包括:根据设定的文件分片大小,通过所述多个第一线程的每个第一线程,按照文件分片的排列顺序从第一个文件分片开始从服务器下载各个文件分片,所述排列顺序包括从所述资源文件开始到结束的正向顺序或从所述资源文件结束到开始的逆向顺序;
所述通过所述第二线程从所述其它客户端下载所述资源文件的文件分片,包括:通过所述第二线程,按照所述排列顺序从最后一个文件分片开始从所述其它客户端开始下载所述资源文件;
所述根据获得的各个文件分片,获得所述资源文件,包括:当从所述其它客户端获得的所述资源文件中的部分文件与从所述服务器获得的部分文件重合时,获得所述资源文件。
5.如权利要求4所述的方法,其特征在于,所述根据所述文件信息,通过所述多个第一线程中每个第一线程分别从服务器下载所述资源文件的文件分片,包括:
通过所述每个第一线程向服务器发送数据请求;所述数据请求携带有用于指示第一线程当前需要下载的文件分片在所述资源文件中的大小区间;
通过所述每个第一线程接收所述服务器发送的与所述大小区间所对应的文件分片。
6.如权利要求1~5任一项所述的方法,其特征在于,所述终端设备的传输带宽越大,则对应创建的第一线程的数量越多。
7.一种资源文件下载装置,其特征在于,所述装置设置在终端设备中,所述装置包括:
获取模块,用于获取待下载的资源文件的文件信息,所述文件信息包括存储所述资源文件的服务器地址信息;
创建模块,用于根据所述终端设备的传输带宽,创建多个第一线程;
下载模块,用于根据所述服务器地址信息,通过所述多个第一线程中每个第一线程分别从服务器下载所述资源文件的文件分片;
获得模块,用于根据获得的各个文件分片,获得所述资源文件。
8.如权利要求7所述的装置,其特征在于,所述文件信息包括所述资源文件的文件大小信息;所述创建模块还用于:
在根据所述客户端的传输带宽,创建多个第一线程之前,根据所述文件大小信息,确定所述资源文件的文件大小大于或等于第一阈值;
根据所述文件大小信息,确定所述资源文件的文件大小小于第一阈值,则创建一个第一线程,并通过一个第一线程从服务器下载所述资源文件。
9.一种计算机设备,其特征在于,包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如权利要求1~6中任一项所述的方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1~6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011286661.7A CN112311897A (zh) | 2020-11-17 | 2020-11-17 | 资源文件下载方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011286661.7A CN112311897A (zh) | 2020-11-17 | 2020-11-17 | 资源文件下载方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112311897A true CN112311897A (zh) | 2021-02-02 |
Family
ID=74334876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011286661.7A Pending CN112311897A (zh) | 2020-11-17 | 2020-11-17 | 资源文件下载方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112311897A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112769958A (zh) * | 2021-02-05 | 2021-05-07 | 上海哔哩哔哩科技有限公司 | 点对点网络调度方法和系统 |
CN112925761A (zh) * | 2021-03-31 | 2021-06-08 | 北京金山云网络技术有限公司 | 一种资源文件同步方法、装置、设备和存储介质 |
CN113840000A (zh) * | 2021-06-30 | 2021-12-24 | 山东易华录信息技术有限公司 | 一种海量大文件分布式网络下载方法及装置 |
CN114124939A (zh) * | 2021-11-25 | 2022-03-01 | 北京奇艺世纪科技有限公司 | 一种预缓存文件处理方法、装置及文件预缓存系统 |
CN114157644A (zh) * | 2021-11-29 | 2022-03-08 | 广东明创软件科技有限公司 | 资源下载方法、装置、电子设备以及存储介质 |
CN114513503A (zh) * | 2022-02-16 | 2022-05-17 | 中银金融科技有限公司 | 文件的下载方法、装置、电子设备及计算机存储介质 |
CN114884938A (zh) * | 2022-07-11 | 2022-08-09 | 深圳瑞力网科技有限公司 | 云端服务器自适应处理下载文件的方法及对应的服务器 |
WO2022166584A1 (zh) * | 2021-02-05 | 2022-08-11 | 上海哔哩哔哩科技有限公司 | 点对点网络调度方法和系统 |
CN115150383A (zh) * | 2021-03-31 | 2022-10-04 | 华为技术有限公司 | 文件发送方法、设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106254566A (zh) * | 2016-10-31 | 2016-12-21 | 乐视控股(北京)有限公司 | 一种数据下载处理方法及装置 |
CN110022336A (zh) * | 2018-01-09 | 2019-07-16 | 武汉斗鱼网络科技有限公司 | 提高网络资源下载速度的方法、存储介质、设备及系统 |
WO2019227427A1 (zh) * | 2018-05-31 | 2019-12-05 | 优视科技新加坡有限公司 | 文件下载方法、装置及设备/终端/服务器 |
CN110661829A (zh) * | 2018-06-28 | 2020-01-07 | 杭州海康威视系统技术有限公司 | 文件下载方法及装置、客户端和计算机可读存储介质 |
-
2020
- 2020-11-17 CN CN202011286661.7A patent/CN112311897A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106254566A (zh) * | 2016-10-31 | 2016-12-21 | 乐视控股(北京)有限公司 | 一种数据下载处理方法及装置 |
CN110022336A (zh) * | 2018-01-09 | 2019-07-16 | 武汉斗鱼网络科技有限公司 | 提高网络资源下载速度的方法、存储介质、设备及系统 |
WO2019227427A1 (zh) * | 2018-05-31 | 2019-12-05 | 优视科技新加坡有限公司 | 文件下载方法、装置及设备/终端/服务器 |
CN110661829A (zh) * | 2018-06-28 | 2020-01-07 | 杭州海康威视系统技术有限公司 | 文件下载方法及装置、客户端和计算机可读存储介质 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022166584A1 (zh) * | 2021-02-05 | 2022-08-11 | 上海哔哩哔哩科技有限公司 | 点对点网络调度方法和系统 |
CN112769958A (zh) * | 2021-02-05 | 2021-05-07 | 上海哔哩哔哩科技有限公司 | 点对点网络调度方法和系统 |
WO2022166593A1 (zh) * | 2021-02-05 | 2022-08-11 | 上海哔哩哔哩科技有限公司 | 点对点网络调度方法和系统 |
CN112925761A (zh) * | 2021-03-31 | 2021-06-08 | 北京金山云网络技术有限公司 | 一种资源文件同步方法、装置、设备和存储介质 |
CN115150383B (zh) * | 2021-03-31 | 2023-07-07 | 华为技术有限公司 | 文件发送方法、设备及计算机可读存储介质 |
CN115150383A (zh) * | 2021-03-31 | 2022-10-04 | 华为技术有限公司 | 文件发送方法、设备及计算机可读存储介质 |
CN113840000A (zh) * | 2021-06-30 | 2021-12-24 | 山东易华录信息技术有限公司 | 一种海量大文件分布式网络下载方法及装置 |
CN114124939A (zh) * | 2021-11-25 | 2022-03-01 | 北京奇艺世纪科技有限公司 | 一种预缓存文件处理方法、装置及文件预缓存系统 |
CN114124939B (zh) * | 2021-11-25 | 2024-03-26 | 北京奇艺世纪科技有限公司 | 一种预缓存文件处理方法、装置及文件预缓存系统 |
CN114157644A (zh) * | 2021-11-29 | 2022-03-08 | 广东明创软件科技有限公司 | 资源下载方法、装置、电子设备以及存储介质 |
CN114513503A (zh) * | 2022-02-16 | 2022-05-17 | 中银金融科技有限公司 | 文件的下载方法、装置、电子设备及计算机存储介质 |
CN114513503B (zh) * | 2022-02-16 | 2024-04-02 | 中银金融科技有限公司 | 文件的下载方法、装置、电子设备及计算机存储介质 |
CN114884938A (zh) * | 2022-07-11 | 2022-08-09 | 深圳瑞力网科技有限公司 | 云端服务器自适应处理下载文件的方法及对应的服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112311897A (zh) | 资源文件下载方法、装置、设备及介质 | |
US9804981B2 (en) | Method, controller, and system for service flow control in object-based storage system | |
US8090813B2 (en) | Methods and apparatus for data transfer | |
CN106993054B (zh) | 文件分发方法、节点及系统 | |
US11126590B2 (en) | Data processing method and device | |
WO2018133306A1 (zh) | 内容分发网络中的调度方法和设备 | |
US20160234303A1 (en) | Peer-to-Peer Upload Scheduling | |
CN109347968B (zh) | 一种下载资源文件的数据块的方法、设备和系统 | |
CN103108008B (zh) | 一种下载文件的方法及文件下载系统 | |
CN110557689B (zh) | 视频播放方法及装置 | |
US20130318208A1 (en) | Dynamic package creation for predictive page load optimization | |
WO2021253889A1 (zh) | 负载均衡方法、装置、代理设备、缓存设备及服务节点 | |
CN104581374A (zh) | 一种获取切片文件和生成子m3u8文件的方法、节点及服务器 | |
US8375124B1 (en) | Resumable upload for hosted storage systems | |
US20240106890A1 (en) | Peer-to-peer network scheduling method and system | |
US20170171286A1 (en) | Methods and devices for validating a video connection or other types of communication sessions over a computer network | |
CA2837811A1 (en) | Cloud subscription download method and system, and computer storage medium | |
WO2016044329A1 (en) | Real-time, low memory estimation of unique client computers communicating with a server computer | |
CN112416396B (zh) | 一种应用程序更新方法和系统 | |
CN112165523A (zh) | 一种数据下载方法和装置 | |
KR101033813B1 (ko) | 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 분산 방법 | |
CN111935242A (zh) | 数据传输方法、装置、服务器以及存储介质 | |
CN107645475B (zh) | 异质网络中的文件资源分发系统与方法 | |
CN110826001A (zh) | 数据获取请求处理方法、装置、计算机设备及存储介质 | |
KR102007981B1 (ko) | 비트토렌트 기반의 네트워크 품질 관리 시스템 및 이를 이용한 네트워크 서비스 품질 향상 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40038823 Country of ref document: HK |
|
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 |
Application publication date: 20210202 |