本發(fā)明涉及軟件測(cè)試領(lǐng)域,尤其涉及一種數(shù)據(jù)存儲(chǔ)方法、數(shù)據(jù)下載方法及其裝置。
背景技術(shù):隨著寬帶網(wǎng)絡(luò)的普及以及網(wǎng)絡(luò)傳輸速度的提高,利用互聯(lián)網(wǎng)資源實(shí)現(xiàn)在線多媒體下載、播放已成為可能。包括音頻、視頻等多媒體信息的傳輸、播放也均已經(jīng)實(shí)現(xiàn)。然而,為了進(jìn)一步提高現(xiàn)有網(wǎng)絡(luò)的利用資源,各種提高下載速度的方式被提出,包括P2P(PeertoPeer,對(duì)等)方式,實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的對(duì)等網(wǎng)絡(luò),即用戶端與用戶端直接形成上傳和下載,下載速度和另一端上傳速度密切相關(guān),由于中國(guó)用戶的上傳速度并不快,而且一些人還會(huì)限制上傳速度,這就導(dǎo)致了P2P方式的上傳帶寬資源缺乏,進(jìn)而導(dǎo)致P2P的速度較慢;P2S(PeertoServer,點(diǎn)對(duì)服務(wù)器)方式,基于用戶對(duì)服務(wù)器,用戶直接到某個(gè)大型的下載網(wǎng)站去下載文件,文件存儲(chǔ)在網(wǎng)站服務(wù)器上,因此速度可以得到保證,但仍存在資源分散、不易搜索等問(wèn)題;P2SP(PeertoServer&Peer,點(diǎn)對(duì)服務(wù)器和點(diǎn))方式,基于用戶對(duì)服務(wù)器和用戶機(jī)制,不同于P2P,也不同于P2S,P2SP下載方式實(shí)際上對(duì)P2P技術(shù)的進(jìn)一步延伸,它不但支持P2P技術(shù),同時(shí)還通過(guò)檢索數(shù)據(jù)庫(kù)把服務(wù)器資源和P2P資源整合到了一起,用戶下載某個(gè)文件時(shí),會(huì)自動(dòng)搜索其他資源,選擇合適的資源進(jìn)行加速,這使得在下載的穩(wěn)定性和下載的速度上,比傳統(tǒng)的P2P有了非常大的提高。在現(xiàn)有的P2SP技術(shù)中,當(dāng)下載一個(gè)文件時(shí),數(shù)據(jù)來(lái)源分為原始鏈接、P2P網(wǎng)絡(luò)以及第三方鏡像的輔助源,然后通過(guò)完整文件的唯一標(biāo)識(shí)(比如MD5(MessageDigestAlgorithm5,信息摘要算法5)或者SHA(SecureHashAlgorithm,安全散列算法))把文件統(tǒng)一串聯(lián)起來(lái)?,F(xiàn)有P2SP下載的具體發(fā)布流程圖可以如圖1所示,具體包括以下步驟:步驟101、下載客戶端需要下載文件的時(shí)候從互聯(lián)網(wǎng)或者資源網(wǎng)站獲取URL(UniformResourceLocator,統(tǒng)一資源定位符)鏈接。步驟102、下載客戶端以URL鏈接為入口,從資源索引服務(wù)器,查詢多資源及文件Hash,然后從查詢到的URL下載數(shù)據(jù)。步驟103、下載客戶端下載完成后,注冊(cè)文件信息到Tracker(跟蹤點(diǎn))服務(wù)器。步驟104、其他下載客戶端可以通過(guò)Tracker服務(wù)查詢到已經(jīng)下載完成的Peer和正在下載的Peer。步驟105、其他下載客戶端開始多源P2P下載,在Peer之間相互交換數(shù)據(jù)。步驟106、下載完成以后將相關(guān)的統(tǒng)計(jì)信息上報(bào)給統(tǒng)計(jì)服務(wù)器。其中,服務(wù)器獲取資源來(lái)源的最主要有2個(gè)途徑:客戶端主動(dòng)上報(bào),以及后臺(tái)服務(wù)器通過(guò)爬蟲系統(tǒng)主動(dòng)從互聯(lián)網(wǎng)上爬取和收集相應(yīng)的下載鏈接記錄,然后寫入資源索引數(shù)據(jù)庫(kù)供客戶端查詢。URL索引收錄的數(shù)量和質(zhì)量對(duì)客戶端多源下載總體的服務(wù)質(zhì)量有很大的影響。現(xiàn)有HTTP(HyperTextTransportProtocol,超文本傳輸協(xié)議)下載協(xié)議中,由于URL鏈接本身的特性,很容易出現(xiàn)通過(guò)技術(shù)手段將不在自己服務(wù)器上的內(nèi)容,繞過(guò)別人放廣告有利益的最終頁(yè),直接在自己的有廣告有利益的頁(yè)面上提供給用戶,比如供用戶下載。由于瀏覽一個(gè)完整的網(wǎng)頁(yè)并不是一次全部傳送到客戶端的,如果客戶請(qǐng)求的是一個(gè)帶有許多圖片和其它信息的頁(yè)面,那么最先的一個(gè)HTTP請(qǐng)求被傳送回來(lái)的是這個(gè)頁(yè)面的HTML(HypertextMarkupLanguage,超文本標(biāo)記語(yǔ)言)文本,客戶端瀏覽器對(duì)這段文本解釋執(zhí)行后,發(fā)現(xiàn)其中還有其它文件,客戶端瀏覽器會(huì)再發(fā)送一條或者更多HTTP請(qǐng)求,當(dāng)這些請(qǐng)求被處理后其它文件才被傳送到客戶端,然后瀏覽器將這些文件放到頁(yè)面的正確位置。一個(gè)完整的頁(yè)面要經(jīng)過(guò)發(fā)送多條HTTP請(qǐng)求才能夠被完整地顯示?;谶@樣的機(jī)制,盜鏈就成為可能,服務(wù)提供商完全可以在自己的頁(yè)面中嵌入別人的鏈接,顯示在自己的頁(yè)面上,以達(dá)到盜鏈的目的。目前,通常使用的防盜鏈方法是提高盜鏈的門檻,讓網(wǎng)站提供的下載地址隨著請(qǐng)求來(lái)源的變化而變化,在所請(qǐng)求的鏈接當(dāng)中加入隨機(jī)的數(shù)字混淆鏈接或加入時(shí)間戳信息。通過(guò)該方法,即使盜鏈的網(wǎng)站把原來(lái)的鏈接包含過(guò)去,很快鏈接也就失效了,無(wú)法提供正常的下載。由于這種鏈接的生成是由源鏈的原始網(wǎng)站控制的,因此,可以通過(guò)修改鏈接生成的規(guī)則來(lái)提高盜鏈的門檻。例如,某網(wǎng)站在一段時(shí)間內(nèi)提供的游戲文件17173_tlbb_0330580.exe下載鏈接的地址形式如下:http://cdn1.download.17173.com/wangsu_key_XXXX00XXXXXXXXXX0059XXXXXXXX4800XXXfXXXXXX00XXXX/tl/17173_tlbb_0330580.exe其中,XXXXXX為隨機(jī)變換的數(shù)字,對(duì)于同一個(gè)文件,不同時(shí)刻去請(qǐng)求,XXXXXX都是不一樣的。從P2SP下載系統(tǒng)的后臺(tái)下載日志當(dāng)中可以看到大量的在下載鏈接URL地址路徑當(dāng)中存在有規(guī)律隨機(jī)下載地址上報(bào),現(xiàn)有的P2SP多源下載技術(shù)方案當(dāng)中,客戶端下載完成后會(huì)收錄用戶添加到任務(wù)對(duì)應(yīng)的原始下載鏈接,作為資源收錄到數(shù)據(jù)庫(kù)中,下次有用戶查詢的時(shí)候,將收錄的鏈接作為下載資源返回給客戶端。由于多源下載系統(tǒng)會(huì)收錄URL下載鏈接,主要是通過(guò)客戶端上報(bào)和服務(wù)器爬蟲爬取。通常直接寫入U(xiǎn)RL索引數(shù)據(jù)庫(kù)和URL資源數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)當(dāng)中就會(huì)對(duì)同一個(gè)文件收錄非常多的鏈接,比如1個(gè)文件1天被客戶端下載10W次,就會(huì)產(chǎn)生10W個(gè)不同的鏈接;對(duì)于熱門文件,同一個(gè)Hash對(duì)應(yīng)的URL集合內(nèi)容很大,甚至多達(dá)幾十萬(wàn)個(gè),同時(shí)也會(huì)出現(xiàn)數(shù)十萬(wàn)個(gè)URL對(duì)應(yīng)同一個(gè)Hash文件的情況,這樣在查詢URL資源集合的時(shí)候或者URL對(duì)應(yīng)Hash的時(shí)候,無(wú)用的記錄導(dǎo)致占永大量的磁盤空間,導(dǎo)致系統(tǒng)磁盤IO繁忙,降低資源查詢的效率。發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下缺陷:1、由于存在大量同樣規(guī)格的URL對(duì)應(yīng)同一個(gè)Hash,對(duì)應(yīng)同一個(gè)Hash需要在數(shù)據(jù)庫(kù)中和內(nèi)存中保存多條映射記錄,占用了大量的存儲(chǔ)索引資源,影響系統(tǒng)的查詢效率和資源收錄的效率;2、由于原始網(wǎng)站對(duì)URL鏈接加入隨機(jī)參數(shù)調(diào)整鏈接形式,導(dǎo)致P2SP軟件在收錄下載鏈接的時(shí)候,大量同樣的鏈接(對(duì)應(yīng)同一個(gè)服務(wù)器的同一個(gè)文件)被收錄,即使返回到客戶端只是一個(gè)有效的下載鏈接,但是卻占用了大量的服務(wù)器存儲(chǔ)資源,影響資源查詢的效率。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明提供一種數(shù)據(jù)存儲(chǔ)方法、數(shù)據(jù)下載方法及其裝置,以減少了URL索引數(shù)據(jù)庫(kù)的存儲(chǔ)資源消耗。為了實(shí)現(xiàn)以上目的,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)存儲(chǔ)方法,包括:當(dāng)接收到入庫(kù)請(qǐng)求時(shí),獲取其中攜帶的統(tǒng)一資源定位符URL;判斷自身是否存儲(chǔ)有與所述URL對(duì)應(yīng)的URL模板;其中,所述URL模板與同一域名下的同一文件的不同URL對(duì)應(yīng);當(dāng)判斷結(jié)果為是時(shí),所述URL不存儲(chǔ)到所述URL資源索引數(shù)據(jù)庫(kù),并結(jié)束此次入庫(kù)操作;當(dāng)判斷結(jié)果為否時(shí),確定與所述URL對(duì)應(yīng)的URL模板,以及所述URL對(duì)應(yīng)的文件的hash值和所述URL模板的hash值,并將所述文件的hash值與所述URL模板的hash值的對(duì)應(yīng)關(guān)系信息存儲(chǔ)到所述URL索引數(shù)據(jù)庫(kù)。本發(fā)明實(shí)施例還提供一種基于上述數(shù)據(jù)存儲(chǔ)方法實(shí)現(xiàn)的數(shù)據(jù)下載方法,包括:所述URL索引數(shù)據(jù)服務(wù)器接收資源索引服務(wù)器發(fā)送的用于查詢請(qǐng)求下載的文件的hash值的查詢請(qǐng)求,其中攜帶所述請(qǐng)求下載的文件的URL;所述URL索引數(shù)據(jù)服務(wù)器根據(jù)所述請(qǐng)求下載的文件的URL確定與所述URL對(duì)應(yīng)的URL模板,并確定所述URL模板的hash值;所述URL索引數(shù)據(jù)服務(wù)器根據(jù)所述URL模板的hash值查詢對(duì)應(yīng)的文件hash值,并將查詢到的文件hash值返回給所述資源索引服務(wù)器,由所述資源索引服務(wù)器根據(jù)所述文件hash值獲取對(duì)應(yīng)的URL集合并返回給下載客戶端,以使所述下載客戶端根據(jù)所述URL集合進(jìn)行多源下載。本發(fā)明實(shí)施例還提供一種數(shù)據(jù)存儲(chǔ)裝置,包括:存儲(chǔ)模塊,用于存儲(chǔ)URL模板;獲取模塊,用于當(dāng)所述數(shù)據(jù)存儲(chǔ)裝置接收到入庫(kù)請(qǐng)求時(shí),獲取其中攜帶的統(tǒng)一資源定位符URL;判斷模塊,用于判斷所述存儲(chǔ)模塊是否存儲(chǔ)有與所述URL對(duì)應(yīng)的URL模板;其中,所述URL模板與同一域名下的同一文件的不同URL對(duì)應(yīng);處理模塊,用于當(dāng)所述判斷模塊的判斷結(jié)果為是時(shí),所述URL不存儲(chǔ)到所述URL資源索引數(shù)據(jù)庫(kù),并結(jié)束此次入庫(kù)操作;當(dāng)所述判斷模塊的判斷結(jié)果為否時(shí),確定與所述URL對(duì)應(yīng)的URL模板,以及所述URL對(duì)應(yīng)的文件的hash值和所述URL模板的hash值,并將所述文件的hash值與所述URL模板的hash值的對(duì)應(yīng)關(guān)系信息存儲(chǔ)到所述URL索引數(shù)據(jù)庫(kù)。本發(fā)明實(shí)施例還提供一種URL索引數(shù)據(jù)服務(wù)器,其特征在于,包括:接收模塊,用于接收資源索引服務(wù)器發(fā)送的用于查詢請(qǐng)求下載文件的hash值的查詢請(qǐng)求,其中攜帶有所述請(qǐng)求下載的文件的URL;確定模塊,用于根據(jù)所述請(qǐng)求下載的文件的URL確定與所述URL對(duì)應(yīng)的URL模板,并確定所述URL模板的hash值;處理模塊,用于根據(jù)所述URL模板的hash值查詢對(duì)應(yīng)的文件hash值,并將查詢到的文件hash值返回給所述資源索引服務(wù)器,由所述資源索引服務(wù)器根據(jù)所述文件hash值獲取對(duì)應(yīng)的URL集合并返回給下載客戶端,以使所述下載客戶端根據(jù)所述URL集合進(jìn)行多源下載。在本發(fā)明上述實(shí)施例中,接收到入庫(kù)請(qǐng)求后,僅將入庫(kù)請(qǐng)求中攜帶的URL對(duì)應(yīng)的URL模板的hash值和該URL對(duì)應(yīng)的文件的hash值的對(duì)應(yīng)關(guān)系存儲(chǔ)到URL索引數(shù)據(jù)庫(kù),其中,該URL模板與同一域名下的同一文件的不同URL對(duì)應(yīng),減少了URL索引數(shù)據(jù)庫(kù)的存儲(chǔ)資源消耗。附圖說(shuō)明圖1為現(xiàn)有技術(shù)中P2SP下載具體發(fā)布流程圖圖2為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)的方法流程示意圖;圖3為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)下載的方法流程示意圖;圖4為本發(fā)明實(shí)施例提出的一種具體應(yīng)用場(chǎng)景的示意圖;圖5為本發(fā)明實(shí)施例提供的一種資源入庫(kù)服務(wù)器的結(jié)構(gòu)示意圖;圖6為本發(fā)明實(shí)施例提供的一種URL索引數(shù)據(jù)服務(wù)器的結(jié)構(gòu)示意圖。具體實(shí)施方式針對(duì)上述現(xiàn)有技術(shù)中的缺陷,本發(fā)明實(shí)施例提供一種數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)下載的技術(shù)方案。在該技術(shù)方案中,對(duì)不同域名下的同一個(gè)文件(即同一網(wǎng)站的同一個(gè)文件)的URL,進(jìn)行分析,將URL當(dāng)中可變數(shù)字部分和不變的部分隔離,對(duì)可變但是不影響判斷URL最終對(duì)應(yīng)文件的部分用通用字符代替,從而減少URL索引數(shù)據(jù)庫(kù)收錄的規(guī)模和需要保存的數(shù)據(jù)量。通過(guò)本發(fā)明能夠提高網(wǎng)絡(luò)資源收錄效率,減少URL索引數(shù)據(jù)庫(kù)的大小。例如,對(duì)于URL:http://disk23.sh.com/myfile/115816391/dpin/XXXXXXXXXXXXXXXX003/121386XXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/%ce%a8%c3%c0%be%a2%ce%e8%b5%c7%c2%bc%c6%f7v2.3.exe其構(gòu)成部分包括域名,即disk23.sh.com部分,和URL對(duì)應(yīng)的文件名稱,即%ce%a8%c3%c0%be%a2%ce%e8%b5%c7%c2%bc%c6%f7v2.3.exe,然后是中間路徑部分,即/myfile/115816391/dpin/XXXXXXXXXXXXXXXX003/121386XXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/這一個(gè)字符串。對(duì)這樣一個(gè)文件能夠確定網(wǎng)站和文件名,所以可以將這個(gè)網(wǎng)站對(duì)應(yīng)的這個(gè)文件的唯一標(biāo)識(shí)設(shè)置為:disk23.sh.com_%ce%a8%c3%c0%be%a2%ce%e8%b5%c7%c2%bc%c6%f7v2.3。對(duì)于新收錄的URL,用網(wǎng)站名稱加URL對(duì)應(yīng)的文件名稱作為主鍵,來(lái)標(biāo)識(shí)1個(gè)域名下(或者網(wǎng)站上)唯一的1個(gè)文件,然后將對(duì)應(yīng)這個(gè)文件的URL保存在一起進(jìn)行分析,通常同樣的網(wǎng)站對(duì)應(yīng)的URL上報(bào)或者爬取超過(guò)預(yù)設(shè)閾值(如100個(gè))后,開始進(jìn)行URL模版的分析,主要通過(guò)比較這些URL的相同部分和不同部分,通過(guò)模式匹配和正則表達(dá)來(lái)獲取URL當(dāng)中可變與不可變的部分。對(duì)應(yīng)可變部分抽象為一個(gè)通用的字母標(biāo)識(shí),比如上述URL經(jīng)過(guò)處理后,統(tǒng)一的模板可以為:http://disk23.sh.com/myfile/115816391/dpin/X003/121386Y/Z/%ce%a8%c3%c0%be%a2%ce%e8%b5%c7%c2%bc%c6%f7v2.3.exe其中X,Y,Z標(biāo)識(shí)URL中可變部分,可以用一些不會(huì)出現(xiàn)在真正URL當(dāng)中的特殊的通配字符代替,或者用一些特殊字符組合代替比如-X-等,形式不限定。然后同樣一個(gè)網(wǎng)站得到1個(gè)URL,如果除了X,Y,Z之外,其他部分相同,就認(rèn)為是一個(gè)相同的URL。此時(shí)對(duì)上面通用的URL模版進(jìn)行Hash,作為URL索引數(shù)據(jù)庫(kù)的主鍵和對(duì)應(yīng)文件Hash建立對(duì)應(yīng)關(guān)系,下載客戶端再上報(bào)或者爬蟲爬取到新的URL,如果經(jīng)過(guò)模版歸一化處理后,能夠和已有的模版對(duì)應(yīng)。就不需要把這個(gè)URL作為新的索引記錄插入U(xiǎn)RL索引數(shù)據(jù)庫(kù)當(dāng)中了,可以有效減少數(shù)據(jù)庫(kù)的大小。另外在寫入U(xiǎn)RL資源數(shù)據(jù)庫(kù)(同時(shí)也需要記錄URL鏈接的來(lái)源Ref,即用戶選擇的下載鏈接所在頁(yè)面的鏈接,也稱為來(lái)源頁(yè)面鏈接)的時(shí)候,這樣的URL也只需要記錄和收錄一次,不需要每個(gè)對(duì)應(yīng)同樣文件的新的URL就都寫入U(xiǎn)RL資源數(shù)據(jù)庫(kù)。下面將結(jié)合本發(fā)明的實(shí)施例中的附圖,對(duì)本發(fā)明的實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,下面所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明的實(shí)施例保護(hù)的范圍。如圖2所示,為本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法的流程示意圖,可以包括以下步驟:步驟201、當(dāng)接收到入庫(kù)請(qǐng)求時(shí),獲取其中攜帶的URL。具體的,在本發(fā)明實(shí)施例中,資源爬蟲系統(tǒng)可以定期從下載網(wǎng)頁(yè)中爬取可下載鏈接(以URL的形式),并上報(bào)爬取到的下載鏈接以進(jìn)行入庫(kù)處理(即發(fā)送入庫(kù)請(qǐng)求)。同時(shí),客戶端設(shè)備在下載任務(wù)完成后,可以將相關(guān)下載鏈接進(jìn)行上報(bào),以進(jìn)行入庫(kù)處理。步驟202、判斷自身是否存儲(chǔ)有與該URL對(duì)應(yīng)的URL模板。若判斷為是,則轉(zhuǎn)至步驟103;否則,轉(zhuǎn)至步驟104。具體的,在本發(fā)明實(shí)施例中,為了減少URL資源索引數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)量,對(duì)于同一網(wǎng)站的同一文件的不同鏈接以一個(gè)同一的模板進(jìn)行存儲(chǔ)。獲取到入庫(kù)請(qǐng)求中攜帶的URL后,可以判斷自身是否存儲(chǔ)有與該URL對(duì)應(yīng)的URL模板。例如,可以獲取請(qǐng)求入庫(kù)的URL中包含的主機(jī)信息和文件名信息,并根該主機(jī)信息和文件名信息判斷自身是否存儲(chǔ)有對(duì)應(yīng)的URL模板。步驟203、該URL不存儲(chǔ)到URL資源索引數(shù)據(jù)庫(kù),并結(jié)束此次入庫(kù)操作。步驟204、確定與該URL對(duì)應(yīng)的URL模板,以及該URL對(duì)應(yīng)的文件的hash值和該URL模板的hash值,并將該文件的hash值與該URL模板的hash值的對(duì)應(yīng)關(guān)系信息存儲(chǔ)到URL索引數(shù)據(jù)庫(kù)。具體的,在本發(fā)明實(shí)施例中,確定與入庫(kù)請(qǐng)求中攜帶的URL對(duì)應(yīng)的URL模板后,還需要確定該URL對(duì)應(yīng)的文件的hash值以及該URL模板對(duì)應(yīng)的hash值,并將該文件的hash值與URL模板的hash值的對(duì)應(yīng)關(guān)系信息存儲(chǔ)到URL資源索引數(shù)據(jù)庫(kù)。其中,對(duì)于文件hash值的確定,在本發(fā)明實(shí)施例中,當(dāng)入庫(kù)請(qǐng)求為下載客戶端在完成下載任務(wù)后上報(bào)的時(shí),該入庫(kù)請(qǐng)求中會(huì)攜帶有URL對(duì)應(yīng)的文件的hash值;而當(dāng)入庫(kù)請(qǐng)求未資源爬蟲系統(tǒng)發(fā)送的時(shí),需要請(qǐng)求對(duì)請(qǐng)求入庫(kù)的URL進(jìn)行下載,并計(jì)算對(duì)應(yīng)文件的hash值。需要注意的是,由于實(shí)際實(shí)施過(guò)程當(dāng)中,并不是每一個(gè)下載網(wǎng)站都提供類似的鏈接方法,為了減少不必要的模版匹配分析計(jì)算,可以預(yù)先配置好一部分需要進(jìn)行匹配分析下載站的域名。在通過(guò)URL索引數(shù)據(jù)庫(kù)查詢URL對(duì)應(yīng)文件hash的過(guò)程中也需要進(jìn)行類似的處理,由于用戶提交的URL入口是來(lái)源多種多樣的,對(duì)于需要關(guān)注的進(jìn)行域名匹配的網(wǎng)站,對(duì)用戶提供的入口URL做同樣的分析,然后再向數(shù)據(jù)庫(kù)查詢獲取真正的鏈接?;谏鲜鰯?shù)據(jù)存儲(chǔ)方法的技術(shù)構(gòu)思,本發(fā)明還提供了一種數(shù)據(jù)下載方法。如圖3所示,為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)下載方法的流程示意圖,可以包括以下步驟:步驟301、URL索引數(shù)據(jù)服務(wù)器接收資源索引服務(wù)器發(fā)送的查詢請(qǐng)求下載的文件的hash值的查詢請(qǐng)求,其中攜帶請(qǐng)求下載的文件的URL。具體的,在本發(fā)明實(shí)施例中,當(dāng)下載客戶端接收用戶發(fā)送的數(shù)據(jù)下載請(qǐng)求時(shí),下載客戶端會(huì)根據(jù)其中攜帶的URL向資源索引服務(wù)器請(qǐng)求獲取與該URL對(duì)應(yīng)的文件相同的其他URL,以實(shí)現(xiàn)多源下載。資源索引服務(wù)器接收到下載客戶端的查詢請(qǐng)求后,會(huì)向URL索引服務(wù)器發(fā)送查詢請(qǐng)求下載的文件的hash值的查詢請(qǐng)求,其中攜帶請(qǐng)求下載的文件的URL。步驟302、URL索引數(shù)據(jù)服務(wù)器根據(jù)請(qǐng)求下載的文件的URL確定與該URL對(duì)應(yīng)的URL模板,并確定該URL模板的hash值。具體的,URL索引數(shù)據(jù)服務(wù)器接收到資源索引服務(wù)器發(fā)送的查詢請(qǐng)求后,確定與其中攜帶的URL對(duì)應(yīng)的URL模板,并確定該URL模板的hash值。步驟303、URL索引數(shù)據(jù)服務(wù)器根據(jù)URL模板的hash值查詢對(duì)應(yīng)的文件hash值,并將查詢到的文件hash值返回給資源索引服務(wù)器。具體的,索引數(shù)據(jù)服務(wù)器向URL資源索引數(shù)據(jù)庫(kù)發(fā)送文件hash值查詢請(qǐng)求,其中攜帶文件對(duì)應(yīng)的URL模板的hash值。URL索引數(shù)據(jù)服務(wù)器接收URL資源索引數(shù)據(jù)庫(kù)返回的文件hash值;其中,URL資源索引數(shù)據(jù)庫(kù)根據(jù)接收到的URL模板hash值以及自身存儲(chǔ)的文件hash值和URL模板的hash值的對(duì)應(yīng)關(guān)系信息查詢接收到的URL模板hash值對(duì)應(yīng)的文件hash值。步驟304、資源索引服務(wù)器根據(jù)文件hash值獲取對(duì)應(yīng)的URL集合并返回給下載客戶端。具體的,資源索引服務(wù)器接收到URL索引數(shù)據(jù)服務(wù)器返回的文件hash值后,向URL資源服務(wù)器發(fā)送攜帶該文件hash值的URL查詢請(qǐng)求,以查詢對(duì)應(yīng)該文件hash值的URL集合,并當(dāng)接收到URL資源服務(wù)器返回的URL集合后,將該URL集合發(fā)送給下載客戶端。步驟305、下載客戶端根據(jù)該URL集合進(jìn)行多源下載。通過(guò)以上描述可以看出,在本發(fā)明實(shí)施例中,通過(guò)對(duì)不同網(wǎng)站提供的同一個(gè)文件的下載鏈接,進(jìn)行分析,將鏈接當(dāng)中可變數(shù)字部分和不變的部分隔離,對(duì)可變的部分但是不影響判斷下載鏈接最終對(duì)應(yīng)文件的部分用通用字符代替,從而減少URL索引數(shù)據(jù)庫(kù)收錄的規(guī)模和需要保存的數(shù)據(jù)量。通過(guò)本發(fā)明能夠提高網(wǎng)絡(luò)資源收錄效率和下載資源查詢的匹配效率,減少URL資源數(shù)據(jù)庫(kù)和URL索引數(shù)據(jù)庫(kù)的大?。煌瑫r(shí)收錄資源來(lái)源頁(yè)面的引用頁(yè)面,用戶可以主動(dòng)瀏覽原始鏈接收錄的頁(yè)面,兼顧下載鏈接服務(wù)提供方的利益。為了進(jìn)一步對(duì)上述技術(shù)方案進(jìn)行闡述,對(duì)于如圖4所示的本發(fā)明實(shí)施例所提出的數(shù)據(jù)下載系統(tǒng)中各個(gè)組件模塊的主要功能說(shuō)明如下,其中,為了便于理解,以資源入庫(kù)服務(wù)器接收入庫(kù)請(qǐng)求,并進(jìn)行相應(yīng)的處理為例進(jìn)行描述:一、下載客戶端:(1)定期向Tracker服務(wù)器匯報(bào)在線情況和本地?fù)碛械馁Y源信息;(2)通過(guò)源URL向服務(wù)器查詢多資源,Hash及文件校驗(yàn)信息,同時(shí)向Tracker服務(wù)器查詢Peer;(3)完成下載任務(wù)后,向統(tǒng)計(jì)服務(wù)器匯報(bào)本次下載任務(wù)的下載時(shí)間、下載速度、下載結(jié)果、文件大小,安全屬性等信息;(4)下載過(guò)程當(dāng)中發(fā)現(xiàn)下載到完成的數(shù)據(jù)分片后,進(jìn)行校驗(yàn),如果發(fā)現(xiàn)分片錯(cuò)誤,向資源入庫(kù)服務(wù)器上報(bào)錯(cuò)誤來(lái)源的Peer,URL,文件Hash;(5)首次沒(méi)有能夠查詢到校驗(yàn)信息的文件,認(rèn)為是新文件,下載完成后,由客戶端抽取相應(yīng)的檢驗(yàn)信息和文件的唯一標(biāo)識(shí)及原始URL,引用來(lái)源ref頁(yè)上報(bào)給資源入庫(kù)服務(wù)器。二、資源爬蟲系統(tǒng):(1)從互聯(lián)網(wǎng)上爬取有下載資源的網(wǎng)站資源頁(yè)面;(2)從下載下面中抽取可以下載的文件鏈接,通常通過(guò)下載鏈接尾部文件的擴(kuò)展名稱來(lái)標(biāo)識(shí);(3)將爬取的新鏈接,通過(guò)給資源入庫(kù)服務(wù)器進(jìn)行入庫(kù)處理;(4)對(duì)新爬取的鏈接或者配置的下載站點(diǎn)的鏈接進(jìn)行匹配分析,抽取對(duì)應(yīng)的規(guī)則模版,同時(shí)將模版同步給資源入庫(kù)服務(wù)器和URL索引數(shù)據(jù)庫(kù)服務(wù)器。三、資源入庫(kù)服務(wù)器:(1)接收客戶端入庫(kù)上報(bào)請(qǐng)求:資源入庫(kù)服務(wù)器收到入庫(kù)請(qǐng)求后,首先向資源URL索引數(shù)據(jù)庫(kù)查詢?cè)撡Y源的信息,如果沒(méi)有匹配的記錄,直接將該資源入庫(kù),入庫(kù)前進(jìn)行URL鏈接模版匹配分析,按照匹配規(guī)則處理;如果有匹配的記錄,則檢查相關(guān)字段(文件大小,Hash標(biāo)識(shí))內(nèi)容是否一致。如果一致,則此次入庫(kù)操作完成;如果有字段不一致,則請(qǐng)求通過(guò)提供的鏈接,直接下載文件,計(jì)算對(duì)應(yīng)字段,然后驗(yàn)證不一致的字段;(2)接受爬蟲系統(tǒng)爬取的新的URL,對(duì)這些URL進(jìn)行下載,計(jì)算對(duì)應(yīng)文件的Hash值,同時(shí)將這些信息寫入U(xiǎn)RL資源索引數(shù)據(jù)庫(kù)當(dāng)中;(3)在更新URL資源索引數(shù)據(jù)庫(kù)的時(shí)候,按照URL鏈接模版抽取和匹配規(guī)則進(jìn)行處理,過(guò)濾掉同一個(gè)Hash文件,來(lái)自于同一個(gè)網(wǎng)站不同鏈接的入庫(kù)請(qǐng)求。四.Tracker服務(wù)器:(1)為每個(gè)申請(qǐng)加入網(wǎng)絡(luò)的客戶端提供注冊(cè),并反饋其所擁有該資源節(jié)點(diǎn)的IP地址列表;(2)接收客戶端的在線情況匯報(bào),生成各資源的節(jié)點(diǎn)列表并在有節(jié)點(diǎn)申請(qǐng)下載該任務(wù)時(shí)進(jìn)行反饋。五.資源索引服務(wù)器(1)接收客戶端通過(guò)URL作為索引的入口查詢文件Hash及需要下載的多URL資源集合;(2)提供文件分片校驗(yàn)信息,供下載客戶端校驗(yàn)下載數(shù)據(jù)的有效性;(3)返回多資源URL集合的同時(shí),返回每個(gè)URL來(lái)源的Ref頁(yè)面地址。六、URL索引數(shù)據(jù)服務(wù)器(1)將URL原始鏈接,統(tǒng)一編碼處理后,計(jì)算URL的唯一Hash值,然后建立與該URL對(duì)應(yīng)的基于文件內(nèi)容Hash的映射關(guān)系,保存在URL索引數(shù)據(jù)庫(kù)當(dāng)中;(2)為客戶端添加任務(wù)的時(shí)候,給資源查詢服務(wù)器提供URL到文件Hash的映射查詢提供支持服務(wù);(3)接受資源入庫(kù)服務(wù)器的同步,收錄URL鏈接模版,同時(shí)按照模版對(duì)客戶端提交的URL鏈接進(jìn)行匹配處理;(4)向URL資源索引數(shù)據(jù)庫(kù)查詢URL對(duì)應(yīng)的Hash;七、URL資源數(shù)據(jù)服務(wù)器(1)接受多資源查詢服務(wù)器通過(guò)Hash查詢多資源URL集合的請(qǐng)求;(2)向URL資源索引數(shù)據(jù)庫(kù)查詢Hash對(duì)應(yīng)的URL集合,同時(shí)返回URL集合給多資源查詢服務(wù)器。與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):通過(guò)對(duì)不同網(wǎng)站提供的同一個(gè)文件的下載鏈接,進(jìn)行分析,將鏈接當(dāng)中可變數(shù)字部分和不變的部分隔離,對(duì)可變的部分但是不影響判斷下載鏈接最終對(duì)應(yīng)文件的部分用通用字符代替,從而減少URL索引數(shù)據(jù)庫(kù)收錄的規(guī)模和需要保存的數(shù)據(jù)量。通過(guò)本發(fā)明能夠提高網(wǎng)絡(luò)資源收錄效率和下載資源查詢的匹配效率,減少URL資源數(shù)據(jù)庫(kù)和URL索引數(shù)據(jù)庫(kù)的大??;同時(shí)收錄資源來(lái)源頁(yè)面的引用頁(yè)面,用戶可以主動(dòng)瀏覽原始鏈接收錄的頁(yè)面,兼顧下載鏈接服務(wù)提供方的利益?;谏鲜龇椒▽?shí)施例相同的技術(shù)構(gòu)思,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)存儲(chǔ)裝置,可以應(yīng)用于上述方法流程。如圖5所示,為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)裝置的結(jié)構(gòu)示意圖,可以包括:存儲(chǔ)模塊51,用于存儲(chǔ)URL模板;獲取模塊52,用于當(dāng)所述數(shù)據(jù)存儲(chǔ)裝置接收到入庫(kù)請(qǐng)求時(shí),獲取請(qǐng)求攜帶的統(tǒng)一資源定位符URL;判斷模塊53,用于判斷所述存儲(chǔ)模塊是否存儲(chǔ)有與所述URL對(duì)應(yīng)的URL模板;其中,所述URL模板與同一域名下的同一文件的不同URL對(duì)應(yīng);處理模塊54,用于當(dāng)所述判斷模塊53的判斷結(jié)果為是時(shí),所述URL不存儲(chǔ)到所述URL資源索引數(shù)據(jù)庫(kù),并結(jié)束此次入庫(kù)操作;當(dāng)所述判斷模塊53的判斷結(jié)果為否時(shí),確定與所述URL對(duì)應(yīng)的URL模板,以及所述URL對(duì)應(yīng)的文件的hash值和所述URL模板的hash值,并將所述文件的hash值與所述URL模板的hash值的對(duì)應(yīng)關(guān)系信息存儲(chǔ)到所述URL索引數(shù)據(jù)庫(kù)。其中,所述處理模塊54可以具體用于,若所述入庫(kù)請(qǐng)求為下載客戶端發(fā)送的入庫(kù)請(qǐng)求,則獲取所述入庫(kù)請(qǐng)求中攜帶的文件的hash值;若所述入庫(kù)請(qǐng)求為資源爬蟲系統(tǒng)發(fā)送的入庫(kù)請(qǐng)求,則下載入庫(kù)請(qǐng)求中攜帶的URL對(duì)應(yīng)的文件,并確定所述文件的hash值。其中,所述處理模塊54還可以用于,當(dāng)確定URL對(duì)應(yīng)的URL對(duì)應(yīng)的URL模板后,將所述URL模板存儲(chǔ)到所述存儲(chǔ)模塊,并將所述URL模板存儲(chǔ)到所述URL索引數(shù)據(jù)服務(wù)器。其中,所述存儲(chǔ)模塊51還用于,存儲(chǔ)需要進(jìn)行模板匹配的URL對(duì)應(yīng)的域名信息;所述判斷模塊53具體用于,當(dāng)根據(jù)所述存儲(chǔ)模塊存儲(chǔ)的需要進(jìn)行模板匹配的URL對(duì)應(yīng)的域名信息確定所述URL需要進(jìn)行模板匹配時(shí),判斷所述存儲(chǔ)模塊是否存儲(chǔ)有與所述URL對(duì)應(yīng)的URL模板。其中,優(yōu)選地,所述數(shù)據(jù)存儲(chǔ)裝置可以為資源入庫(kù)服務(wù)器?;谏鲜龇椒▽?shí)施例相同的技術(shù)構(gòu)思,本發(fā)明實(shí)施例還提供了一種URL索引數(shù)據(jù)服務(wù)器,可以應(yīng)用于上述方法流程。如圖6所示,為本發(fā)明實(shí)施例提供的一種URL索引數(shù)據(jù)服務(wù)器的結(jié)構(gòu)示意圖,可以包括:接收模塊61,用于接收資源索引服務(wù)器發(fā)送的用于查詢請(qǐng)求下載文件的hash值的查詢請(qǐng)求,其中攜帶有所述請(qǐng)求下載的文件的URL;確定模塊62,用于根據(jù)所述請(qǐng)求下載的文件的URL確定與所述URL對(duì)應(yīng)的URL模板,并確定所述URL模板的hash值;處理模塊63,用于根據(jù)所述URL模板的hash值查詢對(duì)應(yīng)的文件hash值,并將查詢到的文件hash值返回給所述資源索引服務(wù)器,由所述資源索引服務(wù)器根據(jù)所述文件hash值獲取對(duì)應(yīng)的URL集合并返回給下載客戶端,以使所述下載客戶端根據(jù)所述URL集合進(jìn)行多源下載。其中,所述處理模塊63可以具體用于,向所述URL索引數(shù)據(jù)庫(kù)發(fā)送文件hash值查詢請(qǐng)求,其中攜帶所述文件對(duì)應(yīng)的URL模板的hash值;接收所述URL索引數(shù)據(jù)庫(kù)返回的文件hash值;其中,所述URL資源索引數(shù)據(jù)庫(kù)根據(jù)接收到的URL模板hash值以及自身存儲(chǔ)的文件hash值和URL模板的hash值的對(duì)應(yīng)關(guān)系信息查詢接收到的URL模板hash值對(duì)應(yīng)的文件hash值。通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施例的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。本領(lǐng)域技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例描述進(jìn)行分布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個(gè)或多個(gè)裝置中。上述實(shí)施例的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。以上公開的僅為本發(fā)明的幾個(gè)具體實(shí)施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。