掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及文件下载技术领域,尤其涉及一种大文件下载方法及终端。

背景技术

目前,云终端可通过HTTP/HTTPS下载地址从文件服务器直接下载原文件进行更新升级。而用于云终端升级的相关原文件的大小通常为几百兆,甚至几千兆。当存在多个云终端需要批量更新升级时,每个云终端从文件服务器下载原文件需要花费相当长的时间才能完成。若在原文件下载过程中由于网络原因下载中断还需对原文件重新下载,这种文件下载方式给云终端的升级和维护带来了很大的困难,并且,云终端之间也存在需要传递大文件的情况,直接下载大文件也同样存在类似问题。

发明内容

本发明所要解决的技术问题是:提供一种大文件下载方法及终端,快速下载大文件,从而缩短云终端批量更新升级的时间。

为了解决上述技术问题,本发明采用的技术方案为:

一种大文件下载方法,包括:

文件服务器接收原始文件,并将所述原始文件进行虚拟分片得到分片信息,根据所述分片信息和下载源信息生成索引文件;

客户端根据所述下载源信息确定目标资源端,并从所述目标资源端下载所述分片信息对应的片段文件进行升级;所有所述片段文件组成所述原始文件;

所述目标资源端包括所述文件服务器或已下载所述片段文件的其他客户端。

为了解决上述技术问题,本发明采用的另一种技术方案为:

一种大文件下载终端,包括文件服务器以及客户端;所述文件服务器包括第一存储器、第一处理器及存储在所述第一存储器上并在所述第一处理器上运行的第一计算机程序;所述客户端包括第二存储器、第二处理器及存储在所述第二存储器上并在所述第二处理器上运行的第二计算机程序,所述第一处理器执行所述第一计算机程序时实现以下步骤:

接收原始文件,并将所述原始文件进行虚拟分片得到分片信息,根据所述分片信息和下载源信息生成索引文件;

所述第二处理器执行所述第二计算机程序时实现以下步骤:

根据所述下载源信息确定目标资源端,并从所述目标资源端下载所述分片信息对应的片段文件进行升级;所有所述片段文件组成所述原始文件;所述目标资源端包括所述文件服务器或已下载所述片段文件的其他客户端。

本发明的有益效果在于:通过文件服务器中的原始文件进行虚拟分片后得到分片信息,并根据分片信息和下载源信息生成索引文件,客户端通过下载源信息选择从文件服务器或已下载片段文件的其他客户端进行更新,即客户端在下载对应的片段文件后就能够向其他客户端提供下载服务。当多客户端在下载同一大文件时,若参与下载的客户端越多,那么能够提供下载服务的目标资源端越多,则原始文件的下载速度也越快,极大程度提高了多客户端同时下载大文件的效率,并缩短了多客户端在批量更新升级的时间。

附图说明

图1为本发明实施例提供的一种大文件下载方法的步骤流程图;

图2为本发明实施例提供的一种大文件下载方法的数据交互图;

图3为本发明实施例提供的一种大文件下载终端的结构示意图;

标号说明:

1、文件服务器;2、客户端;101、第一存储器;102、第一处理器;201、第二存储器;202、第二处理器。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

请参照图1,本发明实施例提供了一种大文件下载方法,包括:

文件服务器接收原始文件,并将所述原始文件进行虚拟分片得到分片信息,根据所述分片信息和下载源信息生成索引文件;

客户端根据所述下载源信息确定目标资源端,并从所述目标资源端下载所述分片信息对应的片段文件进行升级;所有所述片段文件组成所述原始文件;

所述目标资源端包括所述文件服务器或已下载所述片段文件的其他客户端。

从上述描述可知,本发明的有益效果在于:通过文件服务器中的原始文件进行虚拟分片后得到分片信息,并根据分片信息和下载源信息生成索引文件,客户端通过下载源信息选择从文件服务器或已下载片段文件的其他客户端进行更新,即客户端在下载对应的片段文件后就能够向其他客户端提供下载服务。当多客户端在下载同一大文件时,若参与下载的客户端越多,那么能够提供下载服务的目标资源端越多,则原始文件的下载速度也越快,极大程度提高了多客户端同时下载大文件的效率,并缩短了多客户端在批量更新升级的时间。

进一步的,所述下载源信息包括第一下载源信息和第二下载源信息;

所述文件服务器接收原始文件,并将所述原始文件进行虚拟分片得到分片信息,根据所述分片信息和下载源信息生成索引文件包括:

文件服务器接收原始元件,并获取当前带宽信息;

所述文件服务器根据所述当前带宽信息将所述原始文件进行虚拟分片,得到分片信息;

将所述文件服务器地址作为第一下载源信息,并从注册中心获取注册中心地址作为第二下载源信息;

所述文件服务器根据所述分片信息、所述第一下载源信息和所述第二下载源信息生成索引文件。

由上述描述可知,根据文件服务器当前的带宽情况进行虚拟分片,大宽带则分片容量大,小宽带则分片容量小,以此实现分片下载的同时,保证下载速度。同时获取文件服务器地址和注册中心地址作为下载源信息,以明确能够向当前客户端提供下载服务的目标资源端,并根据分片信息以及下载源信息生成索引文件,以便当前客户端能够查找到对应的目标资源端进行原始文件的下载。

进一步的,所述客户端根据所述下载源信息确定目标资源端包括:

客户端从所述文件服务器下载所述索引文件,并对所述索引文件进行解析得到所述分片信息、第一下载源信息和第二下载源信息;

所述客户端根据所述分片信息确定未下载的目标分片信息;

所述客户端根据所述第二下载源信息获取所述注册中心中其他客户端已下载片段文件的注册记录;

所述客户端判断所述注册中心中存在所述目标分片信息对应的片段文件的注册记录;

若是,则确定所述注册记录对应的其他客户端为目标资源端;

否则,确定所述第一下载源信息对应的文件服务器为目标资源端。

由上述描述可知,客户端通过对索引文件进行解析后,获取分片信息以确认需要进行下载的片段文件,同时获取到下载源信息,通过下载源信息获取到注册中心的注册记录以确定下载片段文件的目标资源端。即客户端通过注册中心查询到已下载片段文件的其他客户端,然后从其他客户端下载对应的片段文件,而不从文件服务器下载对应的原始文件,以此减少文件服务器的下载压力,实现端对端的分布式下载网络,当参与文件下载的客户端越多,则原始文件的下载速度越快,从而缩短多客户端批量下载文件的时间。

进一步的,所述从所述目标资源端下载所述分片信息对应的片段文件进行升级包括:

所述客户端从所述目标资源端下载所述分片信息对应的片段文件,若每一所述片段文件下载完成,则根据所述分片信息进行完整性校验;

若校验成功,则下载下一片段文件;若校验失败,则丢弃所述片段文件,重新下载所述分片信息对应的片段文件;

所述客户端在所有所述片段文件下载完成后进行升级。

由上述描述可知,客户端采用边下载边校验的策略,每个片段文件下载完成后进行校验,若校验失败则丢弃重新下载,以此保证所得到的原始文件的完整性。

进一步的,所述根据所述分片信息进行完整性校验之后,还包括:

所述客户端根据已下载的所述片段文件对应的分片信息注册下载服务,得到所述客户端已下载片段文件的注册记录。

由上述描述可知,当前客户端下载片段文件后注册下载服务,生成当前客户端已下载片段文件的注册记录,则其他客户端在进行下载时能够通过注册中心查询到当前客户端,从而由当前客户端为其他客户端提供该片段文件的下载服务,实现动态更新目标资源端的可选数量,以提升原始文件的下载速度。

请参照图3,本发明另一实施例提供了一种大文件下载终端,包括文件服务器以及客户端;所述文件服务器包括第一存储器、第一处理器及存储在所述第一存储器上并在所述第一处理器上运行的第一计算机程序;所述客户端包括第二存储器、第二处理器及存储在所述第二存储器上并在所述第二处理器上运行的第二计算机程序,所述第一处理器执行所述第一计算机程序时实现以下步骤:

接收原始文件,并将所述原始文件进行虚拟分片得到分片信息,根据所述分片信息和下载源信息生成索引文件;

所述第二处理器执行所述第二计算机程序时实现以下步骤:

根据所述下载源信息确定目标资源端,并从所述目标资源端下载所述分片信息对应的片段文件进行升级;所有所述片段文件组成所述原始文件;所述目标资源端包括所述文件服务器或已下载所述片段文件的其他客户端。

从上述描述可知,本发明的有益效果在于:通过文件服务器中的原始文件进行虚拟分片后得到分片信息,并根据分片信息和下载源信息生成索引文件,客户端通过下载源信息选择从文件服务器或已下载片段文件的其他客户端进行更新,即客户端在下载对应的片段文件后就能够向其他客户端提供下载服务。当多客户端在下载同一大文件时,若参与下载的客户端越多,那么能够提供下载服务的目标资源端越多,则原始文件的下载速度也越快,极大程度提高了多客户端同时下载大文件的效率,并缩短了多客户端在批量更新升级的时间。

进一步的,所述下载源信息包括第一下载源信息和第二下载源信息;

所述接收原始文件,并将所述原始文件进行虚拟分片得到分片信息,根据所述分片信息和下载源信息生成索引文件包括:

接收原始元件,并获取当前带宽信息;

根据所述当前带宽信息将所述原始文件进行虚拟分片,得到分片信息;

将所述文件服务器地址作为第一下载源信息,并从注册中心获取注册中心地址作为第二下载源信息;

根据所述分片信息、所述第一下载源信息和所述第二下载源信息生成索引文件。

由上述描述可知,根据文件服务器当前的带宽情况进行虚拟分片,大宽带则分片容量大,小宽带则分片容量小,以此实现分片下载的同时,保证下载速度。同时获取文件服务器地址和注册中心地址作为下载源信息,以明确能够向当前客户端提供下载服务的目标资源端,并根据分片信息以及下载源信息生成索引文件,以便当前客户端能够查找到对应的目标资源端进行原始文件的下载。

进一步的,所述客户端根据所述下载源信息确定目标资源端包括:

从所述文件服务器下载所述索引文件,并对所述索引文件进行解析得到所述分片信息、第一下载源信息和第二下载源信息;

根据所述分片信息确定未下载的目标分片信息;

根据所述第二下载源信息获取所述注册中心中其他客户端已下载片段文件的注册记录;

判断所述注册中心中是否存在所述目标分片信息对应的片段文件的注册记录;

若是,则确定所述注册记录对应的其他客户端为目标资源端;

否则,确定所述第一下载源信息对应的文件服务器为目标资源端。

由上述描述可知,客户端通过对索引文件进行解析后,获取分片信息以确认需要进行下载的片段文件,同时获取到下载源信息,通过下载源信息获取到注册中心的注册记录以确定下载片段文件的目标资源端。即客户端通过注册中心查询到已下载片段文件的其他客户端,然后从其他客户端下载对应的片段文件,而不从文件服务器下载对应的原始文件,以此减少文件服务器的下载压力,实现端对端的分布式下载网络,当参与文件下载的客户端越多,则原始文件的下载速度越快,从而缩短多客户端批量下载文件的时间。

进一步的,所述从所述目标资源端下载所述分片信息对应的片段文件进行升级包括:

从所述目标资源端下载所述分片信息对应的片段文件,若每一所述片段文件下载完成,则根据所述分片信息进行完整性校验;

若校验成功,则下载下一片段文件;若校验失败,则丢弃所述片段文件,重新下载所述分片信息对应的片段文件;

在所有所述片段文件下载完成后进行升级。

由上述描述可知,客户端采用边下载边校验的策略,每个片段文件下载完成后进行校验,若校验失败则丢弃重新下载,以此保证所得到的原始文件的完整性。

进一步的,所述根据所述分片信息进行完整性校验之后,还包括:

根据已下载的所述片段文件对应的分片信息注册下载服务,得到所述客户端已下载片段文件的注册记录。

由上述描述可知,当前客户端下载片段文件后注册下载服务,生成当前客户端已下载片段文件的注册记录,则其他客户端在进行下载时能够通过注册中心查询到当前客户端,从而由当前客户端为其他客户端提供该片段文件的下载服务,实现动态更新目标资源端的可选数量,以提升原始文件的下载速度。

本发明实施例提供了一种大文件下载方法及终端,可基于广域网环境下实现大文件的快速下载,有效缩短多客户端在批量下载大文件的时间,以保证在多客户端批量更新升级场景下的更新效率,以下通过具体实施例来说明:

请参照图1至图2,本发明的实施例一为:

一种大文件下载方法,包括:

S1、文件服务器接收原始文件,并将所述原始文件进行虚拟分片得到分片信息,根据所述分片信息和下载源信息生成索引文件。其中,所述下载源信息包括第一下载源信息和第二下载源信息。

具体的,所述S1包括:

S11、文件服务器接收原始元件,并获取当前带宽信息;

在一些实施例中,所述S11之前,包括:

S10、服务端接收用户上传的原始文件,并将所述原始文件进行加密处理,得到加密后的原始文件,将所述加密后的原始文件发送至文件服务器。即所述文件服务器接收加密后的原始文件。

S12、所述文件服务器根据所述当前带宽信息将所述原始文件进行虚拟分片,得到分片信息;

在一些实施例中,所述分片信息包括原始文件信息、分片大小、分片数据信息以及分片校验值。

需要说明的是,所述当前带宽信息用于表征当前运行环境的网络状态,即根据带宽信息计算虚拟分片的大小值,大带宽时虚拟分片大,小带宽时虚拟分片小。此处虚拟分片即不对原始文件进行任何真实的切割处理。

S13、将所述文件服务器地址作为第一下载源信息,并从注册中心获取注册中心地址作为第二下载源信息;

在一些实施例中,注册中心记录了当前能够提供下载服务的客户端列表。

S14、所述文件服务器根据所述分片信息、所述第一下载源信息和所述第二下载源信息生成索引文件。

需要说明的是,所述索引文件中仅记录文件信息而未存储文件,所以索引文件的大小通常仅为几十千字节。

在一些实施例中,所述文件服务器生成索引文件后,向注册中心注册下载服务,以便客户端能够从文件服务器中下载所述原始文件。

在一些实施例中,所述S14之后,包括:

S15、所述文件服务器将所述索引文件的下载地址返回至所述服务端。

S2、客户端根据所述下载源信息确定目标资源端,并从所述目标资源端下载所述分片信息对应的片段文件进行升级;所有所述片段文件组成所述原始文件。

所述目标资源端包括所述文件服务器或已下载所述片段文件的其他客户端。

具体的,所述S2中:根据所述下载源信息确定目标资源端包括:

S21、客户端从所述文件服务器下载所述索引文件,并对所述索引文件进行解析得到所述分片信息、第一下载源信息和第二下载源信息;

在一些实施例中,所述S21之前包括:

S20、客户端向所述服务端发送升级检测命令,所述服务端返回所述索引文件的下载地址。即客户端根据所述索引文件的下载地址从所述文件服务器下载所述索引文件。

S22、所述客户端根据所述分片信息确定未下载的目标分片信息;

S23、所述客户端根据所述第二下载源信息获取所述注册中心中包括其他客户端已下载片段文件的注册记录;

在一些实施例中,所述步骤S23具体为:所述客户端根据注册中心地址获取注册中心中当前能够提供下载服务的客户端列表。其中,能够提供下载服务的客户端列表中每一条数据即为客户端已下载片段文件的注册记录。例如,客户端1已下载片段文件1-20,则客户端1能够提供分片信息为1-20的下载服务;客户端2已下载片段文件51-60,,则客户端2能够提供分片信息为51-60的下载服务。

S24、所述客户端判断所述注册中心中是否存在所述目标分片信息对应的片段文件的注册记录;

若是,则确定所述注册记录对应的其他客户端为目标资源端;

否则,确定所述第一下载源信息对应的文件服务器为目标资源端。

在一些实施例中,若所述客户端确定的目标分片信息为55,在所述注册中心中存在所述目标分片信息为55对应的片段文件的注册记录,则确定该注册记录对应的客户端2为目标资源端,连接客户端2进行片段文件的下载。若所述客户端确定的目标分片信息为25,在所述注册中心中不存在所述目标分片信息为25对应的片段文件的注册记录,则确定第一下载源信息对应的文件服务器为目标资源端,连接文件服务器进行片段文件的下载。

具体的,所述S2中:从所述目标资源端下载所述分片信息对应的片段文件进行升级包括:

S25、所述客户端从所述目标资源端下载所述分片信息对应的片段文件,若每一所述片段文件下载完成,则根据所述分片信息进行完整性校验;

若校验成功,则下载下一片段文件;

若校验失败,则丢弃所述片段文件,重新下载所述分片信息对应的片段文件;

具体的,所述步骤S25之后,还包括:

S251、所述客户端根据已下载的所述片段文件对应的分片信息注册下载服务,得到所述客户端已下载片段文件的注册记录。

在一些实施例中,所述客户端根据已下载的所述片段文件对应的分片信息向注册中心注册下载服务,从而在所述注册中心生成所述客户端已下载片段文件的注册记录。

S26、所述客户端在所有所述片段文件下载完成后进行升级。

在一些实施例中,由于原始文件是经过加密处理的,因此所述客户端在所有所述片段文件下载完成后进行解密处理,得到解密后的原始文件;所述客户端在本地执行所述解密后的原始文件进行升级;所述客户端升级完成后将原先的下载服务重新启动即可向其他客户端提供下载服务。

在一些实施例中,当云终端在进行批量更新升级时,在云终端安装上述一种客户端,并在服务器安装上述一种文件服务器以及服务端能够极大程度缩短云终端批量升级更新的时间。

请参照图3,本发明的实施例二为:

一种大文件下载终端,包括文件服务器1以及客户端2;所述文件服务器包括第一存储器101、第一处理器102及存储在所述第一存储器101上并在所述第一处理器102上运行的第一计算机程序;所述客户端2包括第二存储器201、第二处理器202及存储在所述第二存储器201上并在所述第二处理器202上运行的第二计算机程序,所述第一处理器102执行所述第一计算机程序时实现实施例一所述一种大文件下载方法中文件服务器实现的步骤;所述第二处理器202执行所述第二计算机程序时实现实施例二所述一种大文件下载方法中客户端实现的步骤。

综上所述,本发明提供的一种大文件下载方法及终端,通过文件服务器中的原始文件进行虚拟分片后得到分片信息,同时向注册中心注册下载服务,以获取下载源信息,根据分片信息和下载源信息生成索引文件。客户端仅通过下载索引文件即可获取分片信息和下载源信息,客户端通过下载源信息查询其他客户端已下载片段的注册记录,客户端根据注册记录选择从文件服务器或其他客户端进行更新,即客户端在下载对应的片段文件后就能够向其他客户端提供下载服务,由此实现了客户端对客户端的下载方式,将下载压力从文件服务器分散到多个客户端,实现分布式下载网络。当多个客户端在下载同一大文件时,若参与下载的客户端数量越多,那么能够提供下载服务的目标资源端越多,则原始文件的下载速度也越快,极大程度提高了多个客户端同时下载大文件的效率,并缩短了多个客户端在批量更新升级的时间。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

相关技术
  • 一种多终端系统的UDP下载加速方法及装置
  • 车路协同的大文件下载方法
  • 一种移动终端从目标服务器下载大文件的方法和系统
  • 一种移动终端从目标服务器下载大文件的方法和系统
技术分类

06120116511973