CN105049514B - 一种文件下载方法和装置 - Google Patents

一种文件下载方法和装置 Download PDF

Info

Publication number
CN105049514B
CN105049514B CN201510461238.9A CN201510461238A CN105049514B CN 105049514 B CN105049514 B CN 105049514B CN 201510461238 A CN201510461238 A CN 201510461238A CN 105049514 B CN105049514 B CN 105049514B
Authority
CN
China
Prior art keywords
piecemeal
file
specified
downloaded
version
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.)
Active
Application number
CN201510461238.9A
Other languages
English (en)
Other versions
CN105049514A (zh
Inventor
葛山
杨涛
易洋
叶暮鸣
何孟冬
闫俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510461238.9A priority Critical patent/CN105049514B/zh
Publication of CN105049514A publication Critical patent/CN105049514A/zh
Priority to PCT/CN2016/091884 priority patent/WO2017016479A1/zh
Application granted granted Critical
Publication of CN105049514B publication Critical patent/CN105049514B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种文件下载方法和装置。方法包括下载指定文件的各个分块;其中,所述指定文件被分割为多个分块;每下载完一个分块,判断该分块是否与已下载的其他分块和/或合成块存在相邻关系,是则将该分块与存在相邻关系的其他分块和/或合成块进行合并处理,得到一个合成块;当下载完最后一个分块,将该最后一个分块与已存在的分块和/或合成进行合并处理,得到所述指定文件。由此解决了对文件进行分块下载时,在全部分块下载完毕后统一进行合并处理速度缓慢且资源占用率大的问题,取得了可以边下载边对分块的文件进行合并,节约了用户下载时间以及设备资源的有益效果。

Description

一种文件下载方法和装置
技术领域
本发明涉及网络通信领域,具体涉及一种文件下载方法和装置。
背景技术
随着网络技术的发展,用户在互联网上看到心仪的资源时经常会选择进行下载,而下载的方式也多种多样,既有以浏览器内置下载工具进行下载的方式,也有使用专门的下载工具进行下载的方式。在文件比较大且下载人数较多的情况下,对文件进行下载时,文件的提供方会提供多个服务器载点供用户下载以便提高用户下载速度和减少服务器负担。此时文件在下载时会被分成若干块,用户实际下载时可能会从不同的服务器载点下载到不同的分块,当所有分块都下载完毕后进行合并,然而在文件较大、分块较多时合并速度很慢,甚至达到几分钟。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种文件下载方法和装置。
依据本发明的一个方面,提供了一种文件下载方法,包括:
下载指定文件的各个分块;其中,所述指定文件被分割为多个分块;
每下载完一个分块,判断该分块是否与已下载的其他分块和/或合成块存在相邻关系,是则将该分块与存在相邻关系的其他分块和/或合成块进行合并处理,得到一个合成块;
当下载完最后一个分块,将该最后一个分块与已存在的分块和/或合成进行合并处理,得到所述指定文件。
可选地,所述下载指定文件的各个分块包括:
从多个服务器同时下载指定文件的各个分块;
其中,所述指定文件的各个分块分布在所述多个服务器上;所述多个服务器位于同一机房中,或者所述多个服务器分布于位于不同地理位置的多个机房中。
可选地,所述判断该分块是否与已下载的其他分块和/或合成块存在相邻关系包括:
根据各个分块中包含的顺序标识判断该分块是否与已下载的其他分块和/或合成块存在相邻关系。
可选地,所述指定文件为将本地的指定应用程序从低版本升级到高版本的增量文件;
该方法进一步包括:根据增量文件将本地的指定应用程序从相应的低版本升级到高版本。
可选地,所述增量文件包括如下指令中的一种或多种:
增加指令,包括:高版本文件相对于低版本文件的新增部分的二进制序列,以及新增部分的位置;
修改指令,包括:高版本文件相对于低版本文件的新增部分的有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置;
删除指令,包括:高版本文件相对于低版本文件的删除部分起始位置和终止位置;
所述根据增量文件将本地的指定应用程序从相应的低版本升级到高版本包括如下中的一种或多种操作:
根据增加指令,在本地的指定应用程序的二进制序列的所述新增部分的位置,添加所述新增部分的二进制序列;
根据修改指令,将本地的指定应用程序的二进制序列的所述有修改部分的起始位置和终止位置之间的内容替换为所述二进制替换序列;
根据删除指令,将本地的指定应用程序的二进制序列的所述删除部分起始位置和终止位置之间的内容删除。
依据本发明的另一方面,提供了一种文件下载装置,包括:
下载单元,适于下载指定文件的各个分块;其中,所述指定文件被分割为多个分块;
合并单元,适于在所述下载单元每下载完一个分块,判断该分块是否与已下载的其他分块和/或合成块存在相邻关系,是则将该分块与存在相邻关系的其他分块和/或合成块进行合并处理,得到一个合成块;以及适于当所述下载单元下载完最后一个分块,将该最后一个分块与已存在的分块和/或合成进行合并处理,得到所述指定文件。
可选地,所述下载单元,适于从多个服务器同时下载指定文件的各个分块;
其中,所述指定文件的各个分块分布在所述多个服务器上;所述多个服务器位于同一机房中,或者所述多个服务器分布于位于不同地理位置的多个机房中。
可选地,所述合并单元,适于根据各个分块中包含的顺序标识判断该分块是否与已下载的其他分块和/或合成块存在相邻关系。
可选地,所述指定文件为将本地的指定应用程序从低版本升级到高版本的增量文件;
该装置进一步包括:升级单元,适于根据增量文件将本地的指定应用程序从相应的低版本升级到高版本。
可选地,所述增量文件包括如下指令中的一种或多种:
增加指令,包括:高版本文件相对于低版本文件的新增部分的二进制序列,以及新增部分的位置;
修改指令,包括:高版本文件相对于低版本文件的新增部分的有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置;
删除指令,包括:高版本文件相对于低版本文件的删除部分起始位置和终止位置;
所述升级单元,适于根据增量文件执行如下中的一种或多种操作:
根据增加指令,在本地的指定应用程序的二进制序列的所述新增部分的位置,添加所述新增部分的二进制序列;
根据修改指令,将本地的指定应用程序的二进制序列的所述有修改部分的起始位置和终止位置之间的内容替换为所述二进制替换序列;
根据删除指令,将本地的指定应用程序的二进制序列的所述删除部分起始位置和终止位置之间的内容删除。
根据本发明的技术方案对文件进行下载时,文件被分割为多个分块,对各个分块进行下载,每下载完一个分块,判断该分块是否与已下载的其他分块和/或合成块存在相邻关系,是则将该分块与存在相邻关系的其他分块和/或合成块进行合并处理,得到一个合成块,当下载完最后一个分块,将该最后一个分块与已存在的分块和/或合成进行合并处理,得到所述指定文件,由此解决了对文件进行分块下载时,在全部分块下载完毕后统一进行合并处理速度缓慢且资源占用率大的问题,取得了可以边下载边对分块的文件进行合并,节约了用户下载时间以及设备资源的有益效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明一个实施例提供的一种文件下载方法的流程图;
图2示出了本发明一个实施例提供的一种文件下载装置的结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了本发明一个实施例提供的一种文件下载方法的流程图,如图1所示,该方法包括:
步骤S110,下载指定文件的各个分块。
其中,指定文件被分割为多个分块,多个分块可以同时下载,对下载速度有很大的提升,且在网络故障时不会出现已下载数据全部丢失需重新下载的情况。
步骤S120,每下载完一个分块,判断该分块是否与已下载的其他分块和/或合成块存在相邻关系,是则将该分块与存在相邻关系的其他分块和/或合成块进行合并处理,得到一个合成块。
步骤S130,当下载完最后一个分块,将该最后一个分块与已存在的分块和/或合成进行合并处理,得到指定文件。
例如,用户下载的文件被分为了100个分块,分别从不同的服务器进行下载,其中先下载了分块1和分块10,由于二者并不存在相邻关系,所以进行保存不做处理;随后下载了分块2和分块8,由于分块2和分块1存在相邻关系,则将分块2与存在相邻关系的分块1进行合并处理,得到一个合成块。以此类推进行下载,当进行至对最后一个分块进行下载时,假设为分块47,此时分块1至分块46已结合并为一个合成块,分块48至分块100合并为另一个合成块,则将分块47与两个合成块进行合并处理,得到指定文件。由此可以看出,在文件各分块下载完毕后,仅需将最后一个分块与已存在的分块进行合并处理便可完成下载得到指定文件,而现有技术需要在所有分块下载完成后进行合并,即便分块较少时仍具有时延,在分块较多时时延更为明显,甚至造成对设备资源消耗过大造成假死。图1所示的方法取得了节约时间和设备资源的有益效果。
在本发明的又一个实施例中,图1所示的方法中,下载指定文件的各个分块包括:
从多个服务器同时下载指定文件的各个分块;
其中,指定文件的各个分块分布在多个服务器上;多个服务器位于同一机房中,或者多个服务器分布于位于不同地理位置的多个机房中。
本实施例对指定文件的分割方式做了描述,在实际文件的下载中,尤其是某些大型网游公测时开放下载客户端,一方面游戏客户端非常大,达到10G甚至几十G,一方面游戏玩家较多,下载用户达到数十万甚至上百万,此时仅利用一个或几个服务器提供下载会造成服务器的负荷过重。此外,针对不同下载用户接入网络的运营商不同,根据不同地理位置提供服务器也是十分有必要的。故将指定文件的各个分块分布在多个服务器上,并处于同一机房或不同地理位置的多个机房是有必要的,能够取得减轻服务器负担,提高用户下载速度的有益效果。
在本发明的又一个实施例中,图1所示的方法中,判断该分块是否与已下载的其他分块和/或合成块存在相邻关系包括:根据各个分块中包含的顺序标识判断该分块是否与已下载的其他分块和/或合成块存在相邻关系。
在文件分割成各个分块时将各个分块标识其顺序,可以在对下载的分块进行合并时更加方便,提升了得到完整下载文件的速度。
在本发明的又一个实施例中,上述方法中,指定文件为将本地的指定应用程序从低版本升级到高版本的增量文件;则该方法进一步包括:根据增量文件将本地的指定应用程序从相应的低版本升级到高版本。
现有的增量升级是指在进行更新操作时,只下载新版本中相对于旧版本有改变的文件。例如旧版本包含文件A、B和C,新版本包含文件A、B’、C和D,文件B’是对文件B的改进,文件D是新增的文件,则现有的增量升级方法中会下载文件B’和文件D,即增量文件中包含B’和D。因此增量升级会大大节省下载流量。
而本实施例中的增量文件是应用程序从低版本升级到高版本时从服务端进行下载的升级文件,与现有技术中的增量文件不同的是,本实施例中的增量文件是通过如下方式得到的:将指定应用程序的一个高版本文件与该指定应用程序的客户端侧的一个低版本文件精确到二进制进行对比,得到二进制差异信息;将所述二进制差异信息保存到增量文件。
因此,在本发明的又一个实施例中,上述方法中,增量文件包括如下指令中的一种或多种:
增加指令,包括:高版本文件相对于低版本文件的新增部分的二进制序列,以及新增部分的位置;
修改指令,包括:高版本文件相对于低版本文件的新增部分的有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置;
删除指令,包括:高版本文件相对于低版本文件的删除部分起始位置和终止位置。
上述方法中所述根据增量文件将本地的指定应用程序从相应的低版本升级到高版本包括如下中的一种或多种操作:
根据增加指令,在本地的指定应用程序的二进制序列的新增部分的位置,添加新增部分的二进制序列;
根据修改指令,将本地的指定应用程序的二进制序列的有修改部分的起始位置和终止位置之间的内容替换为二进制替换序列;
根据删除指令,将本地的指定应用程序的二进制序列的删除部分起始位置和终止位置之间的内容删除。
采取二进制信息对比的方式对比指定应用程序的高版本文件和低版本文件,将产生的二进制差异信息保存到增量文件中提供给客户端进行下载,使得客户端升级指定应用程序到高版本,属于增量升级的方式。现有技术中增量升级针对文件本身,如低版本的应用程序和高版本的应用程序都包含A文件,但是存在差异,那么在应用程序升级时会在增量文件中提供高版本应用程序中的A文件来替换低版本应用程序中的A文件,而本实施例提供的方法会对比两个A文件的二进制信息,由于高版本的应用程序和低版本应用程序中的同一名称文件的基本功能一般相同,虽有改动,但高版本应用程序中的文件仍保留了低版本应用程序中该文件很大部分的原有功能,在二进制信息的对比上,会有很大一部分的二进制信息相同,则只需将二进制差异信息保存到增量文件。A文件整体替换可能需要500bit,但其中二进制信息差异可能仅有20bit,相比于A文件整体的替换会减少极大的数据流量。例如,对指定应用程序来说,高版本应用程序中包含的A文件和低版本应用程序中包含的A文件不同,对比二者的二进制信息发现,高版本的A文件相对于低版本的A文件,在低版本二进制信息的a1段和a2段之间增加了字符串a3,将低版本二进制信息b1段和b3段之间的字符串b2修改为b4,删除了低版本二进制信息c1段和c3段之间的字符串c2,则基于以上信息分别生成增加指令、修改指令和删除指令,如add a3,modify b2,delete c2。可以清楚的看出此种应用程序的升级方式中不存在冗余和疏漏,最大化地减少了增量升级的数据量。
图2示出了本发明一个实施例提供的一种文件下载装置的结构图,如图2所示,该文件下载装置200包括:
下载单元210,适于下载指定文件的各个分块;其中,指定文件被分割为多个分块,对文件进行分块处理可以在下载时对各个分块分别进行下载,对各个分块选择速度最优的服务器进行下载,对下载速度有很大的提升,且在网络故障时不会出现已下载数据全部丢失需重新下载的情况。
合并单元220,适于在下载单元每下载完一个分块,判断该分块是否与已下载的其他分块和/或合成块存在相邻关系,是则将该分块与存在相邻关系的其他分块和/或合成块进行合并处理,得到一个合成块;以及适于当下载单元下载完最后一个分块,将该最后一个分块与已存在的分块和/或合成进行合并处理,得到指定文件。
例如,用户下载的文件被分为了100个分块,下载单元210分别从不同的服务器进行下载,其中先下载了分块1和分块10,由于二者并不存在相邻关系,所以进行保存不做处理;随后下载了分块2和分块8,由于分块2和分块1存在相邻关系,则将2分块1与存在相邻关系分块1进行合并处理,得到一个合成块。以此类推进行下载,当进行至对最后一个分块进行下载时,假设为分块47,此时分块1至分块46已结合并为一个合成块,分块48至分块100合并为另一个合成块,则将分块47与两个合成块进行合并处理,得到指定文件。由此可以看出,在文件各分块下载完毕后,仅需将最后一个分块与已存在的分块进行合并处理便可完成下载得到指定文件,而现有技术需要在所有分块下载完成后进行合并,即便分块较少时仍具有时延,在分块较多时时延更为明显,甚至造成对设备资源消耗过大造成假死。图2所示的装置取得了节约时间和设备资源的有益效果。
在本发明的又一个实施例中,图2所示的装置中,下载单元210,适于从多个服务器同时下载指定文件的各个分块;
其中,指定文件的各个分块分布在多个服务器上;多个服务器位于同一机房中,或者多个服务器分布于位于不同地理位置的多个机房中。
本实施例对指定文件的分割方式做了描述,在实际文件的下载中,尤其是某些大型网游公测时开放下载客户端,一方面游戏客户端非常大,达到10G甚至几十G,一方面游戏玩家较多,下载用户达到数十万甚至上百万,此时仅利用一个或几个服务器提供下载会造成服务器的负荷过重。此外,针对不同下载用户接入网络的运营商不同,根据不同地理位置提供服务器也是十分有必要的。故将指定文件的各个分块分布在多个服务器上,并处于同一机房或不同地理位置的多个机房是有必要的,能够取得减轻服务器负担,提高用户下载速度的有益效果。
在本发明的又一个实施例中,图2所示的装置中,合并单元220,适于根据各个分块中包含的顺序标识判断该分块是否与已下载的其他分块和/或合成块存在相邻关系。
在文件分割成各个分块时将各个分块标识其顺序,可以在对下载的分块进行合并时更加方便,提升了得到完整下载文件的速度。
在本发明的又一个实施例中,上述装置中,指定文件为将本地的指定应用程序从低版本升级到高版本的增量文件;
该装置进一步包括:升级单元230,适于根据增量文件将本地的指定应用程序从相应的低版本升级到高版本。
本实施例中的增量文件是应用程序从低版本升级到高版本时从服务端进行下载的升级文件,与现有技术中的增量文件不同的是,本实施例中的增量文件是通过如下方式得到的:将指定应用程序的一个高版本文件与该指定应用程序的客户端侧的一个低版本文件精确到二进制进行对比,得到二进制差异信息;将所述二进制差异信息保存到增量文件。
在本发明的又一个实施例中,上述装置中,增量文件包括如下指令中的一种或多种:
增加指令,包括:高版本文件相对于低版本文件的新增部分的二进制序列,以及新增部分的位置;
修改指令,包括:高版本文件相对于低版本文件的新增部分的有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置;
删除指令,包括:高版本文件相对于低版本文件的删除部分起始位置和终止位置;
升级单元230,适于根据增量文件执行如下中的一种或多种操作:
根据增加指令,在本地的指定应用程序的二进制序列的新增部分的位置,添加新增部分的二进制序列;
根据修改指令,将本地的指定应用程序的二进制序列的有修改部分的起始位置和终止位置之间的内容替换为二进制替换序列;
根据删除指令,将本地的指定应用程序的二进制序列的删除部分起始位置和终止位置之间的内容删除。
采取二进制信息对比的方式对比指定应用程序的高版本文件和低版本文件,将产生的二进制差异信息保存到增量文件中提供给客户端进行下载,使得客户端升级指定应用程序到高版本,属于增量升级的方式。现有技术中增量升级针对文件本身,如低版本的应用程序和高版本的应用程序都包含A文件,但是存在差异,那么在应用程序升级时会在增量文件中提供高版本应用程序中的A文件来替换低版本应用程序中的A文件,而本实施例提供的装置会对比两个A文件的二进制信息,由于高版本的应用程序和低版本应用程序中的同一名称文件的基本功能一般相同,虽有改动,但高版本应用程序中的文件仍保留了低版本应用程序中该文件很大部分的原有功能,在二进制信息的对比上,会有很大一部分的二进制信息相同,则只需将二进制差异信息保存到增量文件。A文件整体替换可能需要500bit,但其中二进制信息差异可能仅有20bit,相比于A文件整体的替换会减少极大的数据流量。例如,对指定应用程序来说,高版本应用程序中包含的A文件和低版本应用程序中包含的A文件不同,对比二者的二进制信息发现,高版本的A文件相对于低版本的A文件,在低版本二进制信息的a1段和a2段之间增加了字符串a3,将低版本二进制信息b1段和b3段之间的字符串b2修改为b4,删除了低版本二进制信息c1段和c3段之间的字符串c2,则基于以上信息分别生成增加指令、修改指令和删除指令,如add a3,modify b2,delete c2。可以清楚的看出此种应用程序的升级方式中不存在冗余和疏漏,最大化地减少了增量升级的数据量。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的文件下载装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (8)

1.一种文件下载方法,其中,该方法包括:
下载指定文件的各个分块;其中,所述指定文件被分割为多个分块;
边下载边对分块的文件进行合并,每下载完一个分块,判断该分块是否与已下载的其他分块和/或合成块存在相邻关系,是则将该分块与存在相邻关系的其他分块和/或合成块进行合并处理,得到一个合成块;
当下载完最后一个分块,将该最后一个分块与已存在的分块和/或合成进行合并处理,得到所述指定文件;
其中,所述判断该分块是否与已下载的其他分块和/或合成块存在相邻关系包括:
根据各个分块中包含的顺序标识判断该分块是否与已下载的其他分块和/或合成块存在相邻关系。
2.如权利要求1所述的方法,其中,所述下载指定文件的各个分块包括:
从多个服务器同时下载指定文件的各个分块;
其中,所述指定文件的各个分块分布在所述多个服务器上;所述多个服务器位于同一机房中,或者所述多个服务器分布于位于不同地理位置的多个机房中。
3.如权利要求1-2中任一项所述的方法,其中,所述指定文件为将本地的指定应用程序从低版本升级到高版本的增量文件;
该方法进一步包括:根据增量文件将本地的指定应用程序从相应的低版本升级到高版本。
4.如权利要求3所述的方法,其中,所述增量文件包括如下指令中的一种或多种:
增加指令,包括:高版本文件相对于低版本文件的新增部分的二进制序列,以及新增部分的位置;
修改指令,包括:高版本文件相对于低版本文件的新增部分的有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置;
删除指令,包括:高版本文件相对于低版本文件的删除部分起始位置和终止位置;
所述根据增量文件将本地的指定应用程序从相应的低版本升级到高版本包括如下中的一种或多种操作:
根据增加指令,在本地的指定应用程序的二进制序列的所述新增部分的位置,添加所述新增部分的二进制序列;
根据修改指令,将本地的指定应用程序的二进制序列的所述有修改部分的起始位置和终止位置之间的内容替换为所述二进制替换序列;
根据删除指令,将本地的指定应用程序的二进制序列的所述删除部分起始位置和终止位置之间的内容删除。
5.一种文件下载装置,其中,该装置包括:
下载单元,适于下载指定文件的各个分块;其中,所述指定文件被分割为多个分块;
合并单元,适于边下载边对分块的文件进行合并,在所述下载单元每下载完一个分块,判断该分块是否与已下载的其他分块和/或合成块存在相邻关系,是则将该分块与存在相邻关系的其他分块和/或合成块进行合并处理,得到一个合成块;以及适于当所述下载单元下载完最后一个分块,将该最后一个分块与已存在的分块和/或合成进行合并处理,得到所述指定文件;
所述合并单元,适于根据各个分块中包含的顺序标识判断该分块是否与已下载的其他分块和/或合成块存在相邻关系。
6.如权利要求5所述的装置,其中,
所述下载单元,适于从多个服务器同时下载指定文件的各个分块;
其中,所述指定文件的各个分块分布在所述多个服务器上;所述多个服务器位于同一机房中,或者所述多个服务器分布于位于不同地理位置的多个机房中。
7.如权利要求5-6中任一项所述的装置,其中,所述指定文件为将本地的指定应用程序从低版本升级到高版本的增量文件;
该装置进一步包括:升级单元,适于根据增量文件将本地的指定应用程序从相应的低版本升级到高版本。
8.如权利要求7所述的装置,其中,所述增量文件包括如下指令中的一种或多种:
增加指令,包括:高版本文件相对于低版本文件的新增部分的二进制序列,以及新增部分的位置;
修改指令,包括:高版本文件相对于低版本文件的新增部分的有修改部分的二进制替换序列,以及该有修改部分的起始位置和终止位置;
删除指令,包括:高版本文件相对于低版本文件的删除部分起始位置和终止位置;
所述升级单元,适于根据增量文件执行如下中的一种或多种操作:
根据增加指令,在本地的指定应用程序的二进制序列的所述新增部分的位置,添加所述新增部分的二进制序列;
根据修改指令,将本地的指定应用程序的二进制序列的所述有修改部分的起始位置和终止位置之间的内容替换为所述二进制替换序列;
根据删除指令,将本地的指定应用程序的二进制序列的所述删除部分起始位置和终止位置之间的内容删除。
CN201510461238.9A 2015-07-30 2015-07-30 一种文件下载方法和装置 Active CN105049514B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510461238.9A CN105049514B (zh) 2015-07-30 2015-07-30 一种文件下载方法和装置
PCT/CN2016/091884 WO2017016479A1 (zh) 2015-07-30 2016-07-27 一种文件下载方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510461238.9A CN105049514B (zh) 2015-07-30 2015-07-30 一种文件下载方法和装置

Publications (2)

Publication Number Publication Date
CN105049514A CN105049514A (zh) 2015-11-11
CN105049514B true CN105049514B (zh) 2019-05-31

Family

ID=54455717

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510461238.9A Active CN105049514B (zh) 2015-07-30 2015-07-30 一种文件下载方法和装置

Country Status (2)

Country Link
CN (1) CN105049514B (zh)
WO (1) WO2017016479A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105049514B (zh) * 2015-07-30 2019-05-31 北京奇虎科技有限公司 一种文件下载方法和装置
CN105472035A (zh) * 2016-01-04 2016-04-06 百度在线网络技术(北京)有限公司 一种文件传输方法及装置
CN108170460B (zh) * 2017-12-15 2020-12-11 杭州中天微系统有限公司 一种嵌入式系统增量升级的方法及装置
CN108306961A (zh) * 2018-01-29 2018-07-20 广东五科技股份有限公司 一种文件分块下载方法和装置
CN108958773A (zh) * 2018-07-10 2018-12-07 北京贞宇科技有限公司 智能机器人
CN110231947A (zh) * 2019-05-21 2019-09-13 深圳壹账通智能科技有限公司 一种应用程序的插件更新方法、设备、服务器及存储介质
CN111314449B (zh) * 2020-02-06 2021-02-02 北京东方金信科技股份有限公司 一种文件断点续传方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103312732A (zh) * 2012-03-07 2013-09-18 腾讯科技(深圳)有限公司 数据文件的传输方法及装置
CN103973475A (zh) * 2013-02-05 2014-08-06 腾讯科技(深圳)有限公司 差异补丁包生成方法及下载方法、服务器、客户端
CN104753984A (zh) * 2013-12-26 2015-07-01 乐视网信息技术(北京)股份有限公司 一种数据传送方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341620B2 (en) * 2009-06-25 2012-12-25 Microsoft Corporation Streaming optimized virtual application images
CN103139241A (zh) * 2011-11-24 2013-06-05 腾讯科技(深圳)有限公司 网络资源文件的离线下载系统和方法
CN105049514B (zh) * 2015-07-30 2019-05-31 北京奇虎科技有限公司 一种文件下载方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103312732A (zh) * 2012-03-07 2013-09-18 腾讯科技(深圳)有限公司 数据文件的传输方法及装置
CN103973475A (zh) * 2013-02-05 2014-08-06 腾讯科技(深圳)有限公司 差异补丁包生成方法及下载方法、服务器、客户端
CN104753984A (zh) * 2013-12-26 2015-07-01 乐视网信息技术(北京)股份有限公司 一种数据传送方法及装置

Also Published As

Publication number Publication date
CN105049514A (zh) 2015-11-11
WO2017016479A1 (zh) 2017-02-02

Similar Documents

Publication Publication Date Title
CN105049514B (zh) 一种文件下载方法和装置
CN108279932B (zh) 一种移动终端动态配置用户界面方法和装置
CN104714827B (zh) 插件更新方法及装置
CN104375849B (zh) 加载内核的方法及装置
CN108989885A (zh) 视频文件转码系统、分割方法、转码方法及装置
CN103997544A (zh) 一种资源下载的方法和设备
CN105407130A (zh) 一种移动端插件系统及移动端插件处理方法
CN104834541B (zh) 功能模块挂载方法、挂载系统及更新挂载系统的方法
CN105279436B (zh) 软件更新方法及系统
US20140089252A1 (en) Enhancing performance of extract, transform, and load (etl) jobs
CN106201577B (zh) 一种更新Lua文件的方法及装置
WO2017081558A1 (en) Monitoring and actuation of view controller parameters to reach deep states without manual developer intervention
CN110532016B (zh) 版本管理方法、版本更新方法和版本管理系统
CN104038520A (zh) 一种多版本分布式资源管理方法和系统
CN105760183A (zh) 文件处理方法、装置及通信系统
CN106155475A (zh) 智能终端的定制桌面推送方法及系统
CN109669692A (zh) 源码共享方法、服务器、计算机可读存储介质及系统
CN106055375A (zh) 应用程序安装方法及装置
CN114429210A (zh) 基于云原生的强化学习流水线方法、系统、设备及存储介质
CN106843984A (zh) 应用数据库的更新方法及装置
CN107368513A (zh) 客户端数据库更新的方法及装置
CN110471686A (zh) 自动下载驱动的方法、装置、计算机设备及存储介质
CN104765609A (zh) 软件关联资源推荐方法、获取方法及相应的装置
CN112306963A (zh) 资源文件加载方法、装置及计算机可读存储介质
CN104123160A (zh) 一种导航设备的要素级更新方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220715

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

TR01 Transfer of patent right