数据下载方法和系统的制作方法

文档序号:7979514阅读:125来源:国知局
数据下载方法和系统的制作方法
【专利摘要】一种数据下载方法,获取待下载文件的下载请求,下载请求中包含原始下载链接,原始下载链接为源URL链接、BT种子文件、eMule下载链接中任意一种;根据原始下载链接获得待下载文件的哈希值;根据待下载文件的哈希值,且当原始下载链接为BT种子文件时,获取待下载文件的eMule下载链接信息以及多源URL集合;当原始下载链接为eMule下载链接时,获取待下载文件的Bt种子文件信息以及多源URL集合;当原始下载链接为源URL链接时,获取待下载文件的Bt种子文件信息和eMule下载链接信息以及多源URL集合;根据待下载文件的Bt种子文件信息和/或eMule下载链接信息以及多源URL集合下载待下载文件。通过上述方法能实现基于不同下载协议的网络进行数据共享。此外,还提供一种数据下载系统。
【专利说明】数据下载方法和系统
【技术领域】
[0001]本发明涉及网络技术,特别是涉及一种数据下载方法和系统。
【背景技术】
[0002]主要的数据下载方式有P2P和P2SP。P2P是基于点对点协议,藉由仲裁中介服务器的数据传输,P2SP即点对服务器和点,“点”指的是网络节点-或终端。p2sp下载系统能有效的整合散落于互联网中的资源,为用户下载数据提供更多的通道,实现数据的共享,且相对于传统的P2P下载系统来说稳定性有了较大的加强。目前应用最广泛的三种下载协议分别为Http下载协议、Bt下载协议和eMule下载协议。
[0003]然而,一般的p2sp下载系统米用上述三种下载协议中的一种,每种下载系统只能共享在同一下载协议下的数据。例如,一个用户采用的下载系统是基于Bt下载协议的,当用户在下载某一数据文件时,下载系统首先会获取该数据文件的种子文件,然后根据种子文件在互联网中查找存有该数据文件的节点(Peer),形成一个P2P网络,进而实现该P2P网络中该数据文件的共享。另一个用户采用的是基于eMule下载协议的下载系统,当用户在下载同样的数据时,下载系统首先获得该数据的信息摘要值,然后根据该信息摘要值在互联网中查找存有该数据文件的Peer,并形成一个新的P2P网络。该用户只会在这个新的P2P网络中与其他节点进行数据共享,而不会共享基于Bt下载协议的P2P网络中的数据。
[0004]因此,目前的P2sp技术还没有充分实现网络上数据资源的无缝共享。基于不同下载协议的p2p网络是隔离的,他们下载的同一个数据文件之间的Peer也无法共享,不同的下载协议之间还存在不能互通的鸿沟。

【发明内容】

[0005]基于此,有必要提供一种能实现基于不同下载协议的网络进行数据共享的数据下载方法和系统。
[0006]一种数据下载方法,包括以下步骤:
[0007]获取待下载文件的下载请求,所述下载请求中包含原始下载链接,所述原始下载链接为源URL链接、BT种子文件、eMule下载链接中任意一种;
[0008]根据所述原始下载链接获得所述待下载文件的哈希值;
[0009]根据所述待下载文件的哈希值,且当所述原始下载链接为BT种子文件时,获取所述待下载文件的eMule下载链接信息以及多源URL集合;当所述原始下载链接为eMule下载链接时,获取所述待下载文件的Bt种子文件信息以及多源URL集合;当所述原始下载链接为源URL链接时,获取所述待下载文件的Bt种子文件信息和eMule下载链接信息以及多源URL集合;
[0010]根据获取待下载文件的Bt种子文件信息和/或eMule下载链接信息、以及多源URL集合下载所述待下载文件。
[0011]在其中一个实施例中,所述根据所述原始下载链接获得所述待下载文件的哈希值的步骤为:
[0012]当所述原始下载链接为源URL链接时,根据预设的URL链接与哈希值的映射关系,查询与所述待下载文件的源URL链接对应的哈希值;
[0013]当所述原始下载链接为BT种子文件时,根据预设的Bt种子文件信息与哈希值的映射关系,查询与所述待下载文件的Bt种子文件信息对应的哈希值;
[0014]当所述原始下载链接为eMule下载链接时,根据预设的eMule下载链接信息与哈希值的映射关系,查询与所述待下载文件的eMule下载链接信息对应的哈希值。
[0015]在其中一个实施例中,当所述原始下载链接为源URL链接时,根据所述待下载文件的哈希值,获取所述待下载文件的Bt种子文件信息和eMule下载链接信息以及多源URL集合的步骤为:
[0016]根据预设的URL链接与哈希值的映射关系,查询与所述待下载文件的哈希值对应的多源URL集合;
[0017]根据预设的Bt种子文件信息与哈希值的映射关系,查询与所述待下载文件的哈希值对应的Bt种子文件信息;
[0018]根据预设的eMule下载链接信息与哈希值的映射关系,查询与所述待下载文件的哈希值对应的eMule下载链接信息。
[0019]在其中一个实施例中,当所述原始下载连接为BT种子文件时,根据所述待下载文件的哈希值,获取所述待下载文件的eMule下载链接信息以及多源URL集合的步骤为:
[0020]根据预设的URL链接与哈希值的映射关系,查询与所述待下载文件的哈希值对应的多源URL集合;
[0021]根据预设的eMule下载链接信息与哈希值的映射关系,查询与所述待下载文件的哈希值对应的eMule下载链接信息。
[0022]在其中一个实施例中,当所述原始下载连接为eMule下载链接时,根据所述待下载文件的哈希值,获取所述待下载文件的Bt种子文件信息以及多源URL集合的步骤为:
[0023]根据预设的URL链接与哈希值的映射关系,查询与所述待下载文件的哈希值对应的多源URL集合;
[0024]根据预设的Bt种子文件信息与哈希值的映射关系,查询与所述待下载文件的哈希值对应的Bt种子文件信息。
[0025]在其中一个实施例中,所述Bt种子文件信息为Bt种子文件的特征码和文件序号,所述eMule下载链接信息为待下载文件的信息摘要值和文件大小,所述根据获取待下载文件的Bt种子文件信息和/或eMule下载链接信息、以及多源URL集合下载所述待下载文件的步骤为:
[0026]将所述待下载文件划分为多个分片,并根据下载能力对所述分片的下载任务进行
调度;
[0027]根据所述待下载文件的多源URL集合下载所述分片;
[0028]当所述原始下载链接为Bt种子文件时,根据所述原始下载链接下载所述分片,否贝1J,根据所述待下载文件的Bt种子文件的特征码获取Bt种子,并根据所述BT种子下载所述分片;
[0029]当所述原始下载链接为eMule下载链接时,根据所述原始下载链接下载所述分片,否则,根据所述待下载文件的信息摘要值和文件大小构造eMule下载链接,并根据所述eMule下载链接下载所述分片。
[0030]在其中一个实施例中,所述方法还包括:
[0031]当所述待下载文件为新文件时,建立并存储所述新文件的URL链接与哈希值、Bt种子信息与哈希值或eMule下载链接信息与哈希值之间的映射关系。
[0032]在其中一个实施例中,所述方法还包括:当所述待下载文件为新文件时,获取并存储所述待下载文件的Bt种子文件。
[0033]此外,还提供一种数据下载系统,所述系统包括下载服务器和下载客户端,所述下载服务器包括:
[0034]资源查询服务器,用于获取待下载文件的下载请求,所述下载请求中包含原始下载链接,所述原始下载链接为源URL链接、BT种子文件、eMule下载链接中任意一种;
[0035]逻辑服务器群,用于根据所述原始下载链接获得所述待下载文件的哈希值;
[0036]所述逻辑服务器群还用于根据所述待下载文件的哈希值,且当所述原始下载链接为BT种子文件时,获取所述待下载文件的eMule下载链接信息以及多源URL集合;当所述原始下载链接为eMule下载链接时,获取所述待下载文件的Bt种子文件信息以及多源URL集合;当所述原始下载链接为源URL链接时,获取所述待下载文件的Bt种子文件信息和eMule下载链接信息以及多源URL集合;
[0037]所述下载客户端用于根据获取待下载文件的Bt种子文件信息和/或eMule下载链接信息、以及多源URL集合下载所述待下载文件。
[0038]在其中一个实施例中,所述原始下载链接为源URL链接或BT种子文件或eMule下载链接,所述逻辑服务器群包括:
[0039]U2h服务器,用于当所述原始下载链接为源URL链接时,根据预设的URL链接与哈希值的映射关系,查询与所述待下载文件的源URL链接对应的哈希值;
[0040]Bt2h服务器,用于当所述原始下载链接为BT种子文件时,根据预设的Bt种子文件信息与哈希值的映射关系,查询与所述待下载文件的Bt种子文件信息对应的哈希值;
[0041]eMule2h服务器,用于当所述原始下载链接为eMule下载链接时,根据预设的eMule下载链接信息与哈希值的映射关系,查询与所述待下载文件的eMule下载链接信息对应的哈希值
[0042]在其中一个实施例中,所述逻辑服务器群还包括h2Bt服务器和h2eMule服务器中的一种或两种及h2U服务器,其中:
[0043]h2U服务器,用于根据预设的URL链接与哈希值的映射关系,查询与所述待下载文件的哈希值对应的多源URL集合;
[0044]h2Bt服务器,用于根据预设的Bt种子文件与哈希值的映射关系,查询与所述待下载文件的哈希值对应的Bt种子文件信息;
[0045]h2eMule服务器,用于根据预设的eMule下载链接信息与哈希值的映射关系,查询与所述待下载文件的哈希值对应的eMule下载链接信息。
[0046]在其中一个实施例中,所述Bt种子文件信息为Bt种子文件的特征码和文件序号,所述eMule下载链接信息为待下载文件的信息摘要值和文件大小,所述下载客户端包括:
[0047]调度模块,用于将所述待下载文件划分为多个分片,并根据下载能力对所述分片的下载任务进行调度;
[0048]下载模块,包括:
[0049]Http下载单元,用于根据所述待下载文件的多源URL集合下载所述分片;
[0050]Bt下载单元,用于当所述原始下载链接为Bt种子文件时,根据所述原始下载链接下载所述分片,否则,根据所述待下载文件的Bt种子文件的特征码获取Bt种子,并根据所述BT种子下载所述分片;
[0051]eMule下载单元,用于当所述原始下载链接为eMule下载链接时,根据所述原始下载链接下载所述分片,否则,根据所述待下载文件的信息摘要值和文件大小构造eMule下载链接,并根据所述eMule下载链接下载所述分片。
[0052]在其中一个实施例中,所述下载服务器还包括资源入库模块,所述资源入库模块用于当所述待下载文件为新文件时,建立并存储所述新文件的URL链接与哈希值、Bt种子信息与哈希值或eMule下载链接信息与哈希值之间的映射关系。
[0053]在其中一个实施例中,所述下载服务器还包括Bt种子服务器,所述Bt种子服务器用于当所述待下载文件为新文件时,获取并存储所述待下载文件的Bt种子文件。
[0054]上述数据下载方法和系统,首先获取包含待下载文件原始下载链接的下载请求,并根据原始下载链接获得待下载文件的哈希值。然后根据待下载文件的哈希值,获得待下载文件的Bt种子文件信息和eMule下载链接信息中的两个或两者中与原始下载链接不同的一个,以及获取待下载文件的多源URL集合。最后根据待下载文件的多源URL集合、Bt种子文件信息和eMule下载链接信息下载待下载文件。通过上述方法和系统,在获得待下载文件的原始下载链接后,可以得到待下载文件的多源URL集合、Bt种子文件信息和eMule下载链接信息,从而可以采用基于三种下载协议的下载方式在各自的p2p网络中同时下载待下载文件。因此,上述方法和系统可充分利用网络资源,实现基于不同下载协议的网络进行数据共享。
【专利附图】

【附图说明】
[0055]图1为一实施例中数据下载方法的流程示意图;
[0056]图2为一实施例中根据获取待下载文件的Bt种子文件信息和/或eMule下载链接信息、以及多源URL集合下载所述待下载文件的流程示意图;
[0057]图3为一实施例中数据下载系统的模块示意图;
[0058]图4为一实施例中逻辑服务器群的模块示意图;
[0059]图5为一实施例中下载客户端的模块不意图;
[0060]图6为另一实施例中数据下载系统的模块示意图。
【具体实施方式】
[0061]如图1所示,在一个实施例中,数据下载方法包括以下步骤:
[0062]步骤S110,获取待下载文件的下载请求,下载请求中包含原始下载链接,原始下载链接为源URL链接、BT种子文件、eMule下载链接中任意一种。
[0063]下载请求中包含了待下载文件的原始下载链接。在获取下载请求后,可从下载请求中提取出待下载文件的原始下载链接。在一般情况下,原始下载链接为源URL链接或Bt种子或eMule下载链接。
[0064]步骤S120,根据原始下载链接获得待下载文件的哈希值。
[0065]在获得待下载文件的原始下载链接后,需要根据原始下载链接得到待下载文件的唯一标识号:待下载文件的哈希值。
[0066]步骤S130,根据待下载文件的哈希值,且当原始下载链接为BT种子文件时,获取待下载文件的eMule下载链接信息以及多源URL集合;当原始下载链接为eMule下载链接时,获取待下载文件的Bt种子文件信息以及多源URL集合;当原始下载链接为源URL链接时,获取待下载文件的Bt种子文件信息和eMule下载链接信息以及多源URL集合。
[0067]哈希值是文件的唯一标识,因此不论在是何种下载协议下,同一个文件的哈希值也是相同的。因此,在得到待下载文件的哈希值后,可通过预设的映射关系获得待下载文件在不同下载协议下的下载链接。
[0068]在一个实施例中,原始下载链接为源URL链接,上述步骤S120具体为:根据预设的URL链接与哈希值的映射关系,查询与待下载文件的源URL链接对应的哈希值。
[0069]具体地,当待下载文件的原始下载链接为源URL链接时,查询预设的URL链接与哈希值的映射关系,在该映射关系中,每个URL链接对应有一个哈希值。在映射关系中查找到与源URL链接相同的URL链接,则其对应的哈希值便为该待下载文件的哈希值。
[0070]在本实施例中,上述步骤S130具体为:根据预设的URL链接与哈希值的映射关系,查询与待下载文件的哈希值对应的多源URL集合;根据预设的Bt种子文件信息与哈希值的映射关系,查询与待下载文件的哈希值对应的Bt种子文件信息;根据预设的eMule下载链接信息与哈希值的映射关系,查询与待下载文件的哈希值对应的eMule下载链接信息。
[0071]具体地,同一文件有可能具有多个下载地址,在URL链接与哈希值的映射关系中,每一个哈希值可能对应多个URL链接。查询预设的URL链接与哈希值的映射关系时,可得到待下载文件的多个URL下载链接,待下载文件的多个URL下载链接共同构成多源URL集

口 ο
[0072]具体地,Bt种子文件信息包括Bt种子文件的特征码和文件序号。Bt种子文件信息与哈希值的映射关系中记录的是文件哈希值与Bt种子的特征码和该Bt种子的文件序号所构成的一组数据的映射关系。同一文件有可能对应多个Bt种子,因此,在Bt种子文件信息与哈希值的映射关系中,每一个哈希值可能对应多个同一 Bt种子的一组特征码和文件序号。在获取下载文件的Bt种子文件信息时,一般获取下载平均速度最快的Bt种子的特征码和文件序号。
[0073]在一个实施例中,每个文件在下载完成后,都会将下载耗时、平均速度等下载相关的信息进行上报反馈,根据反馈的信息,可计算存储每个Bt种子文件的平均下载速度,从而方便选择下载平均速度最快的那个Bt种子。
[0074]具体地,eMule下载链接信息为待下载文件的信息摘要值和文件大小。由于信息摘要值也是待下载文件的唯一标识,因此,待下载文件的哈希值与文件的信息摘要值是一一对应的关系。预设的eMule下载链接信息与哈希值的映射关系中记录了待下载文件的哈希值与待下载文件的信息摘要和文件大小的映射,因此,通过哈希值查询可得到待下载文件唯一的信息摘要值和文件大小。
[0075]在另一实施例中,原始下载链接为BT种子文件,上述步骤S120具体为:根据预设的Bt种子文件信息与哈希值的映射关系,查询与待下载文件的Bt种子文件信息对应的哈希值。
[0076]具体地,当待下载文件的原始下载链接为Bt种子时,查询预设的Bt种子文件信息与哈希值的映射关系。在本实施例中,Bt种子文件信息为待下载文件的Bt种子文件的特征码和文件序号所组成的一组数据,在该映射关系中,Bt种子文件的特征码和文件序号与哈希值对应,其中,同一哈希值可与多个同一 Bt种子文件的特征码和文件序号对应。因此查询时,以待下载文件的Bt种子的特征码和文件序号作为查询主键,获得待下载文件的哈希值。
[0077]在本实施例中,上述步骤S130具体为:根据预设的URL链接与哈希值的映射关系,查询与待下载文件的哈希值对应的多源URL集合;根据预设的eMule下载链接信息与哈希值的映射关系,查询与待下载文件的哈希值对应的eMule下载链接信息。
[0078]在另一实施例中,原始下载链接为eMule下载链接,上述步骤S120具体为:根据预设的eMule下载链接信息与哈希值的映射关系,查询与待下载文件的eMule下载链接信息对应的哈希值。
[0079]具体的,当待下载文件的原始链接为eMule下载链接时,查询预设的eMule下载链接信息与哈希值的映射关系。在本实施例中,eMule下载链接信息为待下载文件的信息摘要值和文件大小,在该映射关系中,待下载文件的信息摘要值和文件大小与哈希值对应,其中,哈希值与待下载文件的信息摘要值和文件大小一一对应。因此在查询时,先从eMule下载链接中提取出文件的信息摘要值,然后以待下载文件的信息摘要值作为查询主键,从而获得待下载文件的哈希值。
[0080]在本实施例中,上述步骤S130具体为:根据预设的URL链接与哈希值的映射关系,查询与待下载文件的哈希值对应的多源URL集合;根据预设的Bt种子文件信息与哈希值的映射关系,查询与待下载文件的哈希值对应的Bt种子文件信息。
[0081]步骤S140,根据获取待下载文件的Bt种子文件信息和/或eMule下载链接信息、以及多源URL集合下载所述待下载文件。
[0082]在获得待下载文件的多源URL集合、Bt种子文件信息和eMule下载链接信息后,即可采取Http下载、Bt下载和eMule下载三种方式下载待下载文件。
[0083]如图2所示,在一个实施例中,Bt种子文件信息为Bt种子文件的特征码和文件序号,eMule下载链接信息为待下载文件的信息摘要值和文件大小,上述步骤S140具体为:
[0084]步骤S141,将待下载文件划分为多个分片,并根据下载能力对分片的下载任务进行调度。
[0085]具体地,由于基于不同协议的下载方式的资源有差异,因此在下载不同的文件时,三种下载方式的下载能力也不一样。例如,文件A在Bt下载协议下的资源较多,因此针对文件A,Bt下载的能力最强;而文件B在eMule协议下的资源较多,因此针对文件B,eMule下载的能力最强。因此进行下载之前,首先需要将待下载文件划分为多个分片,并根据下载能力为基于不同协议的下载方式分配分片的下载任务。
[0086]步骤S143,根据待下载文件的多源URL集合下载分片。
[0087]具体地,进行Http下载时,首先根据待下载文件的多源URL集合,通过Tracker服务器查询到含有多源URL集合中的URL链接的节点,组成基于Http下载协议p2p网络,然后基于该P2p网络进行p2p下载,完成所分配的下载任务。
[0088]步骤S145,当原始下载链接为Bt种子文件时,根据原始下载链接下载分片,否则,根据待下载文件的Bt种子文件的特征码获取Bt种子,并根据BT种子下载分片。
[0089]具体地,进行Bt下载时,若原始下载链接为Bt种子文件,则不需要通过根据Bt种子文件信息获取Bt种子文件,而可直接通过原始下载链接进行Bt下载。若原始现在链接不为Bt种子文件,则首先根据待下载文件的Bt种子文件的特征码获取Bt种子。Bt种子存储于Bt种子库中,每个Bt种子都具有唯一的Bt种子特征码与其对应,当获得Bt种子文件的特征码后,可通过特征码在Bt种子库中查找到Bt种子。然后利用Bt种子,通过Tracker服务器(跟踪服务器)查询到含有该Bt种子的节点,组成基于Bt下载协议p2p网络,然后基于该p2p网络进行p2p下载,完成所分配的下载任务。
[0090]步骤S147,当原始下载链接为eMule下载链接时,根据原始下载链接下载分片,否贝1J,根据待下载文件的信息摘要值和文件大小构造eMule下载链接,并根据eMule下载链接下载分片。
[0091]具体地,进行eMule下载时,若原始下载链接为eMule下载链接,则不需要根据eMule下载链接信息获取eMule下载连接,而直接采用原始下载链接进行eMule下载。若原始下载链接不为eMule下载连接,则首先根据待下载文件的信息摘要值和文件大小构造eMule下载链接,然后利用eMule下载链接,通过Tracker服务器查询到含有该eMule下载链接的节点,组成基于eMule下载协议p2p网络,然后基于该p2p网络进行p2p下载,完成所分配的下载任务。
[0092]在一个实施例中,若在待下载文件的下载过程中,有一种或两种下载方式提前完成所分配的下载任务,为了节约网络资源,减少下载耗时,将会对剩余的下载任务进行重新分配。
[0093]在另一个实施例中,数据下载方法还包括:
[0094]当待下载文件为新文件时,建立并存储新文件的URL链接与哈希值、Bt种子信息与哈希值或eMule下载链接信息与哈希值之间的映射关系。
[0095]具体地,当获得原始下载链接后,若根据原始下载链接不能查询到待下载文件的哈希值,则判断该待下载文件为新文件。首先计算该新文件的哈希值,若新文件的原始下载链接为源URL链接,则建立并存储URL链接与哈希值的双向映射关系;若新文件的原始下载链接为eMule下载链接,则建立并存储eMule下载链接信息与哈希值的双向映射关系;若新文件的原始下载链接为Bt种子文件,则建立并存储Bt种子文件信息与哈希值的双向映射关系。
[0096]此外,当新文件的原始下载链接为Bt种子文件时,数据下载方法还包括:
[0097]获取并存储待下载文件的Bt种子文件。
[0098]具体地,新文件的Bt种子文件存储在Bt种子库,当在后续的下载过程中,获取到该Bt种子文件的特征码后,可在Bt种子库中查找到相应的Bt种子文件。从而可根据该Bt种子文件进行下载。
[0099]Bt下载协议的另外一种协议变种称为Magnet协议,即“磁力链接”,磁力链接的主要作用是识别BT种子文件。该链接是通过不同文件内容的Hash结果生成一个纯文本的“数字指纹”,来识别文件的Bt种子文件。不同的是这个“数字指纹”可以被任何人从任何文件上生成,使得“磁力链接”不需要任何“中心机构”的支持(例如:BT Tracker服务器),且识别准确度极高。当采用Bt下载协议的变种Magnet协议进行下载时,可直接通过Magnet协议中的“数字指纹”识别收录在Bt种子库中的Bt种子文件,然后根据Bt种子文件进行下载,因此可提闻Magnet协议的下载效率。
[0100]如图3所示,本发明还提供一种数据下载系统。数据下载系统包括下载服务器100和下载客户端200。其中,下载服务器100包括资源查询服务器110、逻辑服务器群120。
[0101]资源查询服务器110用于获取待下载文件的下载请求,下载请求中包含原始下载链接,原始下载链接为源URL链接、BT种子文件、eMule下载链接中任意一种。
[0102]下载请求中包含了待下载文件的原始下载链接。在获取下载请求后,资源查询服务器110可从下载请求中提取出待下载文件的原始下载链接。在一般情况下,原始下载链接为源URL链接或Bt种子或eMule下载链接。
[0103]逻辑服务器群120用于根据原始下载链接获得待下载文件的哈希值。
[0104]在资源查询服务器110获得待下载文件的原始下载链接后,逻辑服务器群120需要根据原始下载链接得到待下载文件的唯一标识号:待下载文件的哈希值。
[0105]如图4所示,在一个实施例中,逻辑服务器群120包括U2h服务器121、Bt2h服务器123和eMule2h服务器125。其中:
[0106]U2h服务器121用于当原始下载链接为源URL链接时,根据预设的URL链接与哈希值的映射关系,查询与待下载文件的源URL链接对应的哈希值。
[0107]U2h服务器121为URL链接于对应文件hash (哈希值)映射服务器,具体地,当待下载文件的原始下载链接为源URL链接时,U2h服务器121查询预设的URL链接与哈希值的映射关系,在该映射关系中,每个URL链接对应有一个哈希值。U2h服务器121在映射关系中查找到与源URL链接相同的URL链接,则其对应的哈希值便为该待下载文件的哈希值。
[0108]Bt2h服务器123用于当原始下载链接为BT种子文件时,根据预设的Bt种子文件信息与哈希值的映射关系,查询与待下载文件的Bt种子文件信息对应的哈希值。
[0109]Bt2h服务器123为Bt种子文件于对应文件hash映射服务器,具体地,当待下载文件的原始下载链接为Bt种子时,Bt2h服务器123预设的Bt种子文件信息与哈希值的映射关系。在本实施例中,Bt种子文件信息为待下载文件的Bt种子文件的特征码和文件序号,在该映射关系中,Bt种子文件的特征码与哈希值对应。因此,Bt2h服务器123查询时,以待下载文件的Bt种子的特征码和文件序号作为查询主键,获得待下载文件的哈希值。
[0110]eMule2h服务器125用于当原始下载链接为eMule下载链接时,根据预设的eMule下载链接信息与哈希值的映射关系,查询与待下载文件的eMule下载链接信息对应的哈希值。
[0111]eMule2h服务器125为eMule下载链接与文件hash映射服务器,具体的,当待下载文件的原始链接为eMule下载链接时,eMule2h服务器125查询预设的eMule下载链接信息与哈希值的映射关系。在本实施例中,eMule下载链接信息为待下载文件的信息摘要值和文件大小,在该映射关系中,待下载文件的信息摘要值与哈希值对应,因此,在eMule2h服务器125查询时,先从eMule下载链接中提取出文件的信息摘要值,然后以待下载文件的信息摘要值作为查询主键,从而获得待下载文件的哈希值。
[0112]逻辑服务器群120还用于根据待下载文件的哈希值,且当原始下载链接为BT种子文件时,获取待下载文件的eMule下载链接信息以及多源URL集合;当原始下载链接为eMule下载链接时,获取待下载文件的Bt种子文件信息以及多源URL集合;当原始下载链接为源URL链接时,获取待下载文件的Bt种子文件信息和eMule下载链接信息以及多源URL集合。
[0113]哈希值是文件的唯一标识,因此不论在是何种下载协议下,同一个文件的哈希值也是相同的。因此,逻辑服务器群120在得到待下载文件的哈希值后,可通过预设的映射关系获得待下载文件在不同下载协议下的下载链接。
[0114]在一个实施例中,逻辑服务器群120还包括h2U服务器122、h2Bt服务器124和h2eMule服务器126。其中:
[0115]h2U服务器122用于根据预设的URL链接与哈希值的映射关系,查询与待下载文件的哈希值对应的多源URL集合。
[0116]h2U服务器122为文件hash与对应URL链接映射服务器,同一文件有可能具有多个下载地址,在URL链接与哈希值的映射关系中,每一个哈希值可能对应多个URL链接。h2U服务器122查询预设的URL链接与哈希值的映射关系时,可得到待下载文件的多个URL下载链接,待下载文件的多个URL下载链接共同构成多源URL集合。
[0117]h2Bt服务器124用于根据预设的Bt种子文件信息与哈希值的映射关系,查询与待下载文件的哈希值对应的Bt种子文件信息。
[0118]h2Bt服务器124为文件hash与对应Bt种子文件映射服务器。在一个实施例中,Bt种子文件信息包括Bt种子文件的特征码和文件序号,Bt种子文件信息与哈希值的映射关系中记录的是文件哈希值与Bt种子的特征码和文件序号所构成的一组数据的映射关系。同一文件有可能对应多个Bt种子,因此,在Bt种子文件信息与哈希值的映射关系中,每一个哈希值可能对应多个同一 Bt种子的的一组特征码和文件序号。h2Bt服务器124在获取下载文件的Bt种子文件信息时,一般获取下载平均速度最快的那个Bt种子的特征码和文件序号。在一个实施例中,数据下载系统还包括统计服务器,在每次下载完成时,下载客户端会将下载耗时、平均下载速度等下载相关的信息上报给统计服务器,统计服务器对下载相关的信息进行计算分析,可知道资源的优劣以及每个Bt种子文件的平均速度,从而便于选择下载平均速度最快的Bt种子文件。
[0119]h2eMule服务器126用于根据预设的eMule下载链接信息与哈希值的映射关系,查询与待下载文件的哈希值对应的eMule下载链接信息。
[0120]h2eMule服务器126为文件hash与对应eMule下载链接映射服务器。在一个实施例中,eMule下载链接信息为待下载文件的信息摘要值和文件大小。由于信息摘要值也是待下载文件的唯一标识,因此,待下载文件的哈希值与文件的信息摘要值是一一对应的关系。预设的eMule下载链接信息与哈希值的映射关系中记录了待下载文件的哈希值与待下载文件的信息摘要值和文件大小的映射,因此,h2eMule服务器126通过哈希值查询可得到待下载文件唯一的信息摘要值和文件大小。
[0121]在另一个实施例中,当原始下载链接为Bt种子文件时,逻辑服务器群120可仅包括h2U服务器122及h2eMule服务器126。
[0122]在另一个实施例中,当原始下载链接为eMule下载链接时,逻辑服务器群120可仅包括h2U服务器122及h2Bt服务器124。[0123]下载客户端200用于根据获取待下载文件的Bt种子文件信息和/或eMule下载链接信息、以及多源URL集合下载所述待下载文件。
[0124]在逻辑服务器群120获得待下载文件的多源URL集合、Bt种子文件信息和eMule下载链接信息后,下载客户端200即可采取Http下载、Bt下载和eMule下载三种方式下载待下载文件。
[0125]如图5所示,在一个实施例中,Bt种子文件信息为Bt种子文件的特征码和文件序号,下载客户端200包括调度模块210和下载模块220。其中,下载模块220包括Http下载单元221、Bt下载单元223和eMule下载单元225。
[0126]调度模块210用于将待下载文件划分为多个分片,并根据下载能力对分片的下载任务进行调度。
[0127]具体地,由于基于不同协议的下载方式的资源有差异,因此在下载不同的文件时,三种下载方式的下载能力也不一样。例如,文件A在Bt下载协议下的资源较多,因此,针对文件A来说,Bt下载的能力最强;而文件B在eMule协议下的资源较多,因此针对文件B,eMule下载的能力最强。因此,在进行下载之前,调度模块210首先需要将待下载文件划分为多个分片,并根据下载能力为下载模块220不同的下载单元分配分片的下载任务。
[0128]Http下载单元221用于根据待下载文件的多源URL集合下载分片。
[0129]具体地,Http下载单元221进行Http下载时,首先根据待下载文件的多源URL集合,通过Tracker服务器查询到含有多源URL集合中的URL链接的节点,组成基于Http下载协议p2p网络,然后基于该p2p网络进行p2p下载,完成所分配的下载任务。
[0130]Bt下载单元223用于当原始下载链接为Bt种子文件时,根据原始下载链接下载分片,否则,根据待下载文件的Bt种子文件的特征码获取Bt种子,并根据BT种子下载分片。
[0131]具体地,Bt下载单元223进行Bt下载时,若原始下载链接为Bt种子文件,Bt下载单元223则不需要通过根据Bt种子文件信息获取Bt种子文件,而可直接通过原始下载链接进行Bt下载。若原始现在链接不为Bt种子文件,则Bt下载单元223首先根据待下载文件的Bt种子文件的特征码获取Bt种子。Bt种子存储于Bt种子库中,每个Bt种子都具有唯一的Bt种子特征码与其对应,当Bt下载单元223获得Bt种子文件的特征码后,可通过特征码在Bt种子库中查找到Bt种子。然后利用Bt种子,通过Tracker服务器查询到含有该Bt种子的节点,组成基于Bt下载协议p2p网络,然后基于该p2p网络进行p2p下载,完成所分配的下载任务。
[0132]eMule下载单元225用于当原始下载链接为eMule下载链接时,根据原始下载链接下载分片,否则,根据待下载文件的信息摘要值和文件大小构造eMule下载链接,并根据eMule下载链接下载分片。
[0133]具体地,eMule下载单元225进行eMule下载时,若原始下载链接为eMule下载链接,eMule下载单元225则不需要根据eMule下载链接信息获取eMule下载连接,而直接采用原始下载链接进行eMule下载。若原始下载链接不为eMule下载连接,则eMule下载单元225首先根据待下载文件的信息摘要值和文件大小构造eMule下载链接,然后利用eMule下载链接,通过Tracker服务器查询到含有该eMule下载链接的节点,组成基于eMule下载协议p2p网络,然后基于该p2p网络进行p2p下载,完成所分配的下载任务。
[0134]在一个实施例中,若在待下载文件的下载过程中,有一个或两个下载单元提前完成所分配的下载任务,为了节约网络资源,减少下载耗时,调度模块210将会对剩余的下载任务进行重新分配。调度模块210使三个下载单元一直处于工作状态,防止出现空闲的下载单元,从而提高下载效率。
[0135]如图6所示,在另一个实施例中,下载服务器100还包括资源入库服务器130和Bt种子服务器140。其中:
[0136]资源入库服务器130用于当待下载文件为新文件时,建立并存储新文件的URL链接与哈希值、Bt种子信息与哈希值或eMule下载链接信息与哈希值之间的映射关系。
[0137]具体地,当资源查询服务器110获得原始下载链接后,若逻辑服务器群120根据原始下载链接不能查询到待下载文件的哈希值,则判断该待下载文件为新文件。下载客户端200首先计算该新文件的哈希值,若新文件的原始下载链接为源URL链接,资源入库服务器130则建立并存储URL链接与哈希值的双向映射关系;若新文件的原始下载链接为eMule下载链接,资源入库服务器130则建立并存储eMule下载链接信息与哈希值的双向映射关系;若新文件的原始下载链接为Bt种子文件,资源入库服务器130则建立并存储Bt种子文件信息与哈希值的双向映射关系。
[0138]在一个实施例中,上述新建的映射关系存储与索引数据库中,所述索引数据库的数据可被逻辑服务器群120调用,逻辑服务器群120在进行查询映射关系时,可从索引数据库中查找映射关系。同时,上述新建的映射关系还将同步于逻辑服务器群的内存中。逻辑服务器群120在调用映射关系时,首先在其内存中查询,若在内存中查找不到便到索引数据库中查找。这样的查找方式可加快高查询的速度,从而提高整体性能。
[0139]Bt种子服务器140获取并存储待下载文件的Bt种子文件。
[0140]具体地,当待下载文件为新文件且新文件的原始下载链接为Bt种子文件时,Bt种子服务器140获取待下载文件完整的Bt种子文件,并将待下载文件的Bt种子文件存储在Bt种子库。当在后续的下载过程中,获取到该Bt种子文件的特征码后,可在Bt种子库中查找到相应的Bt种子文件。从而可根据该Bt种子文件进行下载。
[0141]Bt下载协议的另外一种协议变种称为Magnet协议,即“磁力链接”,磁力链接的主要作用是识别BT种子文件。该链接是通过不同文件内容的Hash结果生成一个纯文本的“数字指纹”,来识别文件的Bt种子文件。不同的是这个“数字指纹”可以被任何人从任何文件上生成,使得“磁力链接”不需要任何“中心机构”的支持(例如:BT Tracker服务器),且识别准确度极高。当采用Bt下载协议的变种Magnet协议进行下载时,下载客户端200可直接通过Magnet协议中的“数字指纹”识别收录在Bt种子库中的Bt种子文件,然后根据Bt种子文件进行下载,因此可提高Magnet协议的下载效率。
[0142]上述数据下载方法和系统,首先获取包含待下载文件原始下载链接的下载请求,并根据原始下载链接获得待下载文件的哈希值。然后根据待下载文件的哈希值,获得待下载文件的Bt种子文件信息和eMule下载链接信息中的两个或两者中与原始下载链接不同的一个,以及获取待下载文件的多源URL集合。最后根据待下载文件的多源URL集合、Bt种子文件信息和eMule下载链接信息下载待下载文件。通过上述方法和系统,在获得待下载文件的原始下载链接后,可以得到待下载文件的多源URL集合、Bt种子文件信息和eMule下载链接信息,从而可以采用基于三种下载协议的下载方式在各自的p2p网络中同时下载待下载文件。因此,上述方法和系统可充分利用网络资源,实现基于不同下载协议的网络进行数据共享。
[0143]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种数据下载方法,包括以下步骤: 获取待下载文件的下载请求,所述下载请求中包含原始下载链接,所述原始下载链接为源URL链接、BT种子文件、eMule下载链接中任意一种; 根据所述原始下载链接获得所述待下载文件的哈希值; 根据所述待下载文件的哈希值,且当所述原始下载链接为BT种子文件时,获取所述待下载文件的eMule下载链接信息以及多源URL集合;当所述原始下载链接为eMule下载链接时,获取所述待下载文件的Bt种子文件信息以及多源URL集合;当所述原始下载链接为源URL链接时,获取所述待下载文件的Bt种子文件信息和eMule下载链接信息以及多源URL集合; 根据获取的待下载文件的Bt种子文件信息和/或eMule下载链接信息、以及多源URL集合下载所述待下载文件。
2.根据权利要求1所述的数据下载方法,其特征在于,所述根据所述原始下载链接获得所述待下载文件的哈希值的步骤为: 当所述原始下载链接为源URL链接时,根据预设的URL链接与哈希值的映射关系,查询与所述待下载文件的源URL链接对应的哈希值; 当所述原始下载链接为BT种子文件时,根据预设的Bt种子文件信息与哈希值的映射关系,查询与所述待下载文件的Bt种子文件信息对应的哈希值; 当所述原始下载链接为eMule下载链接时,根据预设的eMule下载链接信息与哈希值的映射关系,查询与所述待下载文件的eMule下载链接信息对应的哈希值。
3.根据权利要求1或2所述的数据下载方法,其特征在于,当所述原始下载链接为源URL链接时,根据所述 待下载文件的哈希值,获取所述待下载文件的Bt种子文件信息和eMule下载链接信息以及多源URL集合的步骤为: 根据预设的URL链接与哈希值的映射关系,查询与所述待下载文件的哈希值对应的多源URL集合; 根据预设的Bt种子文件信息与哈希值的映射关系,查询与所述待下载文件的哈希值对应的Bt种子文件信息; 根据预设的eMule下载链接信息与哈希值的映射关系,查询与所述待下载文件的哈希值对应的eMule下载链接信息。
4.根据权利要求1或2所述的数据下载方法,其特征在于,当所述原始下载连接为BT种子文件时,根据所述待下载文件的哈希值,获取所述待下载文件的eMule下载链接信息以及多源URL集合的步骤为: 根据预设的URL链接与哈希值的映射关系,查询与所述待下载文件的哈希值对应的多源URL集合; 根据预设的eMule下载链接信息与哈希值的映射关系,查询与所述待下载文件的哈希值对应的eMule下载链接信息。
5.根据权利要求1或2所述的数据下载方法,其特征在于,当所述原始下载连接为eMule下载链接时,根据所述待下载文件的哈希值,获取所述待下载文件的Bt种子文件信息以及多源URL集合的步骤为: 根据预设的URL链接与哈希值的映射关系,查询与所述待下载文件的哈希值对应的多源URL集合; 根据预设的Bt种子文件信息与哈希值的映射关系,查询与所述待下载文件的哈希值对应的Bt种子文件信息。
6.根据权利要求1所述的数据下载方法,其特征在于,所述Bt种子文件信息为Bt种子文件的特征码和文件序号,所述eMule下载链接信息为待下载文件的信息摘要值和文件大小,所述根据获取待下载文件的Bt种子文件信息和/或eMule下载链接信息、以及多源URL集合下载所述待下载文件的步骤为: 将所述待下载文件划分为多个分片,并根据下载能力对所述分片的下载任务进行调度; 根据所述待下载文件的多源URL集合下载所述分片; 当所述原始下载链接为Bt种子文件时,根据所述原始下载链接下载所述分片,否则,根据所述待下载文件的Bt种子文件的特征码获取Bt种子,并根据所述BT种子下载所述分片; 当所述原始下载 链接为eMule下载链接时,根据所述原始下载链接下载所述分片,否贝1J,根据所述待下载文件的信息摘要值和文件大小构造eMule下载链接,并根据所述eMule下载链接下载所述分片。
7.根据权利要求1所述的数据下载方法,其特征在于,所述方法还包括: 当所述待下载文件为新文件时,建立并存储所述新文件的URL链接与哈希值、Bt种子信息与哈希值或eMule下载链接信息与哈希值之间的映射关系。
8.根据权利要求7所述的数据下载方法,其特征在于,所述方法还包括:当所述待下载文件为新文件时,获取并存储所述待下载文件的Bt种子文件。
9.一种数据下载系统,包括下载服务器和下载客户端,其特征在于,所述下载服务器包括: 资源查询服务器,用于获取待下载文件的下载请求,所述下载请求中包含原始下载链接,所述原始下载链接为源URL链接、BT种子文件、eMule下载链接中任意一种; 逻辑服务器群,用于根据所述原始下载链接获得所述待下载文件的哈希值; 所述逻辑服务器群还用于根据所述待下载文件的哈希值,且当所述原始下载链接为BT种子文件时,获取所述待下载文件的eMule下载链接信息以及多源URL集合;当所述原始下载链接为eMule下载链接时,获取所述待下载文件的Bt种子文件信息以及多源URL集合;当所述原始下载链接为源URL链接时,获取所述待下载文件的Bt种子文件信息和eMule下载链接信息以及多源URL集合; 所述下载客户端用于根据获取待下载文件的Bt种子文件信息和/或eMule下载链接信息、以及多源URL集合下载所述待下载文件。
10.如权利要求9所述的数据下载系统,其特征在于,所述原始下载链接为源URL链接或BT种子文件或eMule下载链接,所述逻辑服务器群包括: U2h服务器,用于当所述原始下载链接为源URL链接时,根据预设的URL链接与哈希值的映射关系,查询与所述待下载文件的源URL链接对应的哈希值; Bt2h服务器,用于当所述原始下载链接为BT种子文件时,根据预设的Bt种子文件信息与哈希值的映射关系,查询与所述待下载文件的Bt种子文件信息对应的哈希值;eMule2h服务器,用于当所述原始下载链接为eMule下载链接时,根据预设的eMule下载链接信息与哈希值的映射关系,查询与所述待下载文件的eMule下载链接信息对应的哈希值。
11.如权利要求9或10所述的数据下载系统,其特征在于,所述逻辑服务器群还包括h2Bt服务器和h2eMule服务器中的一种或两种及h2U服务器,其中: h2U服务器,用于根据预设的URL链接与哈希值的映射关系,查询与所述待下载文件的哈希值对应的多源URL集合; h2Bt服务器,用于根据预设的Bt种子文件与哈希值的映射关系,查询与所述待下载文件的哈希值对应的Bt种子文件信息; h2eMule服务器,用于根据预设的eMule下载链接信息与哈希值的映射关系,查询与所述待下载文件的哈希值对应的eMule下载链接信息。
12.如权利要求9所述的数据下载系统,其特征在于,所述Bt种子文件信息为Bt种子文件的特征码和文件序号,所述eMule下载链接信息为待下载文件的信息摘要值和文件大小,所述下载客户端包括: 调度模块,用于将所述待下载文件划分为多个分片,并根据下载能力对所述分片的下载任务进行调度; 下载模块,包括: Http下载单元,用于根据所述待下载文件的多源URL集合下载所述分片; Bt下载单元,当所述原始下载链接为Bt种子文件时,根据所述原始下载链接下载所述分片,否则,用于根据所述待下载文件的Bt种子文件的特征码获取Bt种子,并根据所述BT种子下载所述分片; eMule下载单元,用于当所述原始下载链接为eMule下载链接时,根据所述原始下载链接下载所述分片,否则,根据所述待下载文件的信息摘要值和文件大小构造eMule下载链接,并根据所述eMule下载链接下载所述分片。
13.如权利要求9所述的数据下载系统,其特征在于,所述下载服务器还包括资源入库模块,所述资源入库模块用于当所述待下载文件为新文件时,建立并存储所述新文件的URL链接与哈希值、Bt种子信息与哈希值或eMule下载链接信息与哈希值之间的映射关系。
14.如权利要求13所述的数据下载系统,其特征在于,所述下载服务器还包括Bt种子服务器,所述Bt种子服务器用于当所述待下载文件为新文件时,获取并存储所述待下载文件的Bt种子文件。
【文档编号】H04L29/08GK103457976SQ201210179122
【公开日】2013年12月18日 申请日期:2012年6月1日 优先权日:2012年6月1日
【发明者】刘刚 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1