一种资源下载方法、装置、电子设备及介质与流程

文档序号:18702839发布日期:2019-09-17 23:11阅读:182来源:国知局
一种资源下载方法、装置、电子设备及介质与流程

本发明涉及下载技术领域,特别是涉及一种资源下载方法、装置、电子设备及介质。



背景技术:

由于服务端可提供的带宽有限,为控制服务端负载,服务端往往不会给一个客户端分配较多的带宽,使得每个客户端被分配的带宽较小。

而且,客户端从服务端处下载的资源通常通过传输控制协议(transmissioncontrolprotocol,简称tcp)传输,在客户端与服务端之间的通信信道存在一定的丢包时,服务端只能接收到客户端发送的部分确认消息,此时服务端认为客户端已接收到部分数据包,其他数据包还未接收到,所以认为客户端接收数据包的速度很慢。服务端为避免因对数据包发送的过快而导致客户端来不及接收数据包而造成数据包丢失的问题,通常会降低向客户端发送数据包的速度。

另外,对于同一个资源,可能存在多个下载地址,但客户端并非能够通过每个下载地址快速稳定的下载资源。例如,可能存在为客户端分配的下载地址对应的服务器不稳定的情况。

所以,由于以上三种原因,在现有技术中,客户端从服务端处下载资源的速度较慢。



技术实现要素:

本发明实施例的目的在于提供一种资源下载方法、装置、电子设备及介质,以实现提高资源的下载速度。具体技术方案如下:

第一方面,提供了一种资源下载方法,所述方法包括:

获取待下载的资源文件对应的各统一资源定位符url,每个url均为所述待下载资源文件的地址;

根据所述资源文件的大小和预先获取的配置参数,将所述资源文件划分为各待下载文件块,所述配置参数包括:文件块的大小或文件块的数量;

根据获取的各url分别下载各待下载文件块。

可选的,在所述获取待下载的资源文件对应的各统一资源定位符url之前,所述方法还包括:

接收用户输入的下载指令,所述下载指令用于指示下载所述资源文件;

所述获取待下载的资源文件对应的各统一资源定位符url,包括:

根据所述下载指令,向服务器发送url获取请求,所述url获取请求用于请求获取所述资源文件的存储位置对应的url;

接收所述服务器发送的所述资源文件对应的各url。

可选的,所述根据获取的各url分别下载各待下载文件块,包括:

从获取的各url中选取预设数量的url;

按照文件块排列顺序,确定所述预设数量的url中的每个url对应的待下载文件块,所述文件块排列顺序为各待下载文件块在所述资源文件中的排列顺序;

从所述预设数量的url对应的服务器中,并行下载所述预设数量的url对应的待下载文件块;

若存在url对应的待下载文件块下载成功,则将下载成功的待下载文件块从内存缓存转移至磁盘缓存,并按照所述文件块排列顺序,确定所述url对应的下一个待下载文件块,并从所述url对应的服务器中下载所述下一个待下载文件块;或者,

若存在url对应的待下载文件块下载失败,则从所述资源文件对应的各url中选取一个未被选取过的url,重新对下载失败的文件块进行下载。

可选的,所述方法还包括:

若在下载各待下载文件块的过程中,接收到对指定文件块的读取指令,则确定所述指定文件块的存储位置;

若所述指定文件块存储于所述磁盘缓存,则从所述磁盘缓存中读取所述指定文件块;或者,

若所述指定文件块存储于所述内存缓存,且所述指定文件块下载完毕,则从所述内存缓存中读取所述指定文件块。

可选的,所述方法还包括:

接收用户输入的读取指令,所述读取指令用于指示读取所述资源文件;

所述根据获取的各url分别下载各待下载文件块,包括:

若根据所述资源文件的元数据的存储位置信息,确定所述资源文件的下载顺序为文件块排列顺序,则从所述资源文件中第一个未下载的待下载文件块开始,从所述各url对应的服务器中,分别下载未下载的待下载文件块,所述文件块排列顺序为各待下载文件块在所述资源文件中的排列顺序,所述存储位置信息用于表示所述资源文件的元数据在所述资源文件中的存储位置;或者,

若根据所述资源文件的元数据的存储位置信息,确定所述资源文件的下载顺序不为所述文件块排列顺序,则确定所述资源文件中第一个包括元数据的待下载文件块;

从所述各url对应的服务器中,从所述资源文件中第一个包括元数据的待下载文件块开始,分别下载所述资源文件中各个包括元数据的待下载文件块;

若所述资源文件中包括元数据的待下载文件块下载完毕,则从所述各url对应的服务器中,分别下载未下载的待下载文件块。

可选的,所述分别下载未下载的待下载文件块,包括:

获取从所述各url对应的服务器中,下载待下载文件块的速度;

确定获取的速度中的最大速度对应的url,并从确定的url对应的服务器中,下载指定待下载文件块。

可选的,所述根据所述各url分别下载各待下载文件块,包括:

按照文件块排列顺序,针对每一个url,根据所述url下载未下载的待下载文件块,并获取下载待下载文件块的速度,所述文件块排列顺序为各待下载文件块在所述资源文件中的排列顺序;

若存在根据url下载待下载文件块的速度小于速度阈值,则暂停下载所述待下载文件块,并停止根据所述url下载待下载文件块。

第二方面,提供了一种资源下载装置,所述装置包括:

获取模块,用于获取待下载的资源文件对应的各统一资源定位符url,每个url均为所述待下载资源文件的地址;

划分模块,用于根据所述资源文件的大小和预先获取的配置参数,将所述资源文件划分为各待下载文件块,所述配置参数包括:文件块的大小或文件块的数量;

下载模块,用于根据所述获取模块获取的各url分别下载所述划分模块划分的各待下载文件块。

可选的,所述装置还包括:接收模块;

所述接收模块,用于在所述获取待下载的资源文件对应的各统一资源定位符url之前,接收用户输入的下载指令,所述下载指令用于指示下载所述资源文件;

所述获取模块,具体用于:

根据所述接收模块接收的所述下载指令,向服务器发送url获取请求,所述url获取请求用于请求获取所述资源文件的存储位置对应的url;

接收所述服务器发送的所述资源文件对应的各url。

可选的,所述下载模块,具体用于:

从获取的各url中选取预设数量的url;

按照文件块排列顺序,确定所述预设数量的url中的每个url对应的待下载文件块,所述文件块排列顺序为各待下载文件块在所述资源文件中的排列顺序;

从所述预设数量的url对应的服务器中,并行下载所述预设数量的url对应的待下载文件块;

若存在url对应的待下载文件块下载成功,则将下载成功的待下载文件块从内存缓存转移至磁盘缓存,并按照所述文件块排列顺序,确定所述url对应的下一个待下载文件块,并从所述url对应的服务器中下载所述下一个待下载文件块;或者,

若存在url对应的待下载文件块下载失败,则从所述资源文件对应的各url中选取一个未被选取过的url,重新对下载失败的文件块进行下载。

可选的,所述装置还包括:确定模块和读取模块;

所述确定模块,用于若在下载各待下载文件块的过程中,接收到对指定文件块的读取指令,则确定所述指定文件块的存储位置;

所述读取模块,用于若所述确定模块确定的所述指定文件块存储于所述磁盘缓存,则从所述磁盘缓存中读取所述指定文件块;

所述读取模块,还用于若所述确定模块确定的所述指定文件块存储于所述内存缓存,且所述指定文件块下载完毕,则从所述内存缓存中读取所述指定文件块。

可选的,所述装置还包括:接收模块;

所述接收模块,用于接收用户输入的读取指令,所述读取指令用于指示读取所述资源文件;

所述下载模块,具体用于:

若根据所述资源文件的元数据的存储位置信息,确定所述资源文件的下载顺序为文件块排列顺序,则从所述资源文件中第一个未下载的待下载文件块开始,从所述各url对应的服务器中,分别下载未下载的待下载文件块,所述文件块排列顺序为各待下载文件块在所述资源文件中的排列顺序,所述存储位置信息用于表示所述资源文件的元数据在所述资源文件中的存储位置;或者,

若根据所述资源文件的元数据的存储位置信息,确定所述资源文件的下载顺序不为所述文件块排列顺序,则确定所述资源文件中第一个包括元数据的待下载文件块;

从所述各url对应的服务器中,从所述资源文件中第一个包括元数据的待下载文件块开始,分别下载所述资源文件中各个包括元数据的待下载文件块;

若所述资源文件中包括元数据的待下载文件块下载完毕,则从所述各url对应的服务器中,分别下载未下载的待下载文件块。

可选的,所述下载模块,具体用于:

获取从所述各url对应的服务器中,下载待下载文件块的速度;

确定获取的速度中的最大速度对应的url,并从确定的url对应的服务器中,下载指定待下载文件块。

可选的,所述下载模块,具体用于:

按照文件块排列顺序,针对每一个url,根据所述url下载未下载的待下载文件块,并获取下载待下载文件块的速度,所述文件块排列顺序为各待下载文件块在所述资源文件中的排列顺序;

若存在根据url下载待下载文件块的速度小于速度阈值,则暂停下载所述待下载文件块,并停止根据所述url下载待下载文件块。

第三方面,本发明实施例提供了一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一资源下载方法的步骤。

第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一资源下载方法的步骤。

第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一资源下载方法。

本发明实施例提供的资源下载方法、装置、电子设备及介质,可以获取待下载的资源文件对应的各统一资源定位符url,然后根据资源文件的大小和预先获取的配置参数,将资源文件划分为各待下载文件块。再根据获取的各url分别下载各待下载文件块。由于本发明实施例可以从多个url对应的服务器中下载待下载的资源文件对应的待下载文件块,而且可以并行地从多个服务器中下载待下载文件块,相比于与一个服务器建立连接并下载资源的方法,本发明实施例能够提高资源的下载速度。

当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例提供的一种资源下载方法流程图;

图2为本发明实施例提供的另一种资源下载方法流程图;

图3为本发明实施例提供的另一种资源下载方法流程图;

图4为本发明实施例提供的一种资源下载装置结构示意图;

图5为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

本发明实施例提供了一种资源下载方法,应用于电子设备,本发明实施例中的电子设备包括:手机、计算机和平板电脑等具备下载功能的设备。如图1所示,该方法包括如下步骤:

步骤101,获取待下载的资源文件对应的各统一资源定位符。

其中,每个url均为待下载资源文件的地址。可以理解的,待下载资源可以存储在多个存储位置中,每个存储位置对应一个统一资源定位符(uniformresourcelocator,简称url)。可以通过获取的任一url下载待下载的资源文件。

一种实施方式中,电子设备接收用户输入的下载指令,然后根据下载指令,向服务器发送url获取请求。再接收服务器发送的待下载的资源文件对应的各url。

其中,下载指令用于指示下载待下载资源文件,url获取请求用于请求获取待下载的资源文件的存储位置对应的url。

可选的,电子设备接收到服务器发送的待下载资源文件的各url后,可以将各url存储在下载列表中。

步骤102,根据资源文件的大小和预先获取的配置参数,将资源文件划分为各待下载文件块。

其中,配置参数包括:文件块的大小或文件块的数量。

可选的,电子设备可以通过云端获取配置参数。为了提高下载性能(例如:提高下载速度,或者提高下载成功率),配置参数还可以进行更新,电子设备可以通过云端获取更新后的配置参数。例如:云端存储了最新的配置参数,电子设备可以通过云端获取最新的配置参数。

一种实施方式中,电子设备可以从下载列表中任一url对应的服务器中获取待下载的资源文件的大小,然后根据资源文件的大小和预先获取的配置参数,将资源文件划分为各待下载文件块。

可选的,与url对应的服务器建立连接时,设置保活(keep-alive)标志,即在一次传输控制协议(transmissioncontrolprotocol,简称tcp)连接中传输多份数据而不断开连接。

可以理解的,将资源文件划分为各待下载文件块指的是:确定出资源文件包括的各个待下载文件块,以及各个待下载文件块包括的资源文件中的数据。并不是实际地切分了资源文件。

例如:资源文件的大小为1024kb,配置参数包括:512kb(文件块的大小),则将资源文件划分为两个待下载文件块。其中,第一个待下载文件块包括资源文件的0~512kb的数据,第二个待下载文件块包括资源文件的513kb~1024kb的数据。

例如:资源文件的大小为1000kb,配置参数包括:2(文件块的数量),则将资源文件划分为两个待下载文件块。其中,第一个待下载文件块包括资源文件的0~500kb的数据,第二个待下载文件块包括资源文件的501kb~1000kb的数据。

步骤103,根据获取的各url分别下载各待下载文件块。

一种实施方式中,电子设备从下载列表中选取预设数量的url,并从预设数量的url对应的服务器中,分别下载待下载资源文件对应的各待下载文件块。

其中,若预设数量小于待下载资源文件对应的待下载文件块的数量,则按照文件块排列顺序,分别下载预设数量的待下载文件块,下载完成后按照文件块排列顺序继续下载未下载的待下载文件块。其中,文件块排列顺序为各待下载文件块在资源文件中的排列顺序。

若预设数量大于等于待下载资源文件对应的待下载文件块的数量,则分别下载待下载资源对应的各待下载文件块。

另一种实施方式中,可以按照文件块排列顺序,针对每一个url,根据url下载未下载的待下载文件块,并获取下载待下载文件块的速度。若存在根据url下载待下载文件块的速度小于速度阈值,则暂停下载该待下载文件块,并停止根据该url下载待下载文件块。

可以理解的,若存在根据url下载待下载文件块的速度小于速度阈值,说明从该url对应的服务器中下载待下载文件块的速度较慢,为提高下载速度,可以停止从该url对应的服务器中下载待下载文件块。

可选的,暂停下载的待下载文件块中可以标记已下载的位置,再次下载该待下载文件块时,可以从标记的已下载的位置处重新下载。或者,还可以重新下载暂停下载的待下载文件块包括的数据。

本发明实施例提供的资源下载方法,可以获取待下载的资源文件对应的各统一资源定位符url,然后根据资源文件的大小和预先获取的配置参数,将资源文件划分为各待下载文件块。再根据获取的各url分别下载各待下载文件块。由于本发明实施例可以从多个url对应的服务器中下载待下载的资源文件对应的待下载文件块,而且可以并行地从多个服务器中下载待下载文件块,相比于与一个服务器建立连接并下载资源的方法,本发明实施例能够提高资源的下载速度。

可选的,参见图2,上述步骤103中根据获取的各url分别下载各待下载文件块的方法包括以下步骤:

步骤201,从获取的各url中选取预设数量的url。

一种实施方式中,可以按顺序选取下载列表的前预设数量个url,或者在下载列表中随机选取预设数量的url。

例如:预设数量可以为3个。

步骤202,按照文件块排列顺序,确定预设数量的url中的每个url对应的待下载文件块。

其中,文件块排列顺序为各待下载文件块在待下载的资源文件中的排列顺序。

一种实施方式中,可以将预设数量的url分别对应资源文件中前预设数量的待下载文件块。其中,每个url对应一个待下载文件块。

例如:待下载的资源文件包括3个待下载文件块,分别为:文件块1、文件块2和文件块3,预设数量为3。从下载列表中选取3个url,分别为:url1、url2和url3。将这3个url分别对应一个待下载文件块,其中,可以按照url在下载列表中的排列顺序,分别对应待下载文件块,表示为:url1对应文件块1,url2对应文件块2,url3对应文件块3。

步骤203,从预设数量的url对应的服务器中,并行下载预设数量的url对应的待下载文件块。

可以理解的是,由于在上述步骤102中,确定了各待下载文件块包括的资源文件中的数据,所以从url对应的服务器中,下载url对应的待下载文件块时,可以向url对应的服务器请求下载待下载的资源文件中的部分数据。

步骤204,若存在url对应的待下载文件块下载成功,则将下载成功的待下载文件块从内存缓存转移至磁盘缓存,并按照文件块排列顺序,确定url对应的下一个待下载文件块,并从url对应的服务器中下载下一个待下载文件块。

步骤205,若存在url对应的待下载文件块下载失败,则从资源文件对应的各url中选取一个未被选取过的url,重新对下载失败的文件块进行下载。

结合步骤204和步骤205,举例说明:若待下载的资源文件包括5个待下载文件块,分别为:文件块1、文件块2、文件块3、文件块4和文件块5,预设数量为3,下载列表中包括:url1、url2、url3和url4。从下载列表中选取3个url,分别为:url1、url2和url3。并确定:url1对应文件块1,url2对应文件块2,url3对应文件块3。

然后,电子设备从url1、url2和url3对应的服务器中,并行下载文件块1、文件块2和文件块3至内存缓存中。

若文件块1和文件块2下载成功,则将文件块1和文件块2分别从内存缓存转移至磁盘缓存中。然后确定url1对应文件块4,url2对应文件块5,并行下载文件块4和文件块5至内存缓存,若文件块4和文件块5下载成功,则将文件块4和文件块5分别从内存缓存转移至磁盘缓存中。

若文件块3下载失败,则从下载列表中选取一个未被选取的url为:url4。从url4对应的服务器中,重新下载文件块3至内存缓存。若文件块3下载成功,则将文件块3从内存缓存转移至磁盘缓存中。

其中,重新下载的文件块3可以与文件块4和文件块5并行下载。

可选的,在下载待下载文件块时,还可以确定各url对应的下载速度,若url对应的下载速度小于预设速度,则表示从该url对应的服务器中下载资源的速度较慢,在该url对应的待下载文件块下载完成后,从下载列表中重新选取未被选取的url下载下一个待下载文件块。

若url对应的下载速度大于等于预设速度,则表示从该url对应的服务器中下载资源的速度较快,可以从该url对应的服务器中下载下一个待下载文件块。

可见,在本发明实施例中,可以从下载资源速度较快的服务器中下载较多的待下载文件块,减少从下载资源速度较慢的服务器中下载待下载文件块,所以本发明实施例可以提高下载资源的速度。

可选的,在url对应的待下载文件块下载失败时,可以在下载列表中记录该url下载失败,该url也可以重新被选取,若该url失败次数大于预设次数,则该url将不被再次选取。

在url对应的待下载文件块下载速度小于预设速度时,可以在下载列表中记录该url下载速度较慢,该url也可以重新被选取。

可见,在待下载的资源文件对应的url数量较少,甚至小于等于预设数量时,可以选取被选取过的url,这样,即使从url对应的服务器中下载资源的速度较慢,或者url对应的服务器不稳定,也可以使得本发明实施例中的电子设备并行下载待下载文件块,提高下载资源的速度。

在下载待下载的资源文件包括的待下载文件块的过程中,电子设备还可以接收对指定文件块的读取指令。其中,指定文件块为待下载的资源文件包括的其中一个待下载文件块。例如:在下载待下载视频时,用户可以同时观看视频,此时本发明实施例的电子设备可以接收到读取指令,读取指令中包括用户请求观看的视频帧信息。在接收到对指定文件块的读取指令后,对读取指令的处理包括以下三个步骤:

步骤一、确定指定文件块的存储位置。

一种实施方式中,可以分别从内存缓存和磁盘缓存中查找指定文件块。或者还可以先从内存缓存中查找,再从磁盘缓存中查找。或者还可以先从磁盘缓存中查找,再从内存缓存中查找。本发明实施例不对确定指定文件块的存储位置的方式做具体限定。

例如:读取指令中包括用户请求观看的视频帧为该视频的第一帧,则确定该视频的第一帧数据对应的文件块的存储位置。

步骤二、若指定文件块存储于磁盘缓存,则从磁盘缓存中读取指定文件块。

可以理解的是,若指定文件块存储于磁盘缓存,则说明指定文件块下载完毕,可以读取指定文件块。

步骤三、若指定文件块存储于内存缓存,且指定文件块下载完毕,则从内存缓存中读取指定文件块。

在本申请实施例中,若指定文件块存储于内存缓存,且检测到指定文件块正在下载,则等待指定文件块下载完毕后读取指定文件块。

可选的,若读取指定文件块之前的等待时长大于预设时长,则确定读取指定文件块超时。确定读取指定文件块超时后,可以提示用户指定文件块正在下载,可以等待一段时间后重新输入读取指令。

若指定文件块既不存储于内存缓存,也不存储于磁盘缓存,则等待指定文件下载完毕后读取该指定文件块。可选的,若读取指定文件块之前的等待时长大于预设时长,则确定读取指定文件块超时。

可见,本发明实施例可以提供边下载边读取的功能,与等待资源文件下载完毕后再读取的方式相比,本发明实施例可以减少用户读取资源文件的等待时长。

本发明实施例还可以在下载待下载的资源文件的过程中,记录待下载的资源文件保存到磁盘缓存中下载位置,例如:记录磁盘缓存中最新存储的文件块的标识。

若在下载待下载的资源文件的过程中发生了中断,则再次下载待下载的资源文件时,从记录的下载位置开始下载。

例如:本发明实施例中的电子设备在下载待下载的资源文件时,若因电量耗尽而自动关机,将导致待下载的资源文件下载中断。当该电子设备重新开机时,可以从记录的磁盘缓存中最新存储的待下载文件块的标识,确定待下载的资源文件的待下载文件块3下载完毕,并行下载待下载文件块3之后的待下载文件块。

可见,在本发明实施例中,可以实现断点续传的功能,若下载待下载的资源文件的过程中发生中断,在再次下载待下载的资源文件时,可以从记录的下载位置开始下载。与再次下载待下载的资源文件时,从头开始重新下载的方式相比,本发明实施例可以减少再次下载待下载的资源文件时,下载的数据量,减少了再次下载待下载的资源文件消耗的时长。

当待下载的资源文件为视频时,本发明实施例还可以提供在线播放的功能,如图3所示,包括以下步骤:

步骤301,接收用户输入的读取指令。

其中,读取指令用于指示读取待下载的资源文件。

终端可以在下载待下载的资源文件之前接收到读取指令,也可以在下载待下载的资源文件的过程中,接收到读取指令。

例如:用户点击一个视频对应的播放按钮时,本发明实施例中的电子设备可以接收到对该视频的读取指令。

或者,用户点击一个视频对应的超链接时,本发明实施例中的电子设备可以接收到对该视频的读取指令。

步骤302,根据资源文件的元数据的存储位置信息,确定资源文件的下载顺序是否为文件块排列顺序。

若待下载的资源文件对应的下载顺序为文件块排列顺序,则执行步骤303;若待下载的资源文件对应的下载顺序不为文件块排列顺序,则执行步骤304。

其中,文件块排列顺序为各待下载文件块在资源文件中的排列顺序,存储位置信息用于指示资源文件的元数据在资源文件中的存储位置。

可以理解的,资源文件的元数据是描述资源文件属性的数据。在播放视频之前,需要先解析视频元数据。

在本发明实施例中,若在下载待下载的资源文件包括的待下载文件块之前,接收到对待下载的资源文件的读取指令,则可以从待下载的资源文件中第一个待下载资源块开始下载,并判断下载的待下载文件块是否包括元数据的存储位置信息。直至获取到元数据的存储位置信息。

若在下载待下载的资源文件包括的待下载文件块的过程中,接收到对待下载的资源文件的读取指令,则可以判断已下载的待下载文件块中是否包括元数据的存储位置信息。若已下载的待下载文件块中不包括元数据的存储位置信息,则根据各待下载文件块在待下载的资源文件中的排列顺序,继续下载下一个待下载文件块,直至获取到元数据的存储位置信息。

一种实施方式中,若根据元数据的存储位置信息,确定待下载的资源文件的元数据存储在资源文件的头部,则确定待下载的资源文件的下载顺序为文件块排列顺序。

若根据元数据的存储位置信息,确定待下载的资源文件的元数据存储在资源文件的尾部,则确定待下载的资源文件的下载顺序不为文件块排列顺序。

例如:动态图像专家组4(movingpictureexpertsgroup4,简称mp4)格式的视频的元数据存储在视频文件的尾部。

步骤303,从资源文件中第一个未下载的待下载文件块开始,从各url对应的服务器中,分别下载未下载的待下载文件块。

其中,步骤301下载未下载的待下载文件块的方法与步骤103的方法相同,可以参考步骤103中的描述,在此不再赘述。

步骤304,确定资源文件中第一个包括元数据的待下载文件块。

在本发明实施例中,可以根据待下载的资源文件的元数据的存储位置信息,确定各个包括元数据的待下载文件块。

步骤305,从各的url对应的服务器中,从资源文件中第一个包括元数据的待下载文件块开始,分别下载资源文件中各个包括元数据的待下载文件块。

步骤306,若资源文件中包括元数据的待下载文件块下载完毕,则从各url对应的服务器中,分别下载未下载的待下载文件块。

结合步骤305和步骤306,举例说明:待下载的资源文件包括10个待下载文件块,其中,包括元数据的待下载文件块为:文件块8、文件块9和文件块10。获取的url数量为3。则从3个url对应的服务器中,并行下载文件块8、文件块9和文件块10。下载完毕后,再从3个url对应的服务器中,并行下载未下载的文件块1至文件块7。

可见,在本发明实施例中,还可以接收用户对待下载的资源文件的读取指令,实现视频的在线播放,而且在在线播放的过程中,由于可以并行下载待下载的资源文件对应的各待下载文件块,所以加速了视频的加载速度,使得视频播放更加流畅。

可选的,在下载待下载文件块的过程中,还可以获取从各url对应的服务器中,下载待下载文件块的速度。然后确定获取的速度中的最大速度对应的url,并从确定的url对应的服务器中,下载指定待下载文件块。

可选的,指定待下载文件块可以为资源文件包括的第一个待下载文件块,或者还可以为资源文件中包括视频数据的待下载文件块。

由于本发明实施例可以利用下载速度最快的url,下载指定的待下载文件块,可以将指定待下载文件块设置为播放视频时需先下载的文件块。所以本发明的实施例还可以提高视频边下载边播放的速度。

对应于上述方法实施例,如图4所示,本发明实施例提供了一种资源下载装置,应用于电子设备,该装置包括:获取模块401、划分模块402和下载模块403。

获取模块401,用于获取待下载的资源文件对应的各统一资源定位符url,每个url均为待下载资源文件的地址;

划分模块402,用于根据资源文件的大小和预先获取的配置参数,将资源文件划分为各待下载文件块,配置参数包括:文件块的大小或文件块的数量;

下载模块403,用于根据获取模块401获取的各url分别下载划分模块402划分的各待下载文件块。

可选的,该装置还可以包括:接收模块;

接收模块,用于在获取待下载的资源文件对应的各统一资源定位符url之前,接收用户输入的下载指令,下载指令用于指示下载资源文件;

获取模块401,可以具体用于:

根据接收模块接收的下载指令,向服务器发送url获取请求,url获取请求用于请求获取资源文件的存储位置对应的url;

接收服务器发送的所述资源文件对应的各url。

可选的,下载模块403,可以具体用于:

从获取的各url中选取预设数量的url;

按照文件块排列顺序,确定预设数量的url中的每个url对应的待下载文件块,文件块排列顺序为各待下载文件块在资源文件中的排列顺序;

从预设数量的url对应的服务器中,并行下载预设数量的url对应的待下载文件块;

若存在url对应的待下载文件块下载成功,则将下载成功的待下载文件块从内存缓存转移至磁盘缓存,并按照文件块排列顺序,确定url对应的下一个待下载文件块,并从述url对应的服务器中下载下一个待下载文件块;或者,若存在url对应的待下载文件块下载失败,则从资源文件对应的各url中选取一个未被选取过的url,重新对下载失败的文件块进行下载。

可选的,该装置还可以包括:确定模块和读取模块;

确定模块,用于若在下载各待下载文件块的过程中,接收到对指定文件块的读取指令,则确定指定文件块的存储位置;

读取模块,用于若确定模块确定的指定文件块存储于磁盘缓存,则从磁盘缓存中读取指定文件块;

读取模块,还用于若确定模块确定的指定文件块存储于内存缓存,且指定文件块下载完毕,则从内存缓存中读取指定文件块。

可选的,该装置还可以包括:接收模块;

接收模块,用于接收用户输入的读取指令,读取指令用于指示读取资源文件;

下载模块,可以具体用于:

若根据资源文件的元数据的存储位置信息,确定资源文件的下载顺序为文件块排列顺序,则从资源文件中第一个未下载的待下载文件块开始,从各url对应的服务器中,分别下载未下载的待下载文件块,文件块排列顺序为各待下载文件块在资源文件中的排列顺序,存储位置信息用于表示资源文件的元数据在资源文件中的存储位置;或者,

若根据资源文件的元数据的存储位置信息,确定资源文件的下载顺序不为文件块排列顺序,则确定资源文件中第一个包括元数据的待下载文件块;

从各url对应的服务器中,从资源文件中第一个包括元数据的待下载文件块开始,分别下载资源文件中各个包括元数据的待下载文件块;

若资源文件中包括元数据的待下载文件块下载完毕,则从各url对应的服务器中,分别下载未下载的待下载文件块。

可选的,下载模块403,可以具体用于:

获取从各url对应的服务器中,下载待下载文件块的速度;

确定获取的速度中的最大速度对应的url,并从确定的url对应的服务器中,下载指定待下载文件块。

可选的,下载模块403,可以具体用于:

按照文件块排列顺序,针对每一个url,根据url下载未下载的待下载文件块,并获取下载待下载文件块的速度,文件块排列顺序为各待下载文件块在资源文件中的排列顺序;

若存在根据url下载待下载文件块的速度小于速度阈值,则暂停下载待下载文件块,并停止根据url下载待下载文件块。

本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,

存储器503,用于存放计算机程序;

处理器501,用于执行存储器503上所存放的程序时,实现上述方法实施例中由电子设备执行的步骤。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一资源下载方法的步骤。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一资源下载方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1