數(shù)據(jù)下載方法和系統(tǒng)的制作方法
【專利摘要】一種數(shù)據(jù)下載方法,獲取待下載文件的下載請(qǐng)求,下載請(qǐng)求中包含原始下載鏈接,原始下載鏈接為源URL鏈接、BT種子文件、eMule下載鏈接中任意一種;根據(jù)原始下載鏈接獲得待下載文件的哈希值;根據(jù)待下載文件的哈希值,且當(dāng)原始下載鏈接為BT種子文件時(shí),獲取待下載文件的eMule下載鏈接信息以及多源URL集合;當(dāng)原始下載鏈接為eMule下載鏈接時(shí),獲取待下載文件的Bt種子文件信息以及多源URL集合;當(dāng)原始下載鏈接為源URL鏈接時(shí),獲取待下載文件的Bt種子文件信息和eMule下載鏈接信息以及多源URL集合;根據(jù)待下載文件的Bt種子文件信息和/或eMule下載鏈接信息以及多源URL集合下載待下載文件。通過(guò)上述方法能實(shí)現(xiàn)基于不同下載協(xié)議的網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)共享。此外,還提供一種數(shù)據(jù)下載系統(tǒng)。
【專利說(shuō)明】數(shù)據(jù)下載方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)技術(shù),特別是涉及一種數(shù)據(jù)下載方法和系統(tǒng)。
【背景技術(shù)】
[0002]主要的數(shù)據(jù)下載方式有P2P和P2SP。P2P是基于點(diǎn)對(duì)點(diǎn)協(xié)議,藉由仲裁中介服務(wù)器的數(shù)據(jù)傳輸,P2SP即點(diǎn)對(duì)服務(wù)器和點(diǎn),“點(diǎn)”指的是網(wǎng)絡(luò)節(jié)點(diǎn)-或終端。p2sp下載系統(tǒng)能有效的整合散落于互聯(lián)網(wǎng)中的資源,為用戶下載數(shù)據(jù)提供更多的通道,實(shí)現(xiàn)數(shù)據(jù)的共享,且相對(duì)于傳統(tǒng)的P2P下載系統(tǒng)來(lái)說(shuō)穩(wěn)定性有了較大的加強(qiáng)。目前應(yīng)用最廣泛的三種下載協(xié)議分別為Http下載協(xié)議、Bt下載協(xié)議和eMule下載協(xié)議。
[0003]然而,一般的p2sp下載系統(tǒng)米用上述三種下載協(xié)議中的一種,每種下載系統(tǒng)只能共享在同一下載協(xié)議下的數(shù)據(jù)。例如,一個(gè)用戶采用的下載系統(tǒng)是基于Bt下載協(xié)議的,當(dāng)用戶在下載某一數(shù)據(jù)文件時(shí),下載系統(tǒng)首先會(huì)獲取該數(shù)據(jù)文件的種子文件,然后根據(jù)種子文件在互聯(lián)網(wǎng)中查找存有該數(shù)據(jù)文件的節(jié)點(diǎn)(Peer),形成一個(gè)P2P網(wǎng)絡(luò),進(jìn)而實(shí)現(xiàn)該P(yáng)2P網(wǎng)絡(luò)中該數(shù)據(jù)文件的共享。另一個(gè)用戶采用的是基于eMule下載協(xié)議的下載系統(tǒng),當(dāng)用戶在下載同樣的數(shù)據(jù)時(shí),下載系統(tǒng)首先獲得該數(shù)據(jù)的信息摘要值,然后根據(jù)該信息摘要值在互聯(lián)網(wǎng)中查找存有該數(shù)據(jù)文件的Peer,并形成一個(gè)新的P2P網(wǎng)絡(luò)。該用戶只會(huì)在這個(gè)新的P2P網(wǎng)絡(luò)中與其他節(jié)點(diǎn)進(jìn)行數(shù)據(jù)共享,而不會(huì)共享基于Bt下載協(xié)議的P2P網(wǎng)絡(luò)中的數(shù)據(jù)。
[0004]因此,目前的P2sp技術(shù)還沒(méi)有充分實(shí)現(xiàn)網(wǎng)絡(luò)上數(shù)據(jù)資源的無(wú)縫共享?;诓煌螺d協(xié)議的p2p網(wǎng)絡(luò)是隔離的,他們下載的同一個(gè)數(shù)據(jù)文件之間的Peer也無(wú)法共享,不同的下載協(xié)議之間還存在不能互通的鴻溝。
【發(fā)明內(nèi)容】
[0005]基于此,有必要提供一種能實(shí)現(xiàn)基于不同下載協(xié)議的網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)共享的數(shù)據(jù)下載方法和系統(tǒng)。
[0006]一種數(shù)據(jù)下載方法,包括以下步驟:
[0007]獲取待下載文件的下載請(qǐng)求,所述下載請(qǐng)求中包含原始下載鏈接,所述原始下載鏈接為源URL鏈接、BT種子文件、eMule下載鏈接中任意一種;
[0008]根據(jù)所述原始下載鏈接獲得所述待下載文件的哈希值;
[0009]根據(jù)所述待下載文件的哈希值,且當(dāng)所述原始下載鏈接為BT種子文件時(shí),獲取所述待下載文件的eMule下載鏈接信息以及多源URL集合;當(dāng)所述原始下載鏈接為eMule下載鏈接時(shí),獲取所述待下載文件的Bt種子文件信息以及多源URL集合;當(dāng)所述原始下載鏈接為源URL鏈接時(shí),獲取所述待下載文件的Bt種子文件信息和eMule下載鏈接信息以及多源URL集合;
[0010]根據(jù)獲取待下載文件的Bt種子文件信息和/或eMule下載鏈接信息、以及多源URL集合下載所述待下載文件。
[0011]在其中一個(gè)實(shí)施例中,所述根據(jù)所述原始下載鏈接獲得所述待下載文件的哈希值的步驟為:
[0012]當(dāng)所述原始下載鏈接為源URL鏈接時(shí),根據(jù)預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,查詢與所述待下載文件的源URL鏈接對(duì)應(yīng)的哈希值;
[0013]當(dāng)所述原始下載鏈接為BT種子文件時(shí),根據(jù)預(yù)設(shè)的Bt種子文件信息與哈希值的映射關(guān)系,查詢與所述待下載文件的Bt種子文件信息對(duì)應(yīng)的哈希值;
[0014]當(dāng)所述原始下載鏈接為eMule下載鏈接時(shí),根據(jù)預(yù)設(shè)的eMule下載鏈接信息與哈希值的映射關(guān)系,查詢與所述待下載文件的eMule下載鏈接信息對(duì)應(yīng)的哈希值。
[0015]在其中一個(gè)實(shí)施例中,當(dāng)所述原始下載鏈接為源URL鏈接時(shí),根據(jù)所述待下載文件的哈希值,獲取所述待下載文件的Bt種子文件信息和eMule下載鏈接信息以及多源URL集合的步驟為:
[0016]根據(jù)預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的多源URL集合;
[0017]根據(jù)預(yù)設(shè)的Bt種子文件信息與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的Bt種子文件信息;
[0018]根據(jù)預(yù)設(shè)的eMule下載鏈接信息與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的eMule下載鏈接信息。
[0019]在其中一個(gè)實(shí)施例中,當(dāng)所述原始下載連接為BT種子文件時(shí),根據(jù)所述待下載文件的哈希值,獲取所述待下載文件的eMule下載鏈接信息以及多源URL集合的步驟為:
[0020]根據(jù)預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的多源URL集合;
[0021]根據(jù)預(yù)設(shè)的eMule下載鏈接信息與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的eMule下載鏈接信息。
[0022]在其中一個(gè)實(shí)施例中,當(dāng)所述原始下載連接為eMule下載鏈接時(shí),根據(jù)所述待下載文件的哈希值,獲取所述待下載文件的Bt種子文件信息以及多源URL集合的步驟為:
[0023]根據(jù)預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的多源URL集合;
[0024]根據(jù)預(yù)設(shè)的Bt種子文件信息與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的Bt種子文件信息。
[0025]在其中一個(gè)實(shí)施例中,所述Bt種子文件信息為Bt種子文件的特征碼和文件序號(hào),所述eMule下載鏈接信息為待下載文件的信息摘要值和文件大小,所述根據(jù)獲取待下載文件的Bt種子文件信息和/或eMule下載鏈接信息、以及多源URL集合下載所述待下載文件的步驟為:
[0026]將所述待下載文件劃分為多個(gè)分片,并根據(jù)下載能力對(duì)所述分片的下載任務(wù)進(jìn)行
調(diào)度;
[0027]根據(jù)所述待下載文件的多源URL集合下載所述分片;
[0028]當(dāng)所述原始下載鏈接為Bt種子文件時(shí),根據(jù)所述原始下載鏈接下載所述分片,否貝1J,根據(jù)所述待下載文件的Bt種子文件的特征碼獲取Bt種子,并根據(jù)所述BT種子下載所述分片;
[0029]當(dāng)所述原始下載鏈接為eMule下載鏈接時(shí),根據(jù)所述原始下載鏈接下載所述分片,否則,根據(jù)所述待下載文件的信息摘要值和文件大小構(gòu)造eMule下載鏈接,并根據(jù)所述eMule下載鏈接下載所述分片。
[0030]在其中一個(gè)實(shí)施例中,所述方法還包括:
[0031]當(dāng)所述待下載文件為新文件時(shí),建立并存儲(chǔ)所述新文件的URL鏈接與哈希值、Bt種子信息與哈希值或eMule下載鏈接信息與哈希值之間的映射關(guān)系。
[0032]在其中一個(gè)實(shí)施例中,所述方法還包括:當(dāng)所述待下載文件為新文件時(shí),獲取并存儲(chǔ)所述待下載文件的Bt種子文件。
[0033]此外,還提供一種數(shù)據(jù)下載系統(tǒng),所述系統(tǒng)包括下載服務(wù)器和下載客戶端,所述下載服務(wù)器包括:
[0034]資源查詢服務(wù)器,用于獲取待下載文件的下載請(qǐng)求,所述下載請(qǐng)求中包含原始下載鏈接,所述原始下載鏈接為源URL鏈接、BT種子文件、eMule下載鏈接中任意一種;
[0035]邏輯服務(wù)器群,用于根據(jù)所述原始下載鏈接獲得所述待下載文件的哈希值;
[0036]所述邏輯服務(wù)器群還用于根據(jù)所述待下載文件的哈希值,且當(dāng)所述原始下載鏈接為BT種子文件時(shí),獲取所述待下載文件的eMule下載鏈接信息以及多源URL集合;當(dāng)所述原始下載鏈接為eMule下載鏈接時(shí),獲取所述待下載文件的Bt種子文件信息以及多源URL集合;當(dāng)所述原始下載鏈接為源URL鏈接時(shí),獲取所述待下載文件的Bt種子文件信息和eMule下載鏈接信息以及多源URL集合;
[0037]所述下載客戶端用于根據(jù)獲取待下載文件的Bt種子文件信息和/或eMule下載鏈接信息、以及多源URL集合下載所述待下載文件。
[0038]在其中一個(gè)實(shí)施例中,所述原始下載鏈接為源URL鏈接或BT種子文件或eMule下載鏈接,所述邏輯服務(wù)器群包括:
[0039]U2h服務(wù)器,用于當(dāng)所述原始下載鏈接為源URL鏈接時(shí),根據(jù)預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,查詢與所述待下載文件的源URL鏈接對(duì)應(yīng)的哈希值;
[0040]Bt2h服務(wù)器,用于當(dāng)所述原始下載鏈接為BT種子文件時(shí),根據(jù)預(yù)設(shè)的Bt種子文件信息與哈希值的映射關(guān)系,查詢與所述待下載文件的Bt種子文件信息對(duì)應(yīng)的哈希值;
[0041]eMule2h服務(wù)器,用于當(dāng)所述原始下載鏈接為eMule下載鏈接時(shí),根據(jù)預(yù)設(shè)的eMule下載鏈接信息與哈希值的映射關(guān)系,查詢與所述待下載文件的eMule下載鏈接信息對(duì)應(yīng)的哈希值
[0042]在其中一個(gè)實(shí)施例中,所述邏輯服務(wù)器群還包括h2Bt服務(wù)器和h2eMule服務(wù)器中的一種或兩種及h2U服務(wù)器,其中:
[0043]h2U服務(wù)器,用于根據(jù)預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的多源URL集合;
[0044]h2Bt服務(wù)器,用于根據(jù)預(yù)設(shè)的Bt種子文件與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的Bt種子文件信息;
[0045]h2eMule服務(wù)器,用于根據(jù)預(yù)設(shè)的eMule下載鏈接信息與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的eMule下載鏈接信息。
[0046]在其中一個(gè)實(shí)施例中,所述Bt種子文件信息為Bt種子文件的特征碼和文件序號(hào),所述eMule下載鏈接信息為待下載文件的信息摘要值和文件大小,所述下載客戶端包括:
[0047]調(diào)度模塊,用于將所述待下載文件劃分為多個(gè)分片,并根據(jù)下載能力對(duì)所述分片的下載任務(wù)進(jìn)行調(diào)度;
[0048]下載模塊,包括:
[0049]Http下載單元,用于根據(jù)所述待下載文件的多源URL集合下載所述分片;
[0050]Bt下載單元,用于當(dāng)所述原始下載鏈接為Bt種子文件時(shí),根據(jù)所述原始下載鏈接下載所述分片,否則,根據(jù)所述待下載文件的Bt種子文件的特征碼獲取Bt種子,并根據(jù)所述BT種子下載所述分片;
[0051]eMule下載單元,用于當(dāng)所述原始下載鏈接為eMule下載鏈接時(shí),根據(jù)所述原始下載鏈接下載所述分片,否則,根據(jù)所述待下載文件的信息摘要值和文件大小構(gòu)造eMule下載鏈接,并根據(jù)所述eMule下載鏈接下載所述分片。
[0052]在其中一個(gè)實(shí)施例中,所述下載服務(wù)器還包括資源入庫(kù)模塊,所述資源入庫(kù)模塊用于當(dāng)所述待下載文件為新文件時(shí),建立并存儲(chǔ)所述新文件的URL鏈接與哈希值、Bt種子信息與哈希值或eMule下載鏈接信息與哈希值之間的映射關(guān)系。
[0053]在其中一個(gè)實(shí)施例中,所述下載服務(wù)器還包括Bt種子服務(wù)器,所述Bt種子服務(wù)器用于當(dāng)所述待下載文件為新文件時(shí),獲取并存儲(chǔ)所述待下載文件的Bt種子文件。
[0054]上述數(shù)據(jù)下載方法和系統(tǒng),首先獲取包含待下載文件原始下載鏈接的下載請(qǐng)求,并根據(jù)原始下載鏈接獲得待下載文件的哈希值。然后根據(jù)待下載文件的哈希值,獲得待下載文件的Bt種子文件信息和eMule下載鏈接信息中的兩個(gè)或兩者中與原始下載鏈接不同的一個(gè),以及獲取待下載文件的多源URL集合。最后根據(jù)待下載文件的多源URL集合、Bt種子文件信息和eMule下載鏈接信息下載待下載文件。通過(guò)上述方法和系統(tǒng),在獲得待下載文件的原始下載鏈接后,可以得到待下載文件的多源URL集合、Bt種子文件信息和eMule下載鏈接信息,從而可以采用基于三種下載協(xié)議的下載方式在各自的p2p網(wǎng)絡(luò)中同時(shí)下載待下載文件。因此,上述方法和系統(tǒng)可充分利用網(wǎng)絡(luò)資源,實(shí)現(xiàn)基于不同下載協(xié)議的網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)共享。
【專利附圖】
【附圖說(shuō)明】
[0055]圖1為一實(shí)施例中數(shù)據(jù)下載方法的流程示意圖;
[0056]圖2為一實(shí)施例中根據(jù)獲取待下載文件的Bt種子文件信息和/或eMule下載鏈接信息、以及多源URL集合下載所述待下載文件的流程示意圖;
[0057]圖3為一實(shí)施例中數(shù)據(jù)下載系統(tǒng)的模塊示意圖;
[0058]圖4為一實(shí)施例中邏輯服務(wù)器群的模塊示意圖;
[0059]圖5為一實(shí)施例中下載客戶端的模塊不意圖;
[0060]圖6為另一實(shí)施例中數(shù)據(jù)下載系統(tǒng)的模塊示意圖。
【具體實(shí)施方式】
[0061]如圖1所示,在一個(gè)實(shí)施例中,數(shù)據(jù)下載方法包括以下步驟:
[0062]步驟S110,獲取待下載文件的下載請(qǐng)求,下載請(qǐng)求中包含原始下載鏈接,原始下載鏈接為源URL鏈接、BT種子文件、eMule下載鏈接中任意一種。
[0063]下載請(qǐng)求中包含了待下載文件的原始下載鏈接。在獲取下載請(qǐng)求后,可從下載請(qǐng)求中提取出待下載文件的原始下載鏈接。在一般情況下,原始下載鏈接為源URL鏈接或Bt種子或eMule下載鏈接。
[0064]步驟S120,根據(jù)原始下載鏈接獲得待下載文件的哈希值。
[0065]在獲得待下載文件的原始下載鏈接后,需要根據(jù)原始下載鏈接得到待下載文件的唯一標(biāo)識(shí)號(hào):待下載文件的哈希值。
[0066]步驟S130,根據(jù)待下載文件的哈希值,且當(dāng)原始下載鏈接為BT種子文件時(shí),獲取待下載文件的eMule下載鏈接信息以及多源URL集合;當(dāng)原始下載鏈接為eMule下載鏈接時(shí),獲取待下載文件的Bt種子文件信息以及多源URL集合;當(dāng)原始下載鏈接為源URL鏈接時(shí),獲取待下載文件的Bt種子文件信息和eMule下載鏈接信息以及多源URL集合。
[0067]哈希值是文件的唯一標(biāo)識(shí),因此不論在是何種下載協(xié)議下,同一個(gè)文件的哈希值也是相同的。因此,在得到待下載文件的哈希值后,可通過(guò)預(yù)設(shè)的映射關(guān)系獲得待下載文件在不同下載協(xié)議下的下載鏈接。
[0068]在一個(gè)實(shí)施例中,原始下載鏈接為源URL鏈接,上述步驟S120具體為:根據(jù)預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,查詢與待下載文件的源URL鏈接對(duì)應(yīng)的哈希值。
[0069]具體地,當(dāng)待下載文件的原始下載鏈接為源URL鏈接時(shí),查詢預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,在該映射關(guān)系中,每個(gè)URL鏈接對(duì)應(yīng)有一個(gè)哈希值。在映射關(guān)系中查找到與源URL鏈接相同的URL鏈接,則其對(duì)應(yīng)的哈希值便為該待下載文件的哈希值。
[0070]在本實(shí)施例中,上述步驟S130具體為:根據(jù)預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,查詢與待下載文件的哈希值對(duì)應(yīng)的多源URL集合;根據(jù)預(yù)設(shè)的Bt種子文件信息與哈希值的映射關(guān)系,查詢與待下載文件的哈希值對(duì)應(yīng)的Bt種子文件信息;根據(jù)預(yù)設(shè)的eMule下載鏈接信息與哈希值的映射關(guān)系,查詢與待下載文件的哈希值對(duì)應(yīng)的eMule下載鏈接信息。
[0071]具體地,同一文件有可能具有多個(gè)下載地址,在URL鏈接與哈希值的映射關(guān)系中,每一個(gè)哈希值可能對(duì)應(yīng)多個(gè)URL鏈接。查詢預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系時(shí),可得到待下載文件的多個(gè)URL下載鏈接,待下載文件的多個(gè)URL下載鏈接共同構(gòu)成多源URL集
入
口 ο
[0072]具體地,Bt種子文件信息包括Bt種子文件的特征碼和文件序號(hào)。Bt種子文件信息與哈希值的映射關(guān)系中記錄的是文件哈希值與Bt種子的特征碼和該Bt種子的文件序號(hào)所構(gòu)成的一組數(shù)據(jù)的映射關(guān)系。同一文件有可能對(duì)應(yīng)多個(gè)Bt種子,因此,在Bt種子文件信息與哈希值的映射關(guān)系中,每一個(gè)哈希值可能對(duì)應(yīng)多個(gè)同一 Bt種子的一組特征碼和文件序號(hào)。在獲取下載文件的Bt種子文件信息時(shí),一般獲取下載平均速度最快的Bt種子的特征碼和文件序號(hào)。
[0073]在一個(gè)實(shí)施例中,每個(gè)文件在下載完成后,都會(huì)將下載耗時(shí)、平均速度等下載相關(guān)的信息進(jìn)行上報(bào)反饋,根據(jù)反饋的信息,可計(jì)算存儲(chǔ)每個(gè)Bt種子文件的平均下載速度,從而方便選擇下載平均速度最快的那個(gè)Bt種子。
[0074]具體地,eMule下載鏈接信息為待下載文件的信息摘要值和文件大小。由于信息摘要值也是待下載文件的唯一標(biāo)識(shí),因此,待下載文件的哈希值與文件的信息摘要值是一一對(duì)應(yīng)的關(guān)系。預(yù)設(shè)的eMule下載鏈接信息與哈希值的映射關(guān)系中記錄了待下載文件的哈希值與待下載文件的信息摘要和文件大小的映射,因此,通過(guò)哈希值查詢可得到待下載文件唯一的信息摘要值和文件大小。
[0075]在另一實(shí)施例中,原始下載鏈接為BT種子文件,上述步驟S120具體為:根據(jù)預(yù)設(shè)的Bt種子文件信息與哈希值的映射關(guān)系,查詢與待下載文件的Bt種子文件信息對(duì)應(yīng)的哈希值。
[0076]具體地,當(dāng)待下載文件的原始下載鏈接為Bt種子時(shí),查詢預(yù)設(shè)的Bt種子文件信息與哈希值的映射關(guān)系。在本實(shí)施例中,Bt種子文件信息為待下載文件的Bt種子文件的特征碼和文件序號(hào)所組成的一組數(shù)據(jù),在該映射關(guān)系中,Bt種子文件的特征碼和文件序號(hào)與哈希值對(duì)應(yīng),其中,同一哈希值可與多個(gè)同一 Bt種子文件的特征碼和文件序號(hào)對(duì)應(yīng)。因此查詢時(shí),以待下載文件的Bt種子的特征碼和文件序號(hào)作為查詢主鍵,獲得待下載文件的哈希值。
[0077]在本實(shí)施例中,上述步驟S130具體為:根據(jù)預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,查詢與待下載文件的哈希值對(duì)應(yīng)的多源URL集合;根據(jù)預(yù)設(shè)的eMule下載鏈接信息與哈希值的映射關(guān)系,查詢與待下載文件的哈希值對(duì)應(yīng)的eMule下載鏈接信息。
[0078]在另一實(shí)施例中,原始下載鏈接為eMule下載鏈接,上述步驟S120具體為:根據(jù)預(yù)設(shè)的eMule下載鏈接信息與哈希值的映射關(guān)系,查詢與待下載文件的eMule下載鏈接信息對(duì)應(yīng)的哈希值。
[0079]具體的,當(dāng)待下載文件的原始鏈接為eMule下載鏈接時(shí),查詢預(yù)設(shè)的eMule下載鏈接信息與哈希值的映射關(guān)系。在本實(shí)施例中,eMule下載鏈接信息為待下載文件的信息摘要值和文件大小,在該映射關(guān)系中,待下載文件的信息摘要值和文件大小與哈希值對(duì)應(yīng),其中,哈希值與待下載文件的信息摘要值和文件大小一一對(duì)應(yīng)。因此在查詢時(shí),先從eMule下載鏈接中提取出文件的信息摘要值,然后以待下載文件的信息摘要值作為查詢主鍵,從而獲得待下載文件的哈希值。
[0080]在本實(shí)施例中,上述步驟S130具體為:根據(jù)預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,查詢與待下載文件的哈希值對(duì)應(yīng)的多源URL集合;根據(jù)預(yù)設(shè)的Bt種子文件信息與哈希值的映射關(guān)系,查詢與待下載文件的哈希值對(duì)應(yīng)的Bt種子文件信息。
[0081]步驟S140,根據(jù)獲取待下載文件的Bt種子文件信息和/或eMule下載鏈接信息、以及多源URL集合下載所述待下載文件。
[0082]在獲得待下載文件的多源URL集合、Bt種子文件信息和eMule下載鏈接信息后,即可采取Http下載、Bt下載和eMule下載三種方式下載待下載文件。
[0083]如圖2所示,在一個(gè)實(shí)施例中,Bt種子文件信息為Bt種子文件的特征碼和文件序號(hào),eMule下載鏈接信息為待下載文件的信息摘要值和文件大小,上述步驟S140具體為:
[0084]步驟S141,將待下載文件劃分為多個(gè)分片,并根據(jù)下載能力對(duì)分片的下載任務(wù)進(jìn)行調(diào)度。
[0085]具體地,由于基于不同協(xié)議的下載方式的資源有差異,因此在下載不同的文件時(shí),三種下載方式的下載能力也不一樣。例如,文件A在Bt下載協(xié)議下的資源較多,因此針對(duì)文件A,Bt下載的能力最強(qiáng);而文件B在eMule協(xié)議下的資源較多,因此針對(duì)文件B,eMule下載的能力最強(qiáng)。因此進(jìn)行下載之前,首先需要將待下載文件劃分為多個(gè)分片,并根據(jù)下載能力為基于不同協(xié)議的下載方式分配分片的下載任務(wù)。
[0086]步驟S143,根據(jù)待下載文件的多源URL集合下載分片。
[0087]具體地,進(jìn)行Http下載時(shí),首先根據(jù)待下載文件的多源URL集合,通過(guò)Tracker服務(wù)器查詢到含有多源URL集合中的URL鏈接的節(jié)點(diǎn),組成基于Http下載協(xié)議p2p網(wǎng)絡(luò),然后基于該P(yáng)2p網(wǎng)絡(luò)進(jìn)行p2p下載,完成所分配的下載任務(wù)。
[0088]步驟S145,當(dāng)原始下載鏈接為Bt種子文件時(shí),根據(jù)原始下載鏈接下載分片,否則,根據(jù)待下載文件的Bt種子文件的特征碼獲取Bt種子,并根據(jù)BT種子下載分片。
[0089]具體地,進(jìn)行Bt下載時(shí),若原始下載鏈接為Bt種子文件,則不需要通過(guò)根據(jù)Bt種子文件信息獲取Bt種子文件,而可直接通過(guò)原始下載鏈接進(jìn)行Bt下載。若原始現(xiàn)在鏈接不為Bt種子文件,則首先根據(jù)待下載文件的Bt種子文件的特征碼獲取Bt種子。Bt種子存儲(chǔ)于Bt種子庫(kù)中,每個(gè)Bt種子都具有唯一的Bt種子特征碼與其對(duì)應(yīng),當(dāng)獲得Bt種子文件的特征碼后,可通過(guò)特征碼在Bt種子庫(kù)中查找到Bt種子。然后利用Bt種子,通過(guò)Tracker服務(wù)器(跟蹤服務(wù)器)查詢到含有該Bt種子的節(jié)點(diǎn),組成基于Bt下載協(xié)議p2p網(wǎng)絡(luò),然后基于該p2p網(wǎng)絡(luò)進(jìn)行p2p下載,完成所分配的下載任務(wù)。
[0090]步驟S147,當(dāng)原始下載鏈接為eMule下載鏈接時(shí),根據(jù)原始下載鏈接下載分片,否貝1J,根據(jù)待下載文件的信息摘要值和文件大小構(gòu)造eMule下載鏈接,并根據(jù)eMule下載鏈接下載分片。
[0091]具體地,進(jìn)行eMule下載時(shí),若原始下載鏈接為eMule下載鏈接,則不需要根據(jù)eMule下載鏈接信息獲取eMule下載連接,而直接采用原始下載鏈接進(jìn)行eMule下載。若原始下載鏈接不為eMule下載連接,則首先根據(jù)待下載文件的信息摘要值和文件大小構(gòu)造eMule下載鏈接,然后利用eMule下載鏈接,通過(guò)Tracker服務(wù)器查詢到含有該eMule下載鏈接的節(jié)點(diǎn),組成基于eMule下載協(xié)議p2p網(wǎng)絡(luò),然后基于該p2p網(wǎng)絡(luò)進(jìn)行p2p下載,完成所分配的下載任務(wù)。
[0092]在一個(gè)實(shí)施例中,若在待下載文件的下載過(guò)程中,有一種或兩種下載方式提前完成所分配的下載任務(wù),為了節(jié)約網(wǎng)絡(luò)資源,減少下載耗時(shí),將會(huì)對(duì)剩余的下載任務(wù)進(jìn)行重新分配。
[0093]在另一個(gè)實(shí)施例中,數(shù)據(jù)下載方法還包括:
[0094]當(dāng)待下載文件為新文件時(shí),建立并存儲(chǔ)新文件的URL鏈接與哈希值、Bt種子信息與哈希值或eMule下載鏈接信息與哈希值之間的映射關(guān)系。
[0095]具體地,當(dāng)獲得原始下載鏈接后,若根據(jù)原始下載鏈接不能查詢到待下載文件的哈希值,則判斷該待下載文件為新文件。首先計(jì)算該新文件的哈希值,若新文件的原始下載鏈接為源URL鏈接,則建立并存儲(chǔ)URL鏈接與哈希值的雙向映射關(guān)系;若新文件的原始下載鏈接為eMule下載鏈接,則建立并存儲(chǔ)eMule下載鏈接信息與哈希值的雙向映射關(guān)系;若新文件的原始下載鏈接為Bt種子文件,則建立并存儲(chǔ)Bt種子文件信息與哈希值的雙向映射關(guān)系。
[0096]此外,當(dāng)新文件的原始下載鏈接為Bt種子文件時(shí),數(shù)據(jù)下載方法還包括:
[0097]獲取并存儲(chǔ)待下載文件的Bt種子文件。
[0098]具體地,新文件的Bt種子文件存儲(chǔ)在Bt種子庫(kù),當(dāng)在后續(xù)的下載過(guò)程中,獲取到該Bt種子文件的特征碼后,可在Bt種子庫(kù)中查找到相應(yīng)的Bt種子文件。從而可根據(jù)該Bt種子文件進(jìn)行下載。
[0099]Bt下載協(xié)議的另外一種協(xié)議變種稱為Magnet協(xié)議,即“磁力鏈接”,磁力鏈接的主要作用是識(shí)別BT種子文件。該鏈接是通過(guò)不同文件內(nèi)容的Hash結(jié)果生成一個(gè)純文本的“數(shù)字指紋”,來(lái)識(shí)別文件的Bt種子文件。不同的是這個(gè)“數(shù)字指紋”可以被任何人從任何文件上生成,使得“磁力鏈接”不需要任何“中心機(jī)構(gòu)”的支持(例如:BT Tracker服務(wù)器),且識(shí)別準(zhǔn)確度極高。當(dāng)采用Bt下載協(xié)議的變種Magnet協(xié)議進(jìn)行下載時(shí),可直接通過(guò)Magnet協(xié)議中的“數(shù)字指紋”識(shí)別收錄在Bt種子庫(kù)中的Bt種子文件,然后根據(jù)Bt種子文件進(jìn)行下載,因此可提聞Magnet協(xié)議的下載效率。
[0100]如圖3所示,本發(fā)明還提供一種數(shù)據(jù)下載系統(tǒng)。數(shù)據(jù)下載系統(tǒng)包括下載服務(wù)器100和下載客戶端200。其中,下載服務(wù)器100包括資源查詢服務(wù)器110、邏輯服務(wù)器群120。
[0101]資源查詢服務(wù)器110用于獲取待下載文件的下載請(qǐng)求,下載請(qǐng)求中包含原始下載鏈接,原始下載鏈接為源URL鏈接、BT種子文件、eMule下載鏈接中任意一種。
[0102]下載請(qǐng)求中包含了待下載文件的原始下載鏈接。在獲取下載請(qǐng)求后,資源查詢服務(wù)器110可從下載請(qǐng)求中提取出待下載文件的原始下載鏈接。在一般情況下,原始下載鏈接為源URL鏈接或Bt種子或eMule下載鏈接。
[0103]邏輯服務(wù)器群120用于根據(jù)原始下載鏈接獲得待下載文件的哈希值。
[0104]在資源查詢服務(wù)器110獲得待下載文件的原始下載鏈接后,邏輯服務(wù)器群120需要根據(jù)原始下載鏈接得到待下載文件的唯一標(biāo)識(shí)號(hào):待下載文件的哈希值。
[0105]如圖4所示,在一個(gè)實(shí)施例中,邏輯服務(wù)器群120包括U2h服務(wù)器121、Bt2h服務(wù)器123和eMule2h服務(wù)器125。其中:
[0106]U2h服務(wù)器121用于當(dāng)原始下載鏈接為源URL鏈接時(shí),根據(jù)預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,查詢與待下載文件的源URL鏈接對(duì)應(yīng)的哈希值。
[0107]U2h服務(wù)器121為URL鏈接于對(duì)應(yīng)文件hash (哈希值)映射服務(wù)器,具體地,當(dāng)待下載文件的原始下載鏈接為源URL鏈接時(shí),U2h服務(wù)器121查詢預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,在該映射關(guān)系中,每個(gè)URL鏈接對(duì)應(yīng)有一個(gè)哈希值。U2h服務(wù)器121在映射關(guān)系中查找到與源URL鏈接相同的URL鏈接,則其對(duì)應(yīng)的哈希值便為該待下載文件的哈希值。
[0108]Bt2h服務(wù)器123用于當(dāng)原始下載鏈接為BT種子文件時(shí),根據(jù)預(yù)設(shè)的Bt種子文件信息與哈希值的映射關(guān)系,查詢與待下載文件的Bt種子文件信息對(duì)應(yīng)的哈希值。
[0109]Bt2h服務(wù)器123為Bt種子文件于對(duì)應(yīng)文件hash映射服務(wù)器,具體地,當(dāng)待下載文件的原始下載鏈接為Bt種子時(shí),Bt2h服務(wù)器123預(yù)設(shè)的Bt種子文件信息與哈希值的映射關(guān)系。在本實(shí)施例中,Bt種子文件信息為待下載文件的Bt種子文件的特征碼和文件序號(hào),在該映射關(guān)系中,Bt種子文件的特征碼與哈希值對(duì)應(yīng)。因此,Bt2h服務(wù)器123查詢時(shí),以待下載文件的Bt種子的特征碼和文件序號(hào)作為查詢主鍵,獲得待下載文件的哈希值。
[0110]eMule2h服務(wù)器125用于當(dāng)原始下載鏈接為eMule下載鏈接時(shí),根據(jù)預(yù)設(shè)的eMule下載鏈接信息與哈希值的映射關(guān)系,查詢與待下載文件的eMule下載鏈接信息對(duì)應(yīng)的哈希值。
[0111]eMule2h服務(wù)器125為eMule下載鏈接與文件hash映射服務(wù)器,具體的,當(dāng)待下載文件的原始鏈接為eMule下載鏈接時(shí),eMule2h服務(wù)器125查詢預(yù)設(shè)的eMule下載鏈接信息與哈希值的映射關(guān)系。在本實(shí)施例中,eMule下載鏈接信息為待下載文件的信息摘要值和文件大小,在該映射關(guān)系中,待下載文件的信息摘要值與哈希值對(duì)應(yīng),因此,在eMule2h服務(wù)器125查詢時(shí),先從eMule下載鏈接中提取出文件的信息摘要值,然后以待下載文件的信息摘要值作為查詢主鍵,從而獲得待下載文件的哈希值。
[0112]邏輯服務(wù)器群120還用于根據(jù)待下載文件的哈希值,且當(dāng)原始下載鏈接為BT種子文件時(shí),獲取待下載文件的eMule下載鏈接信息以及多源URL集合;當(dāng)原始下載鏈接為eMule下載鏈接時(shí),獲取待下載文件的Bt種子文件信息以及多源URL集合;當(dāng)原始下載鏈接為源URL鏈接時(shí),獲取待下載文件的Bt種子文件信息和eMule下載鏈接信息以及多源URL集合。
[0113]哈希值是文件的唯一標(biāo)識(shí),因此不論在是何種下載協(xié)議下,同一個(gè)文件的哈希值也是相同的。因此,邏輯服務(wù)器群120在得到待下載文件的哈希值后,可通過(guò)預(yù)設(shè)的映射關(guān)系獲得待下載文件在不同下載協(xié)議下的下載鏈接。
[0114]在一個(gè)實(shí)施例中,邏輯服務(wù)器群120還包括h2U服務(wù)器122、h2Bt服務(wù)器124和h2eMule服務(wù)器126。其中:
[0115]h2U服務(wù)器122用于根據(jù)預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,查詢與待下載文件的哈希值對(duì)應(yīng)的多源URL集合。
[0116]h2U服務(wù)器122為文件hash與對(duì)應(yīng)URL鏈接映射服務(wù)器,同一文件有可能具有多個(gè)下載地址,在URL鏈接與哈希值的映射關(guān)系中,每一個(gè)哈希值可能對(duì)應(yīng)多個(gè)URL鏈接。h2U服務(wù)器122查詢預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系時(shí),可得到待下載文件的多個(gè)URL下載鏈接,待下載文件的多個(gè)URL下載鏈接共同構(gòu)成多源URL集合。
[0117]h2Bt服務(wù)器124用于根據(jù)預(yù)設(shè)的Bt種子文件信息與哈希值的映射關(guān)系,查詢與待下載文件的哈希值對(duì)應(yīng)的Bt種子文件信息。
[0118]h2Bt服務(wù)器124為文件hash與對(duì)應(yīng)Bt種子文件映射服務(wù)器。在一個(gè)實(shí)施例中,Bt種子文件信息包括Bt種子文件的特征碼和文件序號(hào),Bt種子文件信息與哈希值的映射關(guān)系中記錄的是文件哈希值與Bt種子的特征碼和文件序號(hào)所構(gòu)成的一組數(shù)據(jù)的映射關(guān)系。同一文件有可能對(duì)應(yīng)多個(gè)Bt種子,因此,在Bt種子文件信息與哈希值的映射關(guān)系中,每一個(gè)哈希值可能對(duì)應(yīng)多個(gè)同一 Bt種子的的一組特征碼和文件序號(hào)。h2Bt服務(wù)器124在獲取下載文件的Bt種子文件信息時(shí),一般獲取下載平均速度最快的那個(gè)Bt種子的特征碼和文件序號(hào)。在一個(gè)實(shí)施例中,數(shù)據(jù)下載系統(tǒng)還包括統(tǒng)計(jì)服務(wù)器,在每次下載完成時(shí),下載客戶端會(huì)將下載耗時(shí)、平均下載速度等下載相關(guān)的信息上報(bào)給統(tǒng)計(jì)服務(wù)器,統(tǒng)計(jì)服務(wù)器對(duì)下載相關(guān)的信息進(jìn)行計(jì)算分析,可知道資源的優(yōu)劣以及每個(gè)Bt種子文件的平均速度,從而便于選擇下載平均速度最快的Bt種子文件。
[0119]h2eMule服務(wù)器126用于根據(jù)預(yù)設(shè)的eMule下載鏈接信息與哈希值的映射關(guān)系,查詢與待下載文件的哈希值對(duì)應(yīng)的eMule下載鏈接信息。
[0120]h2eMule服務(wù)器126為文件hash與對(duì)應(yīng)eMule下載鏈接映射服務(wù)器。在一個(gè)實(shí)施例中,eMule下載鏈接信息為待下載文件的信息摘要值和文件大小。由于信息摘要值也是待下載文件的唯一標(biāo)識(shí),因此,待下載文件的哈希值與文件的信息摘要值是一一對(duì)應(yīng)的關(guān)系。預(yù)設(shè)的eMule下載鏈接信息與哈希值的映射關(guān)系中記錄了待下載文件的哈希值與待下載文件的信息摘要值和文件大小的映射,因此,h2eMule服務(wù)器126通過(guò)哈希值查詢可得到待下載文件唯一的信息摘要值和文件大小。
[0121]在另一個(gè)實(shí)施例中,當(dāng)原始下載鏈接為Bt種子文件時(shí),邏輯服務(wù)器群120可僅包括h2U服務(wù)器122及h2eMule服務(wù)器126。
[0122]在另一個(gè)實(shí)施例中,當(dāng)原始下載鏈接為eMule下載鏈接時(shí),邏輯服務(wù)器群120可僅包括h2U服務(wù)器122及h2Bt服務(wù)器124。[0123]下載客戶端200用于根據(jù)獲取待下載文件的Bt種子文件信息和/或eMule下載鏈接信息、以及多源URL集合下載所述待下載文件。
[0124]在邏輯服務(wù)器群120獲得待下載文件的多源URL集合、Bt種子文件信息和eMule下載鏈接信息后,下載客戶端200即可采取Http下載、Bt下載和eMule下載三種方式下載待下載文件。
[0125]如圖5所示,在一個(gè)實(shí)施例中,Bt種子文件信息為Bt種子文件的特征碼和文件序號(hào),下載客戶端200包括調(diào)度模塊210和下載模塊220。其中,下載模塊220包括Http下載單元221、Bt下載單元223和eMule下載單元225。
[0126]調(diào)度模塊210用于將待下載文件劃分為多個(gè)分片,并根據(jù)下載能力對(duì)分片的下載任務(wù)進(jìn)行調(diào)度。
[0127]具體地,由于基于不同協(xié)議的下載方式的資源有差異,因此在下載不同的文件時(shí),三種下載方式的下載能力也不一樣。例如,文件A在Bt下載協(xié)議下的資源較多,因此,針對(duì)文件A來(lái)說(shuō),Bt下載的能力最強(qiáng);而文件B在eMule協(xié)議下的資源較多,因此針對(duì)文件B,eMule下載的能力最強(qiáng)。因此,在進(jìn)行下載之前,調(diào)度模塊210首先需要將待下載文件劃分為多個(gè)分片,并根據(jù)下載能力為下載模塊220不同的下載單元分配分片的下載任務(wù)。
[0128]Http下載單元221用于根據(jù)待下載文件的多源URL集合下載分片。
[0129]具體地,Http下載單元221進(jìn)行Http下載時(shí),首先根據(jù)待下載文件的多源URL集合,通過(guò)Tracker服務(wù)器查詢到含有多源URL集合中的URL鏈接的節(jié)點(diǎn),組成基于Http下載協(xié)議p2p網(wǎng)絡(luò),然后基于該p2p網(wǎng)絡(luò)進(jìn)行p2p下載,完成所分配的下載任務(wù)。
[0130]Bt下載單元223用于當(dāng)原始下載鏈接為Bt種子文件時(shí),根據(jù)原始下載鏈接下載分片,否則,根據(jù)待下載文件的Bt種子文件的特征碼獲取Bt種子,并根據(jù)BT種子下載分片。
[0131]具體地,Bt下載單元223進(jìn)行Bt下載時(shí),若原始下載鏈接為Bt種子文件,Bt下載單元223則不需要通過(guò)根據(jù)Bt種子文件信息獲取Bt種子文件,而可直接通過(guò)原始下載鏈接進(jìn)行Bt下載。若原始現(xiàn)在鏈接不為Bt種子文件,則Bt下載單元223首先根據(jù)待下載文件的Bt種子文件的特征碼獲取Bt種子。Bt種子存儲(chǔ)于Bt種子庫(kù)中,每個(gè)Bt種子都具有唯一的Bt種子特征碼與其對(duì)應(yīng),當(dāng)Bt下載單元223獲得Bt種子文件的特征碼后,可通過(guò)特征碼在Bt種子庫(kù)中查找到Bt種子。然后利用Bt種子,通過(guò)Tracker服務(wù)器查詢到含有該Bt種子的節(jié)點(diǎn),組成基于Bt下載協(xié)議p2p網(wǎng)絡(luò),然后基于該p2p網(wǎng)絡(luò)進(jìn)行p2p下載,完成所分配的下載任務(wù)。
[0132]eMule下載單元225用于當(dāng)原始下載鏈接為eMule下載鏈接時(shí),根據(jù)原始下載鏈接下載分片,否則,根據(jù)待下載文件的信息摘要值和文件大小構(gòu)造eMule下載鏈接,并根據(jù)eMule下載鏈接下載分片。
[0133]具體地,eMule下載單元225進(jìn)行eMule下載時(shí),若原始下載鏈接為eMule下載鏈接,eMule下載單元225則不需要根據(jù)eMule下載鏈接信息獲取eMule下載連接,而直接采用原始下載鏈接進(jìn)行eMule下載。若原始下載鏈接不為eMule下載連接,則eMule下載單元225首先根據(jù)待下載文件的信息摘要值和文件大小構(gòu)造eMule下載鏈接,然后利用eMule下載鏈接,通過(guò)Tracker服務(wù)器查詢到含有該eMule下載鏈接的節(jié)點(diǎn),組成基于eMule下載協(xié)議p2p網(wǎng)絡(luò),然后基于該p2p網(wǎng)絡(luò)進(jìn)行p2p下載,完成所分配的下載任務(wù)。
[0134]在一個(gè)實(shí)施例中,若在待下載文件的下載過(guò)程中,有一個(gè)或兩個(gè)下載單元提前完成所分配的下載任務(wù),為了節(jié)約網(wǎng)絡(luò)資源,減少下載耗時(shí),調(diào)度模塊210將會(huì)對(duì)剩余的下載任務(wù)進(jìn)行重新分配。調(diào)度模塊210使三個(gè)下載單元一直處于工作狀態(tài),防止出現(xiàn)空閑的下載單元,從而提高下載效率。
[0135]如圖6所示,在另一個(gè)實(shí)施例中,下載服務(wù)器100還包括資源入庫(kù)服務(wù)器130和Bt種子服務(wù)器140。其中:
[0136]資源入庫(kù)服務(wù)器130用于當(dāng)待下載文件為新文件時(shí),建立并存儲(chǔ)新文件的URL鏈接與哈希值、Bt種子信息與哈希值或eMule下載鏈接信息與哈希值之間的映射關(guān)系。
[0137]具體地,當(dāng)資源查詢服務(wù)器110獲得原始下載鏈接后,若邏輯服務(wù)器群120根據(jù)原始下載鏈接不能查詢到待下載文件的哈希值,則判斷該待下載文件為新文件。下載客戶端200首先計(jì)算該新文件的哈希值,若新文件的原始下載鏈接為源URL鏈接,資源入庫(kù)服務(wù)器130則建立并存儲(chǔ)URL鏈接與哈希值的雙向映射關(guān)系;若新文件的原始下載鏈接為eMule下載鏈接,資源入庫(kù)服務(wù)器130則建立并存儲(chǔ)eMule下載鏈接信息與哈希值的雙向映射關(guān)系;若新文件的原始下載鏈接為Bt種子文件,資源入庫(kù)服務(wù)器130則建立并存儲(chǔ)Bt種子文件信息與哈希值的雙向映射關(guān)系。
[0138]在一個(gè)實(shí)施例中,上述新建的映射關(guān)系存儲(chǔ)與索引數(shù)據(jù)庫(kù)中,所述索引數(shù)據(jù)庫(kù)的數(shù)據(jù)可被邏輯服務(wù)器群120調(diào)用,邏輯服務(wù)器群120在進(jìn)行查詢映射關(guān)系時(shí),可從索引數(shù)據(jù)庫(kù)中查找映射關(guān)系。同時(shí),上述新建的映射關(guān)系還將同步于邏輯服務(wù)器群的內(nèi)存中。邏輯服務(wù)器群120在調(diào)用映射關(guān)系時(shí),首先在其內(nèi)存中查詢,若在內(nèi)存中查找不到便到索引數(shù)據(jù)庫(kù)中查找。這樣的查找方式可加快高查詢的速度,從而提高整體性能。
[0139]Bt種子服務(wù)器140獲取并存儲(chǔ)待下載文件的Bt種子文件。
[0140]具體地,當(dāng)待下載文件為新文件且新文件的原始下載鏈接為Bt種子文件時(shí),Bt種子服務(wù)器140獲取待下載文件完整的Bt種子文件,并將待下載文件的Bt種子文件存儲(chǔ)在Bt種子庫(kù)。當(dāng)在后續(xù)的下載過(guò)程中,獲取到該Bt種子文件的特征碼后,可在Bt種子庫(kù)中查找到相應(yīng)的Bt種子文件。從而可根據(jù)該Bt種子文件進(jìn)行下載。
[0141]Bt下載協(xié)議的另外一種協(xié)議變種稱為Magnet協(xié)議,即“磁力鏈接”,磁力鏈接的主要作用是識(shí)別BT種子文件。該鏈接是通過(guò)不同文件內(nèi)容的Hash結(jié)果生成一個(gè)純文本的“數(shù)字指紋”,來(lái)識(shí)別文件的Bt種子文件。不同的是這個(gè)“數(shù)字指紋”可以被任何人從任何文件上生成,使得“磁力鏈接”不需要任何“中心機(jī)構(gòu)”的支持(例如:BT Tracker服務(wù)器),且識(shí)別準(zhǔn)確度極高。當(dāng)采用Bt下載協(xié)議的變種Magnet協(xié)議進(jìn)行下載時(shí),下載客戶端200可直接通過(guò)Magnet協(xié)議中的“數(shù)字指紋”識(shí)別收錄在Bt種子庫(kù)中的Bt種子文件,然后根據(jù)Bt種子文件進(jìn)行下載,因此可提高M(jìn)agnet協(xié)議的下載效率。
[0142]上述數(shù)據(jù)下載方法和系統(tǒng),首先獲取包含待下載文件原始下載鏈接的下載請(qǐng)求,并根據(jù)原始下載鏈接獲得待下載文件的哈希值。然后根據(jù)待下載文件的哈希值,獲得待下載文件的Bt種子文件信息和eMule下載鏈接信息中的兩個(gè)或兩者中與原始下載鏈接不同的一個(gè),以及獲取待下載文件的多源URL集合。最后根據(jù)待下載文件的多源URL集合、Bt種子文件信息和eMule下載鏈接信息下載待下載文件。通過(guò)上述方法和系統(tǒng),在獲得待下載文件的原始下載鏈接后,可以得到待下載文件的多源URL集合、Bt種子文件信息和eMule下載鏈接信息,從而可以采用基于三種下載協(xié)議的下載方式在各自的p2p網(wǎng)絡(luò)中同時(shí)下載待下載文件。因此,上述方法和系統(tǒng)可充分利用網(wǎng)絡(luò)資源,實(shí)現(xiàn)基于不同下載協(xié)議的網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)共享。
[0143]以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【權(quán)利要求】
1.一種數(shù)據(jù)下載方法,包括以下步驟: 獲取待下載文件的下載請(qǐng)求,所述下載請(qǐng)求中包含原始下載鏈接,所述原始下載鏈接為源URL鏈接、BT種子文件、eMule下載鏈接中任意一種; 根據(jù)所述原始下載鏈接獲得所述待下載文件的哈希值; 根據(jù)所述待下載文件的哈希值,且當(dāng)所述原始下載鏈接為BT種子文件時(shí),獲取所述待下載文件的eMule下載鏈接信息以及多源URL集合;當(dāng)所述原始下載鏈接為eMule下載鏈接時(shí),獲取所述待下載文件的Bt種子文件信息以及多源URL集合;當(dāng)所述原始下載鏈接為源URL鏈接時(shí),獲取所述待下載文件的Bt種子文件信息和eMule下載鏈接信息以及多源URL集合; 根據(jù)獲取的待下載文件的Bt種子文件信息和/或eMule下載鏈接信息、以及多源URL集合下載所述待下載文件。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)下載方法,其特征在于,所述根據(jù)所述原始下載鏈接獲得所述待下載文件的哈希值的步驟為: 當(dāng)所述原始下載鏈接為源URL鏈接時(shí),根據(jù)預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,查詢與所述待下載文件的源URL鏈接對(duì)應(yīng)的哈希值; 當(dāng)所述原始下載鏈接為BT種子文件時(shí),根據(jù)預(yù)設(shè)的Bt種子文件信息與哈希值的映射關(guān)系,查詢與所述待下載文件的Bt種子文件信息對(duì)應(yīng)的哈希值; 當(dāng)所述原始下載鏈接為eMule下載鏈接時(shí),根據(jù)預(yù)設(shè)的eMule下載鏈接信息與哈希值的映射關(guān)系,查詢與所述待下載文件的eMule下載鏈接信息對(duì)應(yīng)的哈希值。
3.根據(jù)權(quán)利要求1或2所述的數(shù)據(jù)下載方法,其特征在于,當(dāng)所述原始下載鏈接為源URL鏈接時(shí),根據(jù)所述 待下載文件的哈希值,獲取所述待下載文件的Bt種子文件信息和eMule下載鏈接信息以及多源URL集合的步驟為: 根據(jù)預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的多源URL集合; 根據(jù)預(yù)設(shè)的Bt種子文件信息與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的Bt種子文件信息; 根據(jù)預(yù)設(shè)的eMule下載鏈接信息與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的eMule下載鏈接信息。
4.根據(jù)權(quán)利要求1或2所述的數(shù)據(jù)下載方法,其特征在于,當(dāng)所述原始下載連接為BT種子文件時(shí),根據(jù)所述待下載文件的哈希值,獲取所述待下載文件的eMule下載鏈接信息以及多源URL集合的步驟為: 根據(jù)預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的多源URL集合; 根據(jù)預(yù)設(shè)的eMule下載鏈接信息與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的eMule下載鏈接信息。
5.根據(jù)權(quán)利要求1或2所述的數(shù)據(jù)下載方法,其特征在于,當(dāng)所述原始下載連接為eMule下載鏈接時(shí),根據(jù)所述待下載文件的哈希值,獲取所述待下載文件的Bt種子文件信息以及多源URL集合的步驟為: 根據(jù)預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的多源URL集合; 根據(jù)預(yù)設(shè)的Bt種子文件信息與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的Bt種子文件信息。
6.根據(jù)權(quán)利要求1所述的數(shù)據(jù)下載方法,其特征在于,所述Bt種子文件信息為Bt種子文件的特征碼和文件序號(hào),所述eMule下載鏈接信息為待下載文件的信息摘要值和文件大小,所述根據(jù)獲取待下載文件的Bt種子文件信息和/或eMule下載鏈接信息、以及多源URL集合下載所述待下載文件的步驟為: 將所述待下載文件劃分為多個(gè)分片,并根據(jù)下載能力對(duì)所述分片的下載任務(wù)進(jìn)行調(diào)度; 根據(jù)所述待下載文件的多源URL集合下載所述分片; 當(dāng)所述原始下載鏈接為Bt種子文件時(shí),根據(jù)所述原始下載鏈接下載所述分片,否則,根據(jù)所述待下載文件的Bt種子文件的特征碼獲取Bt種子,并根據(jù)所述BT種子下載所述分片; 當(dāng)所述原始下載 鏈接為eMule下載鏈接時(shí),根據(jù)所述原始下載鏈接下載所述分片,否貝1J,根據(jù)所述待下載文件的信息摘要值和文件大小構(gòu)造eMule下載鏈接,并根據(jù)所述eMule下載鏈接下載所述分片。
7.根據(jù)權(quán)利要求1所述的數(shù)據(jù)下載方法,其特征在于,所述方法還包括: 當(dāng)所述待下載文件為新文件時(shí),建立并存儲(chǔ)所述新文件的URL鏈接與哈希值、Bt種子信息與哈希值或eMule下載鏈接信息與哈希值之間的映射關(guān)系。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)下載方法,其特征在于,所述方法還包括:當(dāng)所述待下載文件為新文件時(shí),獲取并存儲(chǔ)所述待下載文件的Bt種子文件。
9.一種數(shù)據(jù)下載系統(tǒng),包括下載服務(wù)器和下載客戶端,其特征在于,所述下載服務(wù)器包括: 資源查詢服務(wù)器,用于獲取待下載文件的下載請(qǐng)求,所述下載請(qǐng)求中包含原始下載鏈接,所述原始下載鏈接為源URL鏈接、BT種子文件、eMule下載鏈接中任意一種; 邏輯服務(wù)器群,用于根據(jù)所述原始下載鏈接獲得所述待下載文件的哈希值; 所述邏輯服務(wù)器群還用于根據(jù)所述待下載文件的哈希值,且當(dāng)所述原始下載鏈接為BT種子文件時(shí),獲取所述待下載文件的eMule下載鏈接信息以及多源URL集合;當(dāng)所述原始下載鏈接為eMule下載鏈接時(shí),獲取所述待下載文件的Bt種子文件信息以及多源URL集合;當(dāng)所述原始下載鏈接為源URL鏈接時(shí),獲取所述待下載文件的Bt種子文件信息和eMule下載鏈接信息以及多源URL集合; 所述下載客戶端用于根據(jù)獲取待下載文件的Bt種子文件信息和/或eMule下載鏈接信息、以及多源URL集合下載所述待下載文件。
10.如權(quán)利要求9所述的數(shù)據(jù)下載系統(tǒng),其特征在于,所述原始下載鏈接為源URL鏈接或BT種子文件或eMule下載鏈接,所述邏輯服務(wù)器群包括: U2h服務(wù)器,用于當(dāng)所述原始下載鏈接為源URL鏈接時(shí),根據(jù)預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,查詢與所述待下載文件的源URL鏈接對(duì)應(yīng)的哈希值; Bt2h服務(wù)器,用于當(dāng)所述原始下載鏈接為BT種子文件時(shí),根據(jù)預(yù)設(shè)的Bt種子文件信息與哈希值的映射關(guān)系,查詢與所述待下載文件的Bt種子文件信息對(duì)應(yīng)的哈希值;eMule2h服務(wù)器,用于當(dāng)所述原始下載鏈接為eMule下載鏈接時(shí),根據(jù)預(yù)設(shè)的eMule下載鏈接信息與哈希值的映射關(guān)系,查詢與所述待下載文件的eMule下載鏈接信息對(duì)應(yīng)的哈希值。
11.如權(quán)利要求9或10所述的數(shù)據(jù)下載系統(tǒng),其特征在于,所述邏輯服務(wù)器群還包括h2Bt服務(wù)器和h2eMule服務(wù)器中的一種或兩種及h2U服務(wù)器,其中: h2U服務(wù)器,用于根據(jù)預(yù)設(shè)的URL鏈接與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的多源URL集合; h2Bt服務(wù)器,用于根據(jù)預(yù)設(shè)的Bt種子文件與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的Bt種子文件信息; h2eMule服務(wù)器,用于根據(jù)預(yù)設(shè)的eMule下載鏈接信息與哈希值的映射關(guān)系,查詢與所述待下載文件的哈希值對(duì)應(yīng)的eMule下載鏈接信息。
12.如權(quán)利要求9所述的數(shù)據(jù)下載系統(tǒng),其特征在于,所述Bt種子文件信息為Bt種子文件的特征碼和文件序號(hào),所述eMule下載鏈接信息為待下載文件的信息摘要值和文件大小,所述下載客戶端包括: 調(diào)度模塊,用于將所述待下載文件劃分為多個(gè)分片,并根據(jù)下載能力對(duì)所述分片的下載任務(wù)進(jìn)行調(diào)度; 下載模塊,包括: Http下載單元,用于根據(jù)所述待下載文件的多源URL集合下載所述分片; Bt下載單元,當(dāng)所述原始下載鏈接為Bt種子文件時(shí),根據(jù)所述原始下載鏈接下載所述分片,否則,用于根據(jù)所述待下載文件的Bt種子文件的特征碼獲取Bt種子,并根據(jù)所述BT種子下載所述分片; eMule下載單元,用于當(dāng)所述原始下載鏈接為eMule下載鏈接時(shí),根據(jù)所述原始下載鏈接下載所述分片,否則,根據(jù)所述待下載文件的信息摘要值和文件大小構(gòu)造eMule下載鏈接,并根據(jù)所述eMule下載鏈接下載所述分片。
13.如權(quán)利要求9所述的數(shù)據(jù)下載系統(tǒng),其特征在于,所述下載服務(wù)器還包括資源入庫(kù)模塊,所述資源入庫(kù)模塊用于當(dāng)所述待下載文件為新文件時(shí),建立并存儲(chǔ)所述新文件的URL鏈接與哈希值、Bt種子信息與哈希值或eMule下載鏈接信息與哈希值之間的映射關(guān)系。
14.如權(quán)利要求13所述的數(shù)據(jù)下載系統(tǒng),其特征在于,所述下載服務(wù)器還包括Bt種子服務(wù)器,所述Bt種子服務(wù)器用于當(dāng)所述待下載文件為新文件時(shí),獲取并存儲(chǔ)所述待下載文件的Bt種子文件。
【文檔編號(hào)】H04L29/08GK103457976SQ201210179122
【公開(kāi)日】2013年12月18日 申請(qǐng)日期:2012年6月1日 優(yōu)先權(quán)日:2012年6月1日
【發(fā)明者】劉剛 申請(qǐng)人:騰訊科技(深圳)有限公司