一种避免重复下载的方法和装置制造方法及图纸

技术编号:18913559 阅读:34 留言:0更新日期:2018-09-12 02:58
本申请公开了一种避免重复下载的方法和装置。该方法为:下载待下载文件中的预设部分数据;对预设部分数据进行哈希计算获得第一哈希值;将第一哈希值与数据库中的哈希值进行比较,其中,数据库中预存有多个哈希值以及与多个哈希值对应的文件;当数据库中存在与第一哈希值相同的第二哈希值时,获取第二哈希值对应的文件作为下载结果;当数据库中不存在与第一哈希值相同的哈希值时,继续下载待下载文件的剩余部分数据。通过上述方法,解决了相关技术中无法有效避免重复下载的问题,进而达到了有效避免重复下载的效果。

Method and device for avoiding repeated Download

The invention discloses a method and device for avoiding repeated download. The method includes: downloading the preset part of the file to be downloaded; hashing the preset part of the data to obtain the first hash value; comparing the first hash value with the hash value in the database, where there are multiple hash values and files corresponding to the hash value in the database; and when there are files in the database, the hash value is compared with the hash value in the database. When the first hash value is the same as the second hash value, the file corresponding to the second hash value is obtained as the download result; when the database does not have the same hash value as the first hash value, the remaining data of the file to be downloaded is continued. Through the above methods, the problem that can not effectively avoid repeated downloads in related technologies is solved, and the effect of effectively avoiding repeated downloads is achieved.

【技术实现步骤摘要】
一种避免重复下载的方法和装置
本申请涉及互联网领域,具体而言,涉及一种避免重复下载的方法和装置。
技术介绍
当前,从网络上下载文件所用的文件下载协议主要包括HTTP、FTP、BT和ED2k等,上述文件下载协议中,除了单文件的BT和ED2k在下载前可以有一个与文件惟一对应的哈希值外,HTTP,FTP,多文件BT都没有形成一个标准,让客户端在下载时并得到文件的惟一哈希值。在离线下载应用中,为了节约资源,离线服务器会在下载之前,通常通过将待下载文件的哈希值与数据库中预存的哈希值比较来判断待下载的文件是否是已下载过的文件,若是则直接从数据库中调取该文件,进而节约下载资源。然而,由于下载之前,待下载文件本身没有与其对应的哈希值,且文件被不同形式分发时,如文件对应不同的下载链接或被打包进不同的BT种子中,则离线服务器很容易对该文件进行重复下载。针对相关技术中无法有效避免重复下载的问题,目前尚未提出有效的解决方案。
技术实现思路
本申请提供了一种避免重复下载的方法和装置,以解决相关技术中无法有效避免重复下载的问题。根据本申请的一个方面,提供了一种避免重复下载的方法。该方法包括:下载待下载文件中的预设部分数据;对预设部分数据进行哈希计算获得第一哈希值;将第一哈希值与数据库中的哈希值进行比较,其中,数据库中预存有多个哈希值以及与多个哈希值对应的文件;当数据库中存在与第一哈希值相同的第二哈希值时,获取第二哈希值对应的文件作为下载结果;当数据库中不存在与第一哈希值相同的哈希值时,继续下载待下载文件的剩余部分数据。进一步地,预设部分数据为待下载文件中的多个预设位置中的预设大小的数据,对预设部分数据进行哈希计算获得第一哈希值包括:将待下载文件中的多个预设位置中的预设大小的数据以及待下载文件的大小数值进行拼接得到拼接数据;对拼接数据进行哈希计算获得第一哈希值。进一步地,当数据库中不存在与第一哈希值相同的哈希值时,继续下载待下载文件的剩余部分数据之后,该方法还包括:将第一哈希值和待下载文件存入数据库中。进一步地,在下载待下载文件中的预设部分数据之前,该方法还包括:当待下载文件的大小小于预设值时,直接下载整个待下载文件并结束下载。根据本申请的另一方面,提供了一种避免重复下载的装置。该装置包括:第一下载单元,用于下载待下载文件中的预设部分数据;计算单元,用于对预设部分数据进行哈希计算获得第一哈希值;比较单元,用于将第一哈希值与数据库中的哈希值进行比较,其中,数据库中预存有多个哈希值以及与多个哈希值对应的文件;获取单元,用于当数据库中存在与第一哈希值相同的第二哈希值时,获取第二哈希值对应的文件作为下载结果;第二下载单元,用于当数据库中不存在与第一哈希值相同的哈希值时,继续下载待下载文件的剩余部分数据。进一步地,预设部分数据为待下载文件中的多个预设位置中的预设大小的数据,计算单元包括:拼接模块,用于将待下载文件中的多个预设位置中的预设大小的数据以及待下载文件的大小数值进行拼接得到拼接数据;计算模块,用于对拼接数据进行哈希计算获得第一哈希值。进一步地,该装置还包括:存入单元,用于在数据库中不存在与第一哈希值相同的哈希值时,继续下载待下载文件的剩余部分数据之后,将第一哈希值和待下载文件存入数据库中。进一步地,该装置还包括:第三下载单元,用于在下载待下载文件中的预设部分数据之前,当待下载文件的大小小于预设值时,直接下载整个待下载文件并结束下载。根据本申请的另一方面,提供了一种存储介质,上述存储介质包括存储的程序,其中,程序执行上述任意一项的避免重复下载的方法。根据本申请的另一方面,提供了一种处理器,上述处理器用于运行程序,其中,程序运行时执行上述任意一项的避免重复下载的方法。本申请通过以下方法:下载待下载文件中的预设部分数据;对预设部分数据进行哈希计算获得第一哈希值;将第一哈希值与数据库中的哈希值进行比较,其中,数据库中预存有多个哈希值以及与多个哈希值对应的文件;当数据库中存在与第一哈希值相同的第二哈希值时,获取第二哈希值对应的文件作为下载结果;当数据库中不存在与第一哈希值相同的哈希值时,继续下载待下载文件的剩余部分数据,解决了相关技术中无法有效避免重复下载的问题,进而达到了有效避免重复下载的效果。由于通过下载待下载文件的部分数据来计算对应的哈希值,使得哈希值计算的速度快,使对文件是否为己下载文件的判断效率更高。附图说明构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是根据本申请实施例提供的避免重复下载的方法的流程图;以及图2是根据本申请实施例提供的避免重复下载的装置的示意图。具体实施方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。根据本申请的实施例,提供了一种避免重复下载的方法。图1是根据本申请实施例的避免重复下载的方法的流程图。如图1所示,该方法包括以下步骤:步骤S101,下载待下载文件中的预设部分数据。需要说明的是,当待下载文件为大文件时,对该大文件的重复下载将造成下载资源和时间的浪费,为了避免重复下载,离线服务器需要通过将待下载文件的哈希值与数据库中预存的哈希值进行比较来确定该待下载文件是否为已下载的文件。而除了单文件的BT和ED2k在下载前可以有一个与文件惟一对应的哈希值外,待下载文件都要等到整个待下载文件整个下载完成之后才能计算,而这也就失去了避免重复下载的意义。因此,上述实施方式中,先对待下载文件中的预设部分的数据进行下载,进而根据该预设部分数据来计算与该大文件对应的哈希值。上述实施方式由于在计算待下载文件的哈希值时只提前下载了预设部分数据,进而在节约了下载资源和时间的情况下,实现了对待下载文件的哈希值的计算。可选的,在下载待下载文件中的预设部分数据之前,该方法还包括:当待下载文件的大小小于预设值时,直接下载整个待下载文件并结束下载。需要说明的是,当待下载文件较小时,下载该文件所占用的时间较小,而判断该文件是否为已下载文件同样会占用一定时间,所以对小文件是否为已下载文件的判断意义不大。因此,上述实施方式中,当待下载文件的大小小于预设值时,直接下载整个文件并结束下载,避免了离线下载服务器进行不必要的操作本文档来自技高网
...

【技术保护点】
1.一种避免重复下载的方法,其特征在于,所述方法包括:下载待下载文件中的预设部分数据;对所述预设部分数据进行哈希计算获得第一哈希值;将所述第一哈希值与数据库中的哈希值进行比较,其中,所述数据库中预存有多个哈希值以及与所述多个哈希值对应的文件;当所述数据库中存在与所述第一哈希值相同的第二哈希值时,获取所述第二哈希值对应的文件作为下载结果;当所述数据库中不存在与所述第一哈希值相同的哈希值时,继续下载所述待下载文件的剩余部分数据。

【技术特征摘要】
1.一种避免重复下载的方法,其特征在于,所述方法包括:下载待下载文件中的预设部分数据;对所述预设部分数据进行哈希计算获得第一哈希值;将所述第一哈希值与数据库中的哈希值进行比较,其中,所述数据库中预存有多个哈希值以及与所述多个哈希值对应的文件;当所述数据库中存在与所述第一哈希值相同的第二哈希值时,获取所述第二哈希值对应的文件作为下载结果;当所述数据库中不存在与所述第一哈希值相同的哈希值时,继续下载所述待下载文件的剩余部分数据。2.根据权利要求1所述的方法,其特征在于,所述预设部分数据为所述待下载文件中的多个预设位置中的预设大小的数据,对所述预设部分数据进行哈希计算获得第一哈希值包括:将所述待下载文件中的多个预设位置中的预设大小的数据以及所述待下载文件的大小数值进行拼接得到拼接数据;对所述拼接数据进行哈希计算获得所述第一哈希值。3.根据权利要求1所述的方法,其特征在于,当所述数据库中不存在与所述第一哈希值相同的哈希值时,继续下载所述待下载文件的剩余部分数据之后,所述方法还包括:将所述第一哈希值和所述待下载文件存入所述数据库中。4.根据权利要求1所述的方法,其特征在于,在下载待下载文件中的预设部分数据之前,所述方法还包括:当所述待下载文件的大小小于预设值时,直接下载整个所述待下载文件并结束下载。5.一种避免重复下载的装置,其特征在于,所述装置包括:第一下载单元,用于下载待下载文件中的预设部分数据;计算单元,用于对所述预设部分数据进行哈希计算获得第一哈希值;比较...

【专利技术属性】
技术研发人员:莫广
申请(专利权)人:广东一一五科技股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1