專利名稱:網(wǎng)絡(luò)資源文件的離線下載系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)通信技術(shù),尤其涉及一種網(wǎng)絡(luò)資源文件的離線下載系統(tǒng)和方法。
背景技術(shù):
網(wǎng)絡(luò)資源一般是指存儲(chǔ)在網(wǎng)絡(luò)上供用戶下載使用的數(shù)字化資源,包括:程序文件、視頻文件、音頻文件等。目前下載網(wǎng)絡(luò)資源的常用方式包括以下幾種:(一 )點(diǎn)對(duì)服務(wù)器技術(shù)(P2S,Peer to Server),所有的網(wǎng)絡(luò)資源都存儲(chǔ)在某個(gè)大型下載網(wǎng)站的服務(wù)器中,用戶直接到該下載網(wǎng)站去下載資源文件,該種方式的下載速度可以得到保證,但資源分散、不易搜索。(二)點(diǎn)對(duì)點(diǎn)技術(shù)(P2P,Peer-to-Peer),又稱為對(duì)等技術(shù)。這種技術(shù)依賴網(wǎng)絡(luò)資源下載參與者設(shè)備的計(jì)算能力和帶寬,而不是把依賴都聚集在較少的幾臺(tái)服務(wù)器上。P2P技術(shù)在文件共享和下載方面得到了廣泛的應(yīng)用。P2P —端的下載速度和另一端的上傳速度密切相關(guān),由于中國(guó)用戶大多使用ADSL上網(wǎng),ADSL的上傳速度并不快,僅幾十K速度,一些用戶還會(huì)人為限制上傳速度,這導(dǎo)致了 P2P方式的上傳帶寬資源的缺乏,因此用戶會(huì)普遍感覺P2P的速度較慢慢。(三)點(diǎn)對(duì)服務(wù)器和點(diǎn)(P2SP,Peerto Server&Peer)技術(shù),就是下載不再像傳統(tǒng)方式那樣只能依賴服務(wù)器,內(nèi)容的傳遞可以在網(wǎng)絡(luò)上的各個(gè)終端機(jī)器中進(jìn)行。P2SP除了包含P2P以外,還包括服務(wù)器,即P2SP的“S”。P2SP有效地把原本孤立的服務(wù)器和其鏡像資源以及P2P資源整合到了一起。它在下載的穩(wěn)定性和下載的速度上,都比傳統(tǒng)的P2P或P2S有了非常大的提高。P2SP基于用戶對(duì)服務(wù)器和用戶機(jī)制,不同于P2P,也不同于P2S,它不但支持P2P技術(shù),同時(shí)還通過檢索數(shù)據(jù)庫(kù)(DB,data base)把服務(wù)器資源和P2P資源整合到了一起,用戶下載一個(gè)文件的時(shí)候,會(huì)自動(dòng)搜索其他資源,選擇合適的資源進(jìn)行加速,這使得P2SP在下載的穩(wěn)定性和下載的速度上,比傳統(tǒng)的P2P有了非常大的提高。在P2SP技術(shù)當(dāng)中,下載一個(gè)網(wǎng)絡(luò)資源文件,數(shù)據(jù)來源分為源下載鏈接、P2P網(wǎng)絡(luò)、第三方鏡像的輔助源,然后通過完整文件的唯一標(biāo)識(shí),比如通過消息摘要算法第五版(MD5)或者安全散列算法(SHA)計(jì)算得到的唯一標(biāo)識(shí),把文件統(tǒng)一串聯(lián)起來。圖1為現(xiàn)有的P2SP技術(shù)中網(wǎng)絡(luò)資源分享和下載的具體控制流程圖。參見圖1,所述P2SP網(wǎng)絡(luò)中包括下載客戶端、資源索引服務(wù)器、追蹤(Tracker)服務(wù)器、以及統(tǒng)計(jì)服務(wù)器。所述下載客戶端主要用于:(11)定期向Tracker服務(wù)器匯報(bào)在線情況和本地?fù)碛械馁Y源信息;(12)通過源URL向資源索引服務(wù)器查詢多資源URL集合、HASH及文件校驗(yàn)信息,從URL集合源下載數(shù)據(jù);(13)同時(shí)向Tracker服務(wù)器查詢種子(Peer) ; (14)完成下載任務(wù)后,向統(tǒng)計(jì)服務(wù)器匯報(bào)本次下載任務(wù)的下載時(shí)間、下載速度、下載結(jié)果、文件大小,下載的源鏈接和不同URL源獲取的下載速度和下載時(shí)間;(15)下載過程當(dāng)中發(fā)現(xiàn)下載到完成的數(shù)據(jù)分片后,進(jìn)行校驗(yàn),如果發(fā)現(xiàn)分片錯(cuò)誤,向統(tǒng)計(jì)服務(wù)器上報(bào)。所述資源索引服務(wù)器主要用于:(21)接收下載客戶端(包括云端的離線下載服務(wù)器)通過URL作為索引的入口查詢文件HASH; (22)接收下載客戶端(包括云端的離線下載服務(wù)器)通過URL作為索引的入口查詢下載的多URL資源集合;(23)提供分片文件校驗(yàn)信息,供下載客戶端校驗(yàn)下載數(shù)據(jù)的有效性。所述資源索引數(shù)據(jù)庫(kù)主要用于:保存P2SP系統(tǒng)中所有URL資源數(shù)據(jù)庫(kù)的索引和資源記錄。所述Tracker服務(wù)器用于:(31)為每個(gè)申請(qǐng)加入網(wǎng)絡(luò)的下載客戶端提供注冊(cè),并反饋其所擁有該資源節(jié)點(diǎn)的IP地址列表;(32)接收下載客戶端的在線情況匯報(bào),生成各資源的節(jié)點(diǎn)列表并在有節(jié)點(diǎn)申請(qǐng)下載該任務(wù)時(shí)進(jìn)行反饋;(33)接收帶寬調(diào)度服務(wù)器同步的Peer在線控制策略,在Peer登陸的時(shí)候下發(fā)到Peer下載客戶端。所述統(tǒng)計(jì)服務(wù)器用于:接受下載客戶端的下載完成和下載過程中URL下載速度,下載時(shí)間,連通情況,下載結(jié)果,文件大小等信息的上報(bào),并寫成流水日志的方式供后續(xù)統(tǒng)計(jì)分析。參見圖1,P2SP網(wǎng)絡(luò)中,網(wǎng)絡(luò)資源的下載流程主要包括:(41)用戶需要下載網(wǎng)絡(luò)資源的時(shí)候從互聯(lián)網(wǎng)或者資源網(wǎng)站獲取原始URL鏈接。(42)用戶以原始URL鏈接為入口,從資源索引服務(wù)器查詢多資源URL集合及文件哈希(HASH)值。(43)下載客戶端從查詢到的URL下載數(shù)據(jù)。(44)下載完成后注冊(cè)文件信息到Tracker服務(wù)器。(45)其他下載客戶端可以通過Tracker服務(wù)器查詢到P2P種子,即已經(jīng)下載完成的種子(Peer)和正在下載的Peer0 (46)其它下載客戶端開始查詢多源P2P下載,在Peer之間相互交換數(shù)據(jù)。(47)下載完成以后將相關(guān)的統(tǒng)計(jì)信息上報(bào)給統(tǒng)計(jì)服務(wù)器。不論上述哪種下載技術(shù),都需要用戶下載客戶端直接利用上述下載技術(shù)進(jìn)行網(wǎng)絡(luò)資源文件的下載。如果用戶要下載一些冷門網(wǎng)絡(luò)資源或者較大的文件,往往要長(zhǎng)時(shí)間掛機(jī),不僅浪費(fèi)時(shí)間而且消耗大量的帶寬。因此,目前業(yè)界出現(xiàn)了一種離線下載的技術(shù)方案。所謂離線下載,就是以服務(wù)器高速代理下載某一網(wǎng)絡(luò)資源,并將該網(wǎng)絡(luò)資源中轉(zhuǎn)到離線空間,代理下載完畢后由用戶下載客戶端從該離線空間下載到本機(jī)。這種離線下載處理方式實(shí)現(xiàn)了網(wǎng)絡(luò)加速的功能,目前獲得了廣泛的應(yīng)用。離線下載的本質(zhì)就是由下載工具的服務(wù)器代替用戶先行下載某個(gè)網(wǎng)絡(luò)資源。比如某個(gè)資源是冷門資源,下載速度很慢,用戶如果直接利用本機(jī)下載客戶端下載,則需要下載很久。如果用戶使用離線下載技術(shù),就可以讓服務(wù)商的服務(wù)器代替用戶下載,用戶則可以關(guān)掉下載客戶端或者機(jī)器,從而節(jié)約時(shí)間、帶寬、以及耗電量。等到所述服務(wù)器離線下載完畢后,用戶再?gòu)脑摲?wù)器上高速下到下載客戶端的電腦上。離線下載能省卻許多掛機(jī)等待的時(shí)間,尤其重要的是能夠節(jié)省出用戶帶寬資源來處理其它任務(wù)。具體的,現(xiàn)有的離線下載技術(shù)方案具有如下特點(diǎn):(51)加速下載冷門資源:離線下載為用戶解決冷門資源下載慢、長(zhǎng)時(shí)間掛機(jī)的問題,利用離線服務(wù)器的強(qiáng)大帶寬,相比于普通民用的非對(duì)稱數(shù)字用戶環(huán)路(ADSL,Asymmetric Digital Subscriber Line)網(wǎng)絡(luò)能夠更快的將文件下載到你的專屬服務(wù)器。下載完成后,用戶可以把文件從所述專屬服務(wù)器上高速穩(wěn)定地下載到用戶本地的計(jì)算機(jī)上。由于離線服務(wù)器的帶寬遠(yuǎn)大于ADSL網(wǎng)絡(luò),離線服務(wù)器能夠提供大于ADSL的下載速度。(52)穩(wěn)定提升下載速度:普通任務(wù)使用離線下載速度,速度更快更穩(wěn)定,專屬會(huì)員服務(wù)器將為會(huì)員提供穩(wěn)定的下載速度。如果不采用離線下載而直接下載時(shí),則受限于網(wǎng)絡(luò)環(huán)境的影響,下載速度是處于一個(gè)波動(dòng)的狀態(tài),不可預(yù)期。而離線下載能夠提供穩(wěn)定的速度。(53)可以解決網(wǎng)絡(luò)封殺、網(wǎng)絡(luò)被限的問題:在諸如P2P網(wǎng)絡(luò)或P2SP網(wǎng)絡(luò)被限的情況下,離線下載仍可高速下載,離線下載的會(huì)員專屬服務(wù)器將為用戶提供7*24小時(shí)不間斷高速下載。使得用戶的下載效率更高,下載時(shí)間利用率更高。用戶的專屬服務(wù)器可以在用戶不掛機(jī),甚至睡覺的時(shí)候,為用戶持續(xù)地下載該文件,從而節(jié)省用戶寶貴的時(shí)間。圖2為現(xiàn)有技術(shù)中的一種離線下載系統(tǒng)的組成和下載網(wǎng)絡(luò)資源文件的示意圖;參見圖2,現(xiàn)有的這種離線下載系統(tǒng)包括:下載客戶端、離線任務(wù)管理服務(wù)器、離線下載調(diào)度服務(wù)器、離線下載服務(wù)器集群、離線任務(wù)數(shù)據(jù)庫(kù)、以及云存儲(chǔ)服務(wù)器。當(dāng)然,前述各個(gè)服務(wù)器可以分別是單獨(dú)設(shè)置的物理服務(wù)器,也可以是服務(wù)功能模塊,設(shè)置在一個(gè)或一個(gè)以上物理服務(wù)器之上。參見圖2,現(xiàn)有的離線下載技術(shù)方案的主要過程是:(61)下載客戶端向離線任務(wù)管理服務(wù)器提交離線下載任務(wù)請(qǐng)求,其中包括需要下載的文件下載地址,比如對(duì)應(yīng)文件下載的HTTP鏈接,或者eMule鏈接或者BT下載種子。(62) (63)離線任務(wù)管理服務(wù)器接受用戶提交的離線下載任務(wù)請(qǐng)求后,先從所述離線任務(wù)數(shù)據(jù)庫(kù)中查詢Db映射記錄,判斷當(dāng)前請(qǐng)求下載的資源是否已經(jīng)被下載過且存在云存儲(chǔ)服務(wù)器中,如果是則直接告知下載客戶端離線下載成功,下載客戶端可以直接從云存儲(chǔ)服務(wù)器下載資源,同時(shí)還可以使用P2SP技術(shù)進(jìn)行下載;否則將離線下載任務(wù)請(qǐng)求的下載地址發(fā)送給離線下載調(diào)度服務(wù)器,如可以將相應(yīng)的HTTP的URL鏈接、eMule鏈接、或者BT種子文件信息發(fā)送給離線下載調(diào)度服務(wù)器,同時(shí)將該離線下載任務(wù)信息寫入離線任務(wù)數(shù)據(jù)庫(kù)。(64)離線下載調(diào)度服務(wù)器依據(jù)離線下載服務(wù)器集群的負(fù)載情況進(jìn)行離線任務(wù)的調(diào)度。(65)離線下載服務(wù)器集群依據(jù)所述下載地址開始啟動(dòng)下載,從internet下載數(shù)據(jù)。下載過程中,下載服務(wù)器集群可以使用自己的P2SP下載技術(shù),同時(shí)將下載狀況信息(包括下載進(jìn)度、下載速度等信息)上報(bào)給離線下載調(diào)度服務(wù)器,然后再由離線下載調(diào)度服務(wù)器上報(bào)到離線任務(wù)管理服務(wù)器。(66) (67)下載完成的數(shù)據(jù)同時(shí)同步到云存儲(chǔ)服務(wù)器,同時(shí)將下載結(jié)果寫入離線任務(wù)數(shù)據(jù)庫(kù),即在離線任務(wù)數(shù)據(jù)庫(kù)中保存離線下載生成的最終文件的HASH結(jié)果數(shù)據(jù)并于對(duì)應(yīng)的下載任務(wù)請(qǐng)求的原始鏈接形成映射記錄。(68)離線任務(wù)管理服務(wù)器根據(jù)上報(bào)的下載狀況信息得知網(wǎng)絡(luò)資源文件下載完畢后,通知下載客戶端從所述云存儲(chǔ)服務(wù)器下載對(duì)應(yīng)的文件,此時(shí)下載客戶端可以直接從云存儲(chǔ)服務(wù)器下載所述文件。隨著數(shù)字內(nèi)容的爆炸式增長(zhǎng),網(wǎng)絡(luò)資源文件的體積也越來越大。例如網(wǎng)絡(luò)游戲下載客戶端安裝包的大小從幾百M(fèi)到幾個(gè)G,十幾個(gè)G都很常見;再例如高清視頻中的藍(lán)光格式電影文件,一般一部藍(lán)光電影文件動(dòng)輒就20多G ;另外,一些系統(tǒng)備份軟件、安裝程序、專業(yè)圖片或者是PPT等無法分割的文件,其大小都有逐步加大的趨勢(shì),也使得目前互聯(lián)網(wǎng)上大文件的內(nèi)容越來越多,大文件的分發(fā)下載也成為一個(gè)重要的問題。大文件下載時(shí)間非常長(zhǎng),比如I部20G的高清電影,按照現(xiàn)在用戶通常2M的典型ADSL帶寬下載全速下載,需要時(shí)間為20GB/2Mb = 10*1000*8s = 80000s = 22.22小時(shí),如果是4M的網(wǎng)絡(luò)下載,也需要11個(gè)多小時(shí)。但是,現(xiàn)有的離線下載技術(shù)中,無論文件的大小如何,都必須等到服務(wù)器端下載完成以后才能下載取回到下載客戶端本地,服務(wù)器下載完成的部分?jǐn)?shù)據(jù)也不能給本地正在進(jìn)行的文件下載進(jìn)行加速,部分完成的數(shù)據(jù)文件不能發(fā)揮任何作用。因此對(duì)于大型文件(例如超過8G的超大文件),目前的離線下載方案存在如下缺陷:用戶等待大文件下載完畢的時(shí)間太長(zhǎng)。其中不但離線下載服務(wù)器下載完成的時(shí)間很長(zhǎng),而且下載客戶端從云存儲(chǔ)服務(wù)器下載取回本地的時(shí)間也很長(zhǎng),兩者不能同時(shí)進(jìn)行,導(dǎo)致大文件的總體下載時(shí)間過長(zhǎng)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種網(wǎng)絡(luò)資源文件的離線下載方法和系統(tǒng),以縮短網(wǎng)絡(luò)資源文件的總體下載時(shí)間。本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:一種網(wǎng)絡(luò)資源文件的離線下載系統(tǒng),包括:下載客戶端、離線任務(wù)管理服務(wù)器、離線下載服務(wù)器、云存儲(chǔ)服務(wù)器、文件切割分片服務(wù)器,其中:所述下載客戶端用于發(fā)起離線下載任務(wù)請(qǐng)求,并從所述云存儲(chǔ)服務(wù)器下載已經(jīng)完成離線下載的分片文件;所述離線任務(wù)管理服務(wù)器用于管理離線下載過程,向文件切割分片服務(wù)器發(fā)起離線下載任務(wù)請(qǐng)求,并從所述文件切割分片服務(wù)器查詢分片文件的下載狀態(tài),在離線下載完至少一個(gè)分片文件后通知下載客戶端進(jìn)行下載;所述文件切割分片服務(wù)器用于將請(qǐng)求離線下載的目標(biāo)文件邏輯分割為一個(gè)以上分片文件,通知離線下載服務(wù)器下載所述分片文件,并接收分片文件的下載狀態(tài);所述離線下載服務(wù)器用于離線下載所述分片文件到云存儲(chǔ)服務(wù)器,監(jiān)測(cè)分片文件的下載狀態(tài)并同步給文件切割分片服務(wù)器。一種網(wǎng)絡(luò)資源文件的離線下載方法,包括:離線下載服務(wù)器端將請(qǐng)求離線下載的目標(biāo)文件邏輯分割為一個(gè)以上分片文件進(jìn)行離線下載,并監(jiān)測(cè)所述分片文件的下載狀態(tài);在離線下載完至少一個(gè)分片文件后通知下載客戶端進(jìn)行下載;下載客戶端從離線下載服務(wù)器端下載所述已經(jīng)完成離線下載的分片文件。與現(xiàn)有技術(shù)相比,本發(fā)明對(duì)大文件和超大文件(比如超過SG的文件)的離線下載,先在邏輯上對(duì)文件進(jìn)行切割,對(duì)每個(gè)分片文件分別維護(hù)下載進(jìn)度狀態(tài),不需要等整個(gè)目標(biāo)文件下載完畢,只要有一個(gè)分片文件離線下載完畢即可通知下載客戶端從離線下載服務(wù)器端取回(即下載)該分片文件,因此在離線下載服務(wù)器端進(jìn)行離線下載的同時(shí),下載客戶端也可以從離線下載服務(wù)器端下載,縮短了網(wǎng)絡(luò)資源文件的總體下載時(shí)間,尤其有利于大文件和超大文件的下載和分發(fā)。
圖1為現(xiàn)有的P2SP技術(shù)中網(wǎng)絡(luò)資源分享和下載的具體控制流程圖2為現(xiàn)有技術(shù)中的一種離線下載系統(tǒng)的組成和下載網(wǎng)絡(luò)資源文件的示意圖;圖3為本發(fā)明所述網(wǎng)絡(luò)資源文件的離線下載系統(tǒng)的一種組成示意圖;圖4為具有離線下載服務(wù)器集群的離線下載系統(tǒng)的一種示意圖;圖5為本發(fā)明所述的一種網(wǎng)絡(luò)資源文件的離線下載方法的主要流程圖。
具體實(shí)施例方式下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)的說明。本發(fā)明是在現(xiàn)有的離線下載系統(tǒng)引入文件切割分片服務(wù)器和切片狀態(tài)數(shù)據(jù)庫(kù),對(duì)現(xiàn)有的離線下載系統(tǒng)進(jìn)行修改和整合,構(gòu)成一整套完整的大文件和超大文件切割分發(fā)下載的系統(tǒng)。圖3為本發(fā)明所述網(wǎng)絡(luò)資源文件的離線下載系統(tǒng)的一種組成示意圖。參見圖3,該離線下載系統(tǒng)包括:下載客戶端、離線任務(wù)管理服務(wù)器、離線任務(wù)數(shù)據(jù)庫(kù)、離線下載服務(wù)器、云存儲(chǔ)服務(wù)器以及文件切割分片服務(wù)器和切片狀態(tài)數(shù)據(jù)庫(kù)。其中:所述離線任務(wù)管理服務(wù)器用于:(71)接收下載客戶端提交的離線下載任務(wù),為每個(gè)獨(dú)立的離線下載任務(wù)生成唯一的標(biāo)識(shí)編號(hào);(72)將離線下載任務(wù)的原始鏈接信息寫入所述離線任務(wù)數(shù)據(jù)庫(kù);(73)通過離線任務(wù)數(shù)據(jù)庫(kù)的DB映射記錄判斷當(dāng)前請(qǐng)求下載的資源是否已經(jīng)被下載過且存在云存儲(chǔ)服務(wù)器中,如果是則直接告知下載客戶端離線下載成功,下載客戶端可以直接從云存儲(chǔ)服務(wù)器下載資源,同時(shí)還可以使用P2SP技術(shù)進(jìn)行下載;否則將離線下載任務(wù)請(qǐng)求發(fā)送給離線下載調(diào)度服務(wù)器;(74)接收離線下載調(diào)度服務(wù)器上報(bào)的下載進(jìn)度,同時(shí)供下載客戶端查詢離線下載進(jìn)度;(75)下載客戶端需要取回離線下載完成的數(shù)據(jù)時(shí)候,提供下載客戶端取回?cái)?shù)據(jù)的入口地址URL,作為下載客戶端下載的源;(76)所述離線任務(wù)管理服務(wù)器還用于在收到下載客戶端的離線下載任務(wù)請(qǐng)求后,判斷該請(qǐng)求的目標(biāo)文件(即請(qǐng)求下載的文件)的大小是否超過預(yù)設(shè)的閾值(例如8G),如果是則判定該文件為大文件,需要進(jìn)行邏輯切割處理,將該離線下載任務(wù)請(qǐng)求發(fā)送給文件切割分片服務(wù)器處理;否則按照現(xiàn)有技術(shù)的處理方式進(jìn)行處理;(77)所述離線任務(wù)管理服務(wù)器還可以按照確定文件大小分片規(guī)則,確定文件每個(gè)分片的唯一標(biāo)記和文件狀態(tài),接受離線下載調(diào)度服務(wù)器的下載狀態(tài)調(diào)度;(78)還可以通過文件切割分片服務(wù)器查詢切片狀態(tài)數(shù)據(jù)庫(kù)中的分片文件下載狀態(tài),在離線下載完至少一個(gè)分片文件后通知下載客戶端進(jìn)行下載。所述文件切割分片服務(wù)器用于:按照不同協(xié)議、不同類型的文件對(duì)應(yīng)的文件切割分片規(guī)則將請(qǐng)求離線下載的目標(biāo)文件邏輯分割為一個(gè)以上分片文件,通知離線下載服務(wù)器下載所述分片文件,同時(shí)還可以初始化分片文件的狀態(tài)到切片狀態(tài)數(shù)據(jù)庫(kù)中,并接收離線下載服務(wù)器返回的分片文件的下載狀態(tài)并存儲(chǔ)在切片狀態(tài)數(shù)據(jù)庫(kù)中,即離線下載服務(wù)器中的分片文件的下載狀態(tài)被同步到該文件切割分片服務(wù)器并存儲(chǔ)到切片狀態(tài)數(shù)據(jù)庫(kù)中。所述切片狀態(tài)數(shù)據(jù)庫(kù)用于:保存大文件切割分片后每個(gè)分片文件對(duì)應(yīng)的下載狀態(tài);并為文件切割分片服務(wù)器提供分片文件下載狀態(tài)的查詢;其中,切片數(shù)據(jù)庫(kù)記錄的主鍵就是分片文件的唯一標(biāo)識(shí)。當(dāng)然所述切片狀態(tài)數(shù)據(jù)庫(kù)也可以是可選部件,也可以將所述下載狀態(tài)記錄在所述切割分片服務(wù)器中的一個(gè)數(shù)據(jù)文件中。所述離線下載服務(wù)器用于:從離線任務(wù)數(shù)據(jù)庫(kù)中獲取離線下載請(qǐng)求的原始鏈接,進(jìn)行云端下載,即離線下載所述分片文件到云存儲(chǔ)服務(wù)器,并監(jiān)測(cè)分片文件的下載狀態(tài)信息(包括下載進(jìn)度和速度等信息)返回給文件切割分片服務(wù)器和離線任務(wù)管理服務(wù)器;還可以為離線下載完成以后下載客戶端取回離線下載的結(jié)果數(shù)據(jù)提供服務(wù)支持,能夠用保留的帶寬吐出用戶需要的數(shù)據(jù);并將離線下載生成的最終文件的哈希(HASH)結(jié)果數(shù)據(jù)寫入離線任務(wù)數(shù)據(jù)庫(kù)。當(dāng)然所述離線下載服務(wù)器集群在簡(jiǎn)單的場(chǎng)景下也可以只是一個(gè)服務(wù)器。所述離線任務(wù)數(shù)據(jù)庫(kù)用于:保存離線下載任務(wù)的原始鏈接信息并供離線下載服務(wù)器查詢;保存離線下載生成的最終文件的HASH結(jié)果數(shù)據(jù)并與對(duì)應(yīng)的下載任務(wù)請(qǐng)求的原始鏈接形成映射記錄,供離線任務(wù)管理服務(wù)器查詢。當(dāng)然所述離線任務(wù)數(shù)據(jù)庫(kù)也可以是可選部件,可以將所述離線任務(wù)數(shù)據(jù)庫(kù)由離線任務(wù)管理服務(wù)器中的一個(gè)數(shù)據(jù)文件來代替。所述云存儲(chǔ)服務(wù)器用于:保存離線下載服務(wù)器下載完成的數(shù)據(jù);作為下載客戶端下載離線取回?cái)?shù)據(jù)的數(shù)據(jù)源。所述下載客戶端可以是具有現(xiàn)有P2S、P2P、或P2SP下載客戶端功能的下載客戶端,除了具有上述下載客戶端的功能外,還可以進(jìn)一步用于向離線任務(wù)管理服務(wù)器提交離線下載任務(wù)請(qǐng)求,同時(shí)查詢離線任務(wù)的進(jìn)度信息;從所述云存儲(chǔ)服務(wù)器下載所述已經(jīng)完成離線下載的分片文件。下載一個(gè)大文件完成的分片文件后,還可以將該分片文件的唯一標(biāo)識(shí)作為本地文件的標(biāo)記向PSP網(wǎng)絡(luò)或P2SP網(wǎng)絡(luò)中的Tracker服務(wù)器注冊(cè)。通過此操作來將本地的該分片文件作為P2P網(wǎng)絡(luò)或P2SP網(wǎng)絡(luò)中的其它下載客戶端的一個(gè)下載源。該下載客戶端還用于從離線下載服務(wù)器端下載完分片文件后預(yù)覽該分片文件的內(nèi)容,從而使用戶判斷目標(biāo)文件是否為自己需要的。在本發(fā)明的一種實(shí)施例中,所述離線下載服務(wù)器也可以為一個(gè)以上的離線下載服務(wù)器集群。如圖4為具有離線下載服務(wù)器集群的離線下載系統(tǒng)的一種示意圖。參見圖4,該系統(tǒng)在包括離線下載服務(wù)器集群的情況下,進(jìn)一步包括離線下載調(diào)度服務(wù)器,主要用于:(81)接受離線下載服務(wù)器集群節(jié)點(diǎn)上報(bào)的負(fù)載信息;(82)收到離線任務(wù)管理服務(wù)器的離線下載任務(wù)請(qǐng)求后根據(jù)離線下載服務(wù)器的負(fù)載情況,動(dòng)態(tài)地將離線下載任務(wù)調(diào)度到離線下載服務(wù)器集群的不同節(jié)點(diǎn)上執(zhí)行具體的目標(biāo)文件和分片文件的下載任務(wù);(83)接受離線下載服務(wù)器節(jié)點(diǎn)匯報(bào)的目標(biāo)文件和分片文件的下載狀況信息(包括下載進(jìn)度、下載速度等信息),同時(shí)把下載狀況信息發(fā)送給離線下載任務(wù)管理服務(wù)器和文件切割分片服務(wù)器,在圖4所示實(shí)施例中,所述離線下載服務(wù)器監(jiān)測(cè)的分片文件的下載狀態(tài)先同步給該離線下載調(diào)度服務(wù)器,再由該離線下載調(diào)度服務(wù)器同步給所述文件切割分片服務(wù)器;并且,離線下載調(diào)度服務(wù)器還將分片文件的下載狀態(tài)同步給離線任務(wù)管理服務(wù)器,由離線任務(wù)管理服務(wù)器生成目標(biāo)文件的總的下載進(jìn)度同步給下載客戶端供用戶查看;(84)對(duì)相同的離線下載請(qǐng)求進(jìn)行過濾,同一個(gè)離線下載請(qǐng)求只需要向離線下載服務(wù)器群發(fā)送一次,不同的用戶可以共享同一個(gè)任務(wù)的離線下載進(jìn)度信息。所述離線下載服務(wù)器集群除了上述具體離線下載服務(wù)器的功能外,還用于:向離線下載調(diào)度服務(wù)器注冊(cè)自己的地址,并上報(bào)自身磁盤空間、CPU負(fù)載信息,供離線下載調(diào)度任務(wù)離線下載調(diào)度服務(wù)器按照負(fù)載進(jìn)行動(dòng)態(tài)均衡的下載調(diào)度;接收離線下載調(diào)度服務(wù)器的調(diào)度,從離線任務(wù)數(shù)據(jù)庫(kù)中獲取離線下載請(qǐng)求的原始鏈接,進(jìn)行云端下載。本發(fā)明中,前述各個(gè)服務(wù)器可以分別是單獨(dú)設(shè)置的物理服務(wù)器,也可以是服務(wù)功能模塊,設(shè)置在一個(gè)或一個(gè)以上物理服務(wù)器之上。下面介紹本發(fā)明所述離線下載系統(tǒng)實(shí)現(xiàn)的網(wǎng)絡(luò)資源文件的離線下載方法。
圖5為本發(fā)明所述的一種網(wǎng)絡(luò)資源文件的離線下載方法的主要流程圖,參見圖5,該方法包括:步驟501、離線下載服務(wù)器端將請(qǐng)求離線下載的目標(biāo)文件邏輯分割為一個(gè)以上分片文件進(jìn)行離線下載,并監(jiān)測(cè)所述分片文件的下載狀態(tài);在離線下載完至少一個(gè)分片文件后通知下載客戶端進(jìn)行下載;所述離線下載服務(wù)器端就是指上述圖3和圖4所述離線下載系統(tǒng)中的服務(wù)器端。步驟502、下載客戶端從離線下載服務(wù)器端下載所述已經(jīng)完成離線下載的分片文件。本發(fā)明主要是用于對(duì)大文件和超大文件(例如大于SG的文件)的下載過程進(jìn)行切割分解,例如對(duì)一個(gè)超大文件按照確定的邏輯切割規(guī)則進(jìn)行邏輯切割,分解為指定大小或指定數(shù)目的多個(gè)分片文件,每個(gè)分片文件都是一個(gè)獨(dú)立的整體,且監(jiān)測(cè)維護(hù)每個(gè)分片文件的下載進(jìn)度狀態(tài),不需要等整個(gè)文件下載完畢,只需要下載完成部分文件內(nèi)容,就可以通知下載客戶端用戶從離線下載服務(wù)器端下載取回。下面介紹本發(fā)明所述方法的詳細(xì)執(zhí)行過程,具體包括:步驟601、下載客戶端向離線任務(wù)管理服務(wù)器提交離線下載任務(wù)請(qǐng)求,其中包括需要下載的目標(biāo)文件的大小等信息和下載地址,比如對(duì)應(yīng)文件下載的HTTP鏈接,或者eMule鏈接或者BT下載種子。步驟602、離線任務(wù)管理服務(wù)器判斷請(qǐng)求離線下載的目標(biāo)文件的大小是否大于預(yù)設(shè)的閾值(例如可以設(shè)置為8G),如果是則判斷目標(biāo)文件為大文件或超大文件,需要進(jìn)行切割分片下載,執(zhí)行后續(xù)步驟;否則判定不需要進(jìn)行切割分片下載,按照現(xiàn)有的處理方式進(jìn)行處理。當(dāng)然,本步驟602為可選步驟,也可以省略該步驟,對(duì)所有的目標(biāo)文件都要進(jìn)行切割分片下載。步驟603、離線任務(wù)管理服務(wù)器從所述離線任務(wù)數(shù)據(jù)庫(kù)中查詢下載結(jié)果記錄,判斷當(dāng)前請(qǐng)求下載的目標(biāo)文件是否已經(jīng)被下載過且存在云存儲(chǔ)服務(wù)器中,如果是則直接告知下載客戶端離線下載成功,并通知下載客戶端該目標(biāo)文件的各分片文件的下載信息,下載客戶端可以依據(jù)下載信息直接從云存儲(chǔ)服務(wù)器下載分片文件,同時(shí)還可以使用P2SP技術(shù)從其他客戶端的下載源進(jìn)行下載,之后結(jié)束本處理流程;否則,離線任務(wù)管理服務(wù)器將離線下載任務(wù)請(qǐng)求發(fā)送給文件切割分片服務(wù)器,如可以將相應(yīng)的HTTP的URL鏈接、eMule鏈接、或者BT種子文件信息發(fā)送給文件切割分片服務(wù)器,同時(shí)將該離線下載任務(wù)信息寫入離線任務(wù)數(shù)據(jù)庫(kù)。步驟604、文件切割分片服務(wù)器按照不同協(xié)議、不同類型的文件對(duì)應(yīng)的文件切割分片規(guī)則將請(qǐng)求離線下載的目標(biāo)文件邏輯分割為一個(gè)以上分片文件。此步驟中,由于此時(shí)目標(biāo)文件還沒有下載,因此只是將請(qǐng)求離線下載的目標(biāo)文件在邏輯上分割為一個(gè)以上分片文件,并設(shè)置每個(gè)分片文件的唯一標(biāo)識(shí)。所述邏輯分割的具體方式為:對(duì)于超大文件按照文件大小對(duì)大文件進(jìn)行切割分片。分片文件規(guī)則可以和文件大小關(guān)聯(lián)起來,文件越大,分片就越大。此處具體的分割方法有二種:第一種是按照固定分片數(shù)目的方式在邏輯上進(jìn)行分割,即片數(shù)確定,每個(gè)分片文件的大小不確定;第二種是按照固定每個(gè)分片文件大小的方式在邏輯上進(jìn)行分割,即除了最后一個(gè)分片文件為余數(shù)外,其余每個(gè)分片文件的大小確定,片數(shù)不確定,比如都是100M,但是分片文件的總的數(shù)目不確定。實(shí)際處理過程中可以依據(jù)需要確定具體的切割方式。通常文件越大,比如50G以上,可以采用第一種方法,其它的采用第二種方法。比如,按照文件下載的進(jìn)度將文件切分為1024等份,每一份占總體進(jìn)度約為千份之一,I個(gè)100G的文件,每個(gè)分片就是100M,如果定義大文件為8G以上的文件為大文件,那么I個(gè)分片就是8G/1024 = 8M。通常,沒有切割分片之前,每一個(gè)目標(biāo)文件都有唯一的I個(gè)HASH值作為標(biāo)記,所述設(shè)置該目標(biāo)文件每個(gè)分片文件唯一標(biāo)識(shí)的具體方法根據(jù)目標(biāo)文件的類型不同會(huì)有所不同,主要包括以下三種:(I)所述目標(biāo)文件為URL標(biāo)記的文件,則計(jì)算該目標(biāo)文件的URL的HASH值,將該HASH值作為每個(gè)分片文件的唯一標(biāo)識(shí)的前一部分,每個(gè)分片文件在目標(biāo)文件中都有唯一的一個(gè)序號(hào),用一個(gè)整數(shù)標(biāo)識(shí),每個(gè)分片的唯一標(biāo)識(shí)的后一部分為該分片文件在該目標(biāo)文件內(nèi)的序號(hào),組合在一起構(gòu)成24個(gè)字節(jié)的唯一標(biāo)識(shí)。(2)如果請(qǐng)求離線下載的是eMule任務(wù),即所述目標(biāo)文件為ed2k鏈接標(biāo)記的文件,則計(jì)算所述目標(biāo)文件的基于文件內(nèi)容的HASH值(如MD5信息,通常為16個(gè)字節(jié)),將該HASH值作為每個(gè)分片文件的唯一標(biāo)識(shí)的前一部分,每個(gè)分片文件唯一標(biāo)識(shí)的后一部分為該分片文件在該目標(biāo)文件內(nèi)的序號(hào)。(3)如果請(qǐng)求離線下載的是BT種子文件,則情況復(fù)雜一些,由于BT種子是一個(gè)文件下載集合。一個(gè)BT種子當(dāng)中可能包含一個(gè)以上文件。對(duì)BT種子中的每個(gè)目標(biāo)文件,計(jì)算所述BT種子(即Torrent文件)的HASH值,將該HASH值加上目標(biāo)文件在BT種子中的序號(hào)作為該目標(biāo)文件的每個(gè)分片文件的唯一標(biāo)識(shí)的前一部分,每個(gè)分片文件唯一標(biāo)識(shí)的后一部分為該分片文件在該目標(biāo)文件內(nèi)的序號(hào)。在后續(xù)處理中,每個(gè)分片文件都對(duì)應(yīng)一個(gè)唯一的下載狀態(tài)。如果BT中間文件是小文件,沒有到達(dá)到進(jìn)行超大文件切割的界限就不需要進(jìn)行切割。步驟605、文件切割分片服務(wù)器根據(jù)邏輯分割后的每個(gè)分片文件的大小和唯一標(biāo)識(shí)(實(shí)質(zhì)上是該唯一標(biāo)識(shí)中的序號(hào))確定該分片文件在所述目標(biāo)文件內(nèi)的偏移量,并將包含目標(biāo)文件的下載地址和每個(gè)分片文件的唯一標(biāo)識(shí)和在目標(biāo)文件內(nèi)的偏移量的離線下載請(qǐng)求發(fā)送給離線下載服務(wù)器以離線下載目標(biāo)文件,同時(shí)還可以初始化分片文件的狀態(tài)到切片狀態(tài)數(shù)據(jù)庫(kù)中,初始化就是將分片文件的唯一標(biāo)識(shí)和下載進(jìn)度為O的狀態(tài)設(shè)置到所述切片狀態(tài)數(shù)據(jù)庫(kù)中。如果是離線下載服務(wù)器集群,則將上述離線下載請(qǐng)求發(fā)送給離線下載調(diào)度服務(wù)器,由該離線下載調(diào)度服務(wù)器根據(jù)離線下載服務(wù)器集群中的負(fù)載情況調(diào)度一個(gè)或一個(gè)以上的離線下載服務(wù)器進(jìn)行離線下載目標(biāo)文件。步驟606、離線下載服務(wù)器按照所述目標(biāo)文件的下載地址下載目標(biāo)文件,即進(jìn)行云端下載,下載過程中,離線下載服務(wù)器可以使用自身的P2SP下載技術(shù)。在下載目標(biāo)文件的過程中,實(shí)時(shí)根據(jù)所述分片文件在所述目標(biāo)文件中的偏移量監(jiān)測(cè)其中每一個(gè)分片文件的離線下載狀態(tài)(至少包括下載進(jìn)度,還可以包括下載速度等信息),即下載的最小粒度就是分片文件。并且,離線下載服務(wù)器將分片文件的下載狀態(tài)信息實(shí)時(shí)同步給文件切割分片服務(wù)器并由文件切割分片服務(wù)器存儲(chǔ)到切片狀態(tài)數(shù)據(jù)庫(kù)中,將總目標(biāo)文件的下載狀態(tài)信息同步給離線任務(wù)管理服務(wù)器?;蛘咴谑褂秒x線下載服務(wù)器集群的情況下將分片文件的下載狀態(tài)信息和目標(biāo)文件的總下載狀態(tài)信息同步給離線任務(wù)調(diào)度服務(wù)器,再由離線下載調(diào)度服務(wù)器將分片文件的下載狀態(tài)信息同步給所述文件切割分片服務(wù)器,并由文件切割分片服務(wù)器存儲(chǔ)到切片狀態(tài)數(shù)據(jù)庫(kù)中;離線下載調(diào)度服務(wù)器還將目標(biāo)文件的總下載狀態(tài)信息同步給離線任務(wù)管理服務(wù)器。步驟607、當(dāng)離線下載服務(wù)器下載分片文件時(shí),將所下載的分片文件數(shù)據(jù)同步存儲(chǔ)到云端存儲(chǔ)器中。云端存儲(chǔ)器將該分片文件的存儲(chǔ)地址(此處為該分片文件在云端存儲(chǔ)器上存儲(chǔ)的URL地址)返回給離線下載服務(wù)器,并由離線下載服務(wù)器將該分片文件的唯一標(biāo)識(shí)和存儲(chǔ)地址返回給離線任務(wù)管理服務(wù)器,或通過離線下載調(diào)度服務(wù)器返回給離線任務(wù)管理服務(wù)器。或者離線下載服務(wù)器只返回分片文件的唯一標(biāo)識(shí)給離線任務(wù)管理服務(wù)器,離線任務(wù)管理服務(wù)器根據(jù)與云端存儲(chǔ)器計(jì)算存儲(chǔ)地址相同的算法計(jì)算出該唯一標(biāo)識(shí)對(duì)應(yīng)的存儲(chǔ)地址。離線下載服務(wù)器還將每一分片文件的存儲(chǔ)地址寫入離線任務(wù)數(shù)據(jù)庫(kù),離線下載服務(wù)器下載完畢目標(biāo)文件的所有分片文件后,還要將下載結(jié)果寫入離線任務(wù)數(shù)據(jù)庫(kù)。步驟608、當(dāng)文件切割分片服務(wù)器通過所述同步的下載狀態(tài)信息判定某一分片文件被離線下載服務(wù)器下載完畢后,通知離線任務(wù)管理服務(wù)器。離線任務(wù)管理服務(wù)器將該分片文件的存儲(chǔ)地址發(fā)送給下載客戶端。下載客戶端根據(jù)該存儲(chǔ)地址從所述云端存儲(chǔ)器下載分片文件;或者,離線任務(wù)管理服務(wù)器也可以只將該分片文件的唯一標(biāo)識(shí)發(fā)送給下載客戶端,并將分片文件的唯一標(biāo)識(shí)和存儲(chǔ)地址發(fā)布到與該離線下載系統(tǒng)連接的P2P網(wǎng)絡(luò)或P2SP網(wǎng)絡(luò)中的資源索引數(shù)據(jù)庫(kù)中,所述下載客戶端通過所述分片文件的唯一標(biāo)識(shí)從所述P2P網(wǎng)絡(luò)或P2SP網(wǎng)絡(luò)獲取所述分片文件的存儲(chǔ)地址,并根據(jù)該存儲(chǔ)地址從云存儲(chǔ)服務(wù)器下載對(duì)應(yīng)的分片文件。步驟609、下載客戶端從離線下載服務(wù)器端下載完分片文件后,由于該分片文件是一個(gè)獨(dú)立的文件,因此還可以進(jìn)一步預(yù)覽該分片文件的內(nèi)容,從而可以事先知道自身下載的目標(biāo)文件是否是自己需要的,尤其對(duì)于視頻文件,下載部分內(nèi)容后可以進(jìn)行內(nèi)容的預(yù)覽,相對(duì)于現(xiàn)有技術(shù)需要下載完全部目標(biāo)文件到客戶端本地后才能查看文件內(nèi)容的方案,本發(fā)明可以減少不必要的等待時(shí)間,如果發(fā)現(xiàn)目標(biāo)文件并不是用戶需要的,則可以及時(shí)放棄下載,避免浪費(fèi)帶寬和時(shí)間。步驟610、所述下載客戶端在下載完畢一個(gè)分片文件后,還可以將該分片文件的唯一標(biāo)識(shí)作為本地文件的標(biāo)記向與本客戶端連接的PSP網(wǎng)絡(luò)或P2SP網(wǎng)絡(luò)中的Tracker服務(wù)器注冊(cè)。通過此操作來將本地的該分片文件作為P2P網(wǎng)絡(luò)或P2SP網(wǎng)絡(luò)中的其它下載客戶端的一個(gè)下載源,所述云存儲(chǔ)服務(wù)器作為一個(gè)穩(wěn)定源,這樣可以進(jìn)一步提高整體目標(biāo)文件的下載速度。步驟611、下載客戶端下載完目標(biāo)文件的所有分片文件后,可以按照分片文件的大小和唯一標(biāo)識(shí)計(jì)算每個(gè)分片文件在目標(biāo)文件中的偏移量,并根據(jù)該偏移量將所有分片文件組合成一個(gè)目標(biāo)文件。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種網(wǎng)絡(luò)資源文件的離線下載系統(tǒng),其特征在于,包括:下載客戶端、離線任務(wù)管理服務(wù)器、離線下載服務(wù)器、云存儲(chǔ)服務(wù)器、文件切割分片服務(wù)器,其中: 所述下載客戶端用于發(fā)起離線下載任務(wù)請(qǐng)求,并從所述云存儲(chǔ)服務(wù)器下載已經(jīng)完成離線下載的分片文件; 所述離線任務(wù)管理服務(wù)器用于管理離線下載過程,向文件切割分片服務(wù)器發(fā)起離線下載任務(wù)請(qǐng)求,并從所述文件切割分片服務(wù)器查詢分片文件的下載狀態(tài),在離線下載完至少一個(gè)分片文件后通知下載客戶端進(jìn)行下載; 所述文件切割分片服務(wù)器用于將請(qǐng)求離線下載的目標(biāo)文件邏輯分割為一個(gè)以上分片文件,通知離線下載服務(wù)器下載所述分片文件,并接收分片文件的下載狀態(tài); 所述離線下載服務(wù)器用于離線下載所述分片文件到云存儲(chǔ)服務(wù)器,監(jiān)測(cè)分片文件的下載狀態(tài)并同步給文件切割分片服務(wù)器。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述離線下載服務(wù)器為一個(gè)以上的離線下載服務(wù)器集群,且該系統(tǒng)進(jìn)一步包括離線下載調(diào)度服務(wù)器,用于調(diào)度離線下載服務(wù)器集群中的服務(wù)器進(jìn)行相應(yīng)文件的下載;所述離線下載服務(wù)器監(jiān)測(cè)的分片文件的下載狀態(tài)先同步給該離線下載調(diào)度服務(wù)器,再由該離線下載調(diào)度服務(wù)器同步給所述文件切割分片服務(wù)器。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,該系統(tǒng)進(jìn)一步包括:離線任務(wù)數(shù)據(jù)庫(kù)和切片狀態(tài)數(shù)據(jù)庫(kù),其中: 所述離線任務(wù)數(shù)據(jù)庫(kù)與所述離線任務(wù)管理服務(wù)器和離線下載服務(wù)器連接,用于保存離線下載過程中的下載任務(wù)和下載結(jié)果; 所述切片狀態(tài)數(shù)據(jù)庫(kù) 與所述文件切割分片服務(wù)器連接,用于保存分片文件的下載狀態(tài)信息。
4.一種網(wǎng)絡(luò)資源文件的離線下載方法,其特征在于,包括: 離線下載服務(wù)器端將請(qǐng)求離線下載的目標(biāo)文件邏輯分割為一個(gè)以上分片文件進(jìn)行離線下載,并監(jiān)測(cè)所述分片文件的下載狀態(tài);在離線下載完至少一個(gè)分片文件后通知下載客戶端進(jìn)行下載; 下載客戶端從離線下載服務(wù)器端下載所述已經(jīng)完成離線下載的分片文件。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述將請(qǐng)求離線下載的目標(biāo)文件邏輯分割為一個(gè)以上分片文件進(jìn)行離線下載,并監(jiān)測(cè)所述分片文件的下載狀態(tài)的具體方式為: 將請(qǐng)求離線下載的目標(biāo)文件在邏輯上分割為一個(gè)以上分片文件,設(shè)置每個(gè)分片文件的唯一標(biāo)識(shí),并根據(jù)每個(gè)分片文件的大小和唯一標(biāo)識(shí)確定每個(gè)分片文件在所述目標(biāo)文件中的偏移量;按照所述目標(biāo)文件的下載地址下載目標(biāo)文件,根據(jù)所述分片文件在所述目標(biāo)文件中的偏移量監(jiān)測(cè)其中每一個(gè)分片文件的離線下載狀態(tài)。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述目標(biāo)文件為統(tǒng)一資源定位符URL標(biāo)記的文件,所述設(shè)置該目標(biāo)文件每個(gè)分片文件唯一標(biāo)識(shí)的具體方法為: 計(jì)算所述目標(biāo)文件的URL的哈希HASH值,將該HASH值作為每個(gè)分片文件的唯一標(biāo)識(shí)的前一部分,每個(gè)分片文件唯一標(biāo)識(shí)的后一部分為該分片文件在該目標(biāo)文件內(nèi)的序號(hào)。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述目標(biāo)文件為ed2k鏈接標(biāo)記的文件,所述設(shè)置該目標(biāo)文件每個(gè)分片文件唯一標(biāo)識(shí)的具體方法為:計(jì)算所述目標(biāo)文件的基于文件內(nèi)容的HASH值,將該HASH值作為每個(gè)分片文件的唯一標(biāo)識(shí)的前一部分,每個(gè)分片文件唯一標(biāo)識(shí)的后一部分為該分片文件在該目標(biāo)文件內(nèi)的序號(hào)。
8.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述目標(biāo)文件為BT種子中包含的文件,所述設(shè)置該目標(biāo)文件每個(gè)分片文件唯一標(biāo)識(shí)的具體方法為: 計(jì)算所述BT種子的HASH值,將該HASH值加上目標(biāo)文件在BT種子中的序號(hào)作為該目標(biāo)文件的每個(gè)分片文件的唯一標(biāo)識(shí)的前一部分,每個(gè)分片文件唯一標(biāo)識(shí)的后一部分為該分片文件在該目標(biāo)文件內(nèi)的序號(hào)。
9.根據(jù)權(quán)利要求4所述的方法,其特征在于,該方法進(jìn)一步包括:下載客戶端從離線下載服務(wù)器端下載完目標(biāo)文件的所有分片文件后,將所有分片文件組合成一個(gè)目標(biāo)文件。
10.根據(jù)權(quán)利要求4所述的方法,其特征在于,該方法進(jìn)一步包括:下載客戶端從離線下載服務(wù)器端下載完分片文件后預(yù)覽該分片文件的內(nèi)容。
11.根據(jù)權(quán)利要求4所述的方法,其特征在于,該方法進(jìn)一步包括:所述下載客戶端在下載完畢一個(gè)分片文件后,將該分片文件的唯一標(biāo)識(shí)作為本地文件的標(biāo)記向點(diǎn)對(duì)點(diǎn)PSP網(wǎng)絡(luò)或點(diǎn)對(duì)服務(wù)器和點(diǎn)P2SP網(wǎng)絡(luò)中的追蹤服務(wù)器注冊(cè),作為所述PSP網(wǎng)絡(luò)或P2SP網(wǎng)絡(luò)中其它客戶端下載該分片文件的數(shù)據(jù)源。
12.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述離線下載服務(wù)器端通知下載客戶端下載所述分片文件的具體方法為: 離線下載服務(wù)器端將所述分片文件在離線下載服務(wù)器端的存儲(chǔ)地址通知給下載客戶端,下載客戶端根據(jù)該存儲(chǔ)地址從離線下載服務(wù)器端下載對(duì)應(yīng)的分片文件: 或者,離線下載服務(wù)器端將已離線下載的分片文件的唯一標(biāo)識(shí)和存儲(chǔ)地址發(fā)布到P2P網(wǎng)絡(luò)或P2SP網(wǎng)絡(luò)中,并將分片文件的唯一標(biāo)識(shí)通知給所述下載客戶端;所述下載客戶端通過所述分片文件的唯一標(biāo)識(shí)從所述P2P網(wǎng)絡(luò)或P2SP網(wǎng)絡(luò)獲取所述分片文件的存儲(chǔ)地址,并根據(jù)該存儲(chǔ)地址從離線下載服務(wù)器端下載對(duì)應(yīng)的分片文件。
全文摘要
本發(fā)明公開了一種網(wǎng)絡(luò)資源文件的離線下載系統(tǒng)和方法。所述系統(tǒng)包括下載客戶端、離線任務(wù)管理服務(wù)器、離線任務(wù)數(shù)據(jù)庫(kù)、離線下載服務(wù)器、云存儲(chǔ)服務(wù)器以及文件切割分片服務(wù)器和切片狀態(tài)數(shù)據(jù)庫(kù)。所述方法包括離線下載服務(wù)器端將請(qǐng)求離線下載的目標(biāo)文件邏輯分割為一個(gè)以上分片文件進(jìn)行離線下載,并監(jiān)測(cè)所述分片文件的下載狀態(tài);在離線下載完至少一個(gè)分片文件后通知下載客戶端進(jìn)行下載;下載客戶端從離線下載服務(wù)器端下載所述已經(jīng)完成離線下載的分片文件。利用本發(fā)明,可以縮短網(wǎng)絡(luò)資源文件的總體下載時(shí)間,尤其有利于大文件和超大文件的下載和分發(fā)。
文檔編號(hào)H04L29/08GK103139241SQ20111037797
公開日2013年6月5日 申請(qǐng)日期2011年11月24日 優(yōu)先權(quán)日2011年11月24日
發(fā)明者劉剛, 王福臣, 黃琰 申請(qǐng)人:騰訊科技(深圳)有限公司