專利名稱:一種下載文件的方法及文件下載系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)通信技術(shù),特別涉及一種下載文件的方法及文件下載系統(tǒng)。
背景技術(shù):
近年來(lái),隨著互聯(lián)網(wǎng)業(yè)務(wù)提供商(ISP, nternet Service Provider)對(duì)點(diǎn)對(duì)點(diǎn)(P2P,Peer to Peer)下載的封鎖,影視資源越來(lái)越集中于ISP,成為稀缺資源,而隨著大量用戶通過(guò)付費(fèi)方式從ISP獲取互聯(lián)網(wǎng)資源,使得ISP提供的互聯(lián)網(wǎng)資源下載速度越來(lái)越慢,嚴(yán)重影響了用戶的業(yè)務(wù)體驗(yàn)。為了提升用戶的業(yè)務(wù)體驗(yàn),現(xiàn)有技術(shù)提出了離線下載的概念,即用戶通過(guò)下載客戶端發(fā)送下載請(qǐng)求至下載工具的服務(wù)器,例如,離線下載服務(wù)器,服務(wù)器代理用戶先行下載,下載完成后通知用戶取回本地。這樣,由于服務(wù)器連接的用戶數(shù)較少,用戶從服務(wù)器獲取下載資源的速度將大大高于用戶從ISP獲取下載資源的速度,從而降低了用戶的等待下載時(shí)間。尤其是在需下載的資源為冷門資源、且下載速度很慢的情況下,如果用戶采用離線下載技術(shù),就可以通過(guò)下載工具的服務(wù)器代理用戶下載,在代理下載過(guò)程中,用戶可以關(guān)掉下載客戶端以節(jié)約能耗,或進(jìn)行其他工作,當(dāng)接收到服務(wù)器的資源離線下載完成通知消息后,用戶再?gòu)南螺d工具的服務(wù)器上高速下載到下載客戶端。也就是說(shuō),相對(duì)于用戶通過(guò)下載客戶端從ISP獲取下載資源的在線下載來(lái)說(shuō),通過(guò)下載工具的服務(wù)器代理進(jìn)行的離線下載,能省卻大量掛機(jī)等待的時(shí)間,并能夠避免一直占用下載客戶端的帶寬資源,從而可以利用該部分帶寬資源進(jìn)行其它業(yè)務(wù)處理,提高下載客戶端帶寬資源的利用效率。圖1為現(xiàn)有基于下載客戶端的離線下載文件的方法流程示意圖。參見(jiàn)圖1,該流程包括:步驟101,下載客戶端向離線任務(wù)管理服務(wù)器提交離線任務(wù)下載請(qǐng)求;本步驟中,下載客戶端是指具備點(diǎn)對(duì)服務(wù)器和點(diǎn)(P2SP,Peer to Server&Peer)下載能力的客戶端。用戶通過(guò)下載客戶端提交離線任務(wù)下載請(qǐng)求,離線任務(wù)可以包括一個(gè)或多個(gè)文件,對(duì)于包含多個(gè)文件的情況,作為一個(gè)整體對(duì)待。請(qǐng)求中包括離線任務(wù)信息,例如,包括待下載文件的超文本傳輸協(xié)議(HTTP,Hyper Text Transfer Protocol)鏈接信息的統(tǒng)一資源定位器(URL, Uniform Resource Locator)地址信息、電驢(eMule)鏈接信息、比特流(BT, BitTorrent)下載種子信息、或哈希分布(Magnet)協(xié)議信息。步驟102,離線任務(wù)管理服務(wù)器接收離線任務(wù)下載請(qǐng)求,確定離線任務(wù)數(shù)據(jù)庫(kù)沒(méi)有存儲(chǔ)離線任務(wù)下載請(qǐng)求對(duì)應(yīng)的文件記錄,向離線任務(wù)分發(fā)服務(wù)器輸出分發(fā)離線任務(wù)請(qǐng)求,將離線任務(wù)信息寫入離線任務(wù)數(shù)據(jù)庫(kù);本步驟中,離線任務(wù)管理服務(wù)器接受用戶提交的離線任務(wù)下載請(qǐng)求,先查詢離線任務(wù)數(shù)據(jù)庫(kù)存儲(chǔ)的文件記錄,檢測(cè)是否已經(jīng)有下載或者下載完成的該離線任務(wù)下載請(qǐng)求對(duì)應(yīng)的文件記錄,如果存儲(chǔ)有文件記錄,直接通知下載客戶端,下載客戶端根據(jù)通知,直接從云存儲(chǔ)服務(wù)器下載對(duì)應(yīng)的文件;如果沒(méi)有,將離線任務(wù)信息寫入離線任務(wù)數(shù)據(jù)庫(kù),并將離線任務(wù)下載請(qǐng)求輸出至離線任務(wù)分發(fā)服務(wù)器。
步驟103,離線任務(wù)分發(fā)服務(wù)器接收離線任務(wù)下載請(qǐng)求,依據(jù)離線下載服務(wù)器群的負(fù)載情況進(jìn)行離線任務(wù)的調(diào)度;
本步驟中,執(zhí)行任務(wù)下載的離線下載服務(wù)器可能為一個(gè)或多個(gè),稱之為離線下載服務(wù)器群,離線任務(wù)分發(fā)服務(wù)器監(jiān)測(cè)離線下載服務(wù)器群的負(fù)載情況,依據(jù)接收的離線任務(wù)下載請(qǐng)求以及離線下載服務(wù)器群的負(fù)載情況,進(jìn)行離線任務(wù)的調(diào)度。
步驟104,離線下載服務(wù)器群根據(jù)離線任務(wù)分發(fā)服務(wù)器的調(diào)度進(jìn)行云端數(shù)據(jù)下載;
本步驟中,離線下載服務(wù)器集群依據(jù)調(diào)度的資源,從離線任務(wù)數(shù)據(jù)庫(kù)中讀取離線任務(wù)信息,開始啟動(dòng)下載,從因特網(wǎng)(Internet)下載文件。
下載過(guò)程中,離線下載服務(wù)器集群可以使用自己的P2SP下載技術(shù)。
步驟105,將下載的文件同步存儲(chǔ)至云存儲(chǔ)服務(wù)器,更新離線任務(wù)分發(fā)服務(wù)器以及離線任務(wù)數(shù)據(jù)庫(kù)的文件記錄狀態(tài)信息;
本步驟中,離線下載服務(wù)器集群將下載的數(shù)據(jù)同步到云存儲(chǔ)服務(wù)器,云存儲(chǔ)服務(wù)器根據(jù)離線任務(wù)下載請(qǐng)求,為用戶設(shè)置離線任務(wù)存儲(chǔ)區(qū),存儲(chǔ)下載的離線任務(wù);同時(shí),離線下載服務(wù)器集群根據(jù)預(yù)先設(shè)置的時(shí)間周期,將離線任務(wù)下載進(jìn)度信息和中間狀態(tài)信息(例如,下載速度)輸出至離線任務(wù)分發(fā)服務(wù)器,離線任務(wù)分發(fā)服務(wù)器進(jìn)行存儲(chǔ)后,再輸出至離線任務(wù)管理服務(wù)器;以及,將離線任務(wù)下載進(jìn)度信息寫入離線任務(wù)數(shù)據(jù)庫(kù),離線任務(wù)數(shù)據(jù)庫(kù)存儲(chǔ)離線任務(wù)與下載進(jìn)度信息映射的文件記錄。
步驟106,確定離線任務(wù)下載完成,離線任務(wù)管理服務(wù)器通知下載客戶端,下載客戶端從云存儲(chǔ)服務(wù)器獲取下載的文件。
本步驟中,離線下載服務(wù)器集群實(shí)時(shí)將下載進(jìn)度和中間狀態(tài)信息上報(bào)給離線任務(wù)分發(fā)服務(wù)器,離線任務(wù)分發(fā)服務(wù)器進(jìn)行存儲(chǔ)后,再上報(bào)到離線任務(wù)管理服務(wù)器,離線任務(wù)管理服務(wù)器確定離線任務(wù)下載完成,通知下載客戶端,例如,通過(guò)郵件、短信等方式異步通知用戶離線任務(wù)下載完成的結(jié)果;當(dāng)然,用戶也可以登錄到離線任務(wù)管理服務(wù)器,查詢下載的進(jìn)度消息,當(dāng)下載進(jìn)度已完成100%時(shí),可以通過(guò)下載客戶端從云存儲(chǔ)服務(wù)器下載取回云端數(shù)據(jù),從而完成離線下載流程。
進(jìn)一步地,還可以包括:
步驟107,下載客戶端向統(tǒng)計(jì)服務(wù)器上報(bào)統(tǒng)計(jì)相關(guān)信息。
本步驟中,下載客戶端上報(bào)統(tǒng)計(jì)相關(guān)信息,以便于統(tǒng)計(jì)服務(wù)器進(jìn)行后續(xù)統(tǒng)計(jì)分析。
由上述可見(jiàn),現(xiàn)有離線下載文件的方法,具有如下有益特點(diǎn):
(I)加速下載冷門資源:離線下載可以解決冷門資源下載慢、長(zhǎng)時(shí)間掛機(jī)的問(wèn)題,利用離線下載服務(wù)器群的強(qiáng)大帶寬能力,由于離線下載服務(wù)器帶寬遠(yuǎn)大于不對(duì)稱數(shù)字用戶線(ADSL, Asymmetric Digital Subscriber Line)網(wǎng)絡(luò),因而,能夠提供大于 ADSL 網(wǎng)絡(luò)的下載速度,相比于ADSL網(wǎng)絡(luò),能夠更快地將文件下載到離線下載服務(wù)器。在下載完成后,用戶可以將文件從云存儲(chǔ)服務(wù)器上高速穩(wěn)定地下載到下載客戶端。
(2)穩(wěn)定提升下載速度:使用離線下載,由于離線下載服務(wù)器群能夠提供穩(wěn)定的下載速度,速度更快更穩(wěn)定,而如果通過(guò)下載客戶端直接下載,受限于網(wǎng)絡(luò)環(huán)境的影響,下載速度可能處于波動(dòng)狀態(tài),不可預(yù)期。
但現(xiàn)有離線下載文件的方法,離線下載服務(wù)器群需要下載完100%后,下載客戶端才能從云存儲(chǔ)服務(wù)器獲取完整下載完畢的文件,如果沒(méi)有接收到離線任務(wù)管理服務(wù)器下發(fā)的通知、或用戶查詢離線任務(wù)管理服務(wù)器存儲(chǔ)的進(jìn)度消息未到100%,則不能從云存儲(chǔ)服務(wù)器獲取下載的文件,這樣,用戶需要等待離線下載服務(wù)器下載完文件后才能對(duì)下載的文件進(jìn)行處理,文件處理效率較低,進(jìn)一步地,當(dāng)用戶獲取整個(gè)下載的文件后,可能發(fā)現(xiàn)該下載的數(shù)據(jù)文件并非自己所需的數(shù)據(jù)文件,增加了用戶的流量開銷;而且,需要占用云存儲(chǔ)服務(wù)器較多的存儲(chǔ)空間。例如,對(duì)于BT任務(wù)的處理,由于將BT種子作為任務(wù)來(lái)處理,如果選擇的任務(wù)的中間文件沒(méi)有下載完成,則該BT任務(wù)不能取回本地下載客戶端,使得已經(jīng)下載完成的文件需要繼續(xù)緩存在云存儲(chǔ)服務(wù)器,從而占用多余的磁盤中轉(zhuǎn)空間;又例如,對(duì)于大文件,如電影文件,沒(méi)有下載完成就不能取回本地下載客戶端進(jìn)行觀看,電影文件處理效率較低,降低了用戶業(yè)務(wù)體驗(yàn),而在下載完成后取回本地,如果發(fā)現(xiàn)下載的文件不清晰或者文件內(nèi)容不是自己想要的,從而浪費(fèi)了用戶的帶寬資源,增加了用戶的流量開銷;再例如,對(duì)于BT下載協(xié)議,由于BT種子文件是一個(gè)文件索引的集合,通常一個(gè)BT種子中不僅僅只包含有一個(gè)文件,其中,并不是每一個(gè)文件都是用戶需要下載的,通常情況下,用戶只需要選擇其中的部分文件下載,但現(xiàn)有離線下載文件的方法,如果用戶選擇的文件沒(méi)有下載完成,部分完成下載的文件是不能取回本地的,必須等BT種子當(dāng)中選擇的文件下載完畢后才能取回本地。發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提出一種下載文件的方法,提高文件處理效率、降低用戶流量開銷。
本發(fā)明的另一目的在于提出一種文件下載系統(tǒng),提高文件處理效率、降低用戶流量開銷。
為達(dá)到上述目的,本發(fā)明提供了一種下載文件的方法,該方法包括:
接收離線任務(wù)下載請(qǐng)求,為離線任務(wù)下載請(qǐng)求中的每一獨(dú)立文件設(shè)置文件標(biāo)識(shí);
下載離線任務(wù),以文件標(biāo)識(shí)存儲(chǔ)離線任務(wù)中下載的文件;
確定文件下載完畢,向下載客戶端輸出文件下載完畢通知消息,攜帶文件標(biāo)識(shí);
根據(jù)文件下載完畢通知消息中攜帶的文件標(biāo)識(shí)下載存儲(chǔ)的離線下載文件。
所述以文件標(biāo)識(shí)存儲(chǔ)離線任務(wù)中下載的文件包括:
設(shè)置離線任務(wù)存儲(chǔ)區(qū),并在離線任務(wù)存儲(chǔ)區(qū)中以文件標(biāo)識(shí)設(shè)置文件存儲(chǔ)區(qū),分別存儲(chǔ)離線下載的文件。
所述在接收離線任務(wù)下載請(qǐng)求之后,為離線任務(wù)下載請(qǐng)求中的每一文件設(shè)置文件標(biāo)識(shí)之前,進(jìn)一步包括:
查詢是否存儲(chǔ)有離線任務(wù)下載請(qǐng)求對(duì)應(yīng)的文件記錄,如果沒(méi)有,執(zhí)行為離線任務(wù)下載請(qǐng)求中的每一文件設(shè)置文件標(biāo)識(shí)的步驟。
進(jìn)一步包括:
根據(jù)文件下載的進(jìn)度信息更新存儲(chǔ)的離線任務(wù)下載請(qǐng)求對(duì)應(yīng)的文件記錄。
所述離線任務(wù)下載請(qǐng)求中攜帶離線任務(wù)信息,離線任務(wù)信息包括:HTTP鏈接信息、電驢鏈接信息、BT下載種子信息、或哈希分布協(xié)議信息。
進(jìn)一步包括:
將下載的統(tǒng)計(jì)相關(guān)信息上報(bào)。
所述文件標(biāo)識(shí)由離線任務(wù)的流哈希值以及離線任務(wù)中文件的序列號(hào)兩部分組成。
一種文件下載系統(tǒng),該系統(tǒng)包括:離線任務(wù)下載請(qǐng)求處理子系統(tǒng)、離線任務(wù)存儲(chǔ)子系統(tǒng)、文件記錄子系統(tǒng)以及下載客戶端,其中,
離線任務(wù)下載請(qǐng)求處理子系統(tǒng),接收離線任務(wù)下載請(qǐng)求,為離線任務(wù)下載請(qǐng)求中的每一獨(dú)立文件設(shè)置文件標(biāo)識(shí),下載離線任務(wù);
離線任務(wù)存儲(chǔ)子系統(tǒng),以文件標(biāo)識(shí)存儲(chǔ)離線任務(wù)中下載的文件;
文件記錄子系統(tǒng),以文件標(biāo)識(shí)存儲(chǔ)文件進(jìn)度信息,確定文件下載完畢,通過(guò)離線任務(wù)下載請(qǐng)求處理子系統(tǒng)向下載客戶端輸出文件下載完畢通知消息,攜帶文件標(biāo)識(shí);
下載客戶端,根據(jù)文件下載完畢通知消息中攜帶的文件標(biāo)識(shí)下載存儲(chǔ)的離線下載文件。
進(jìn)一步包括:
統(tǒng)計(jì)服務(wù)器,接收下載客戶端輸出的統(tǒng)計(jì)相關(guān)信息,進(jìn)行存儲(chǔ)。
所述離線任務(wù)下載請(qǐng)求處理子系統(tǒng)包括:離線任務(wù)管理服務(wù)器、離線任務(wù)分發(fā)服務(wù)器、離線下載代理服務(wù)器以及離線下載服務(wù)器,其中,
離線任務(wù)管理服務(wù)器,接收下載客戶端提交的離線任務(wù)下載請(qǐng)求,查詢文件記錄子系統(tǒng),如果確定不存在離線任務(wù)下載請(qǐng)求對(duì)應(yīng)的文件記錄,為離線任務(wù)中的每一獨(dú)立文件生成唯一的文件標(biāo)識(shí),輸出至文件記錄子系統(tǒng),并將攜帶文件標(biāo)識(shí)的離線任務(wù)下載請(qǐng)求輸出至離線任務(wù)分發(fā)服務(wù)器;
離線任務(wù)分發(fā)服務(wù)器,接收來(lái)自離線下載服務(wù)器的負(fù)載信息,根據(jù)離線下載服務(wù)器的負(fù)載情況以及接收的離線任務(wù)下載請(qǐng)求,為離線任務(wù)調(diào)度離線下載服務(wù)器資源;
離線下載代理服務(wù)器,分別與離線下載服務(wù)器群、離線任務(wù)分發(fā)服務(wù)器以及文件記錄子系統(tǒng)相連進(jìn)行通信,接收離線任務(wù)下載請(qǐng)求,對(duì)多文件下載進(jìn)度進(jìn)行管理;接收離線下載服務(wù)器下發(fā)的文件進(jìn)度信息,同步到離線任務(wù)分發(fā)服務(wù)器以及文件記錄子系統(tǒng);
離線下載服務(wù)器,根據(jù)離線下載代理服務(wù)器的管理,下載離線任務(wù);將從因特網(wǎng)下載完成的文件輸出至離線任務(wù)存儲(chǔ)子系統(tǒng)進(jìn)行存儲(chǔ);將文件下載進(jìn)度信息輸出至離線下載代理服務(wù)器。
所述離線任務(wù)管理服務(wù)器進(jìn)一步將離線任務(wù)的原始鏈接信息寫入文件記錄子系統(tǒng)。
所述離線任務(wù)管理服務(wù)器進(jìn)一步用于接收來(lái)自離線下載服務(wù)器的下載進(jìn)度信息并進(jìn)行存儲(chǔ)。
所述離線下載代理服務(wù)器進(jìn)一步用于監(jiān)測(cè)離線下載服務(wù)器,如果發(fā)現(xiàn)離線下載服務(wù)器輸出的文件進(jìn)度信息在預(yù)先設(shè)置的時(shí)間內(nèi)沒(méi)有變化,或者,在預(yù)先設(shè)置的時(shí)間內(nèi)沒(méi)有接收到文件進(jìn)度信息,刪除離線下載服務(wù)器的該文件下載任務(wù),同時(shí)通知離線任務(wù)分發(fā)代理向下載客戶端輸出下載失敗通知。
所述離線下載服務(wù)器進(jìn)一步用于向離線下載代理服務(wù)器進(jìn)行注冊(cè),提供磁盤空間信息以及CPU負(fù)載信息。
所述文件記錄子系統(tǒng)包括離線任務(wù)數(shù)據(jù)庫(kù)以及單文件狀態(tài)數(shù)據(jù)庫(kù),其中,
離線任務(wù)數(shù)據(jù)庫(kù),存儲(chǔ)正在下載或已下載完成的文件記錄以及離線任務(wù)信息,并將離線任務(wù)信息輸出至離線下載服務(wù)器;
單文件狀態(tài)數(shù)據(jù)庫(kù),以文件標(biāo)識(shí)存儲(chǔ)文件進(jìn)度信息,確定文件下載完畢,通過(guò)離線任務(wù)下載請(qǐng)求處理子系統(tǒng)向下載客戶端輸出文件下載完畢通知消息,攜帶文件標(biāo)識(shí)。
所述單文件狀態(tài)數(shù)據(jù)庫(kù)還用于接收來(lái)自下載客戶端或離線下載服務(wù)器的查詢請(qǐng)求,向下載客戶端或離線下載服務(wù)器返回查詢結(jié)果。
所述單文件狀態(tài)數(shù)據(jù)庫(kù)還用于下載完成的文件提供文件分片校驗(yàn)信息,以供下載客戶端校驗(yàn)下載文件的有效性。
由上述的技術(shù)方案可見(jiàn),本發(fā)明實(shí)施例提供的一種下載文件的方法及文件下載系統(tǒng),接收離線任務(wù)下載請(qǐng)求,為離線任務(wù)下載請(qǐng)求中的每一獨(dú)立文件設(shè)置文件標(biāo)識(shí);下載離線任務(wù),以文件標(biāo)識(shí)存儲(chǔ)離線任務(wù)中下載的文件;確定文件下載完畢,向下載客戶端輸出文件下載完畢通知消息,攜帶文件標(biāo)識(shí);根據(jù)文件下載完畢通知消息中攜帶的文件標(biāo)識(shí)下載存儲(chǔ)的離線下載文件。這樣,通過(guò)為離線任務(wù)下載請(qǐng)求中的每一獨(dú)立文件設(shè)置文件標(biāo)識(shí),并在確定文件下載完畢后,通知下載客戶端根據(jù)文件標(biāo)識(shí)下載存儲(chǔ)的離線下載文件并進(jìn)行處理,無(wú)需等到整個(gè)離線任務(wù)中全部文件下載完畢才能取回,提高了文件處理效率;進(jìn)一步地,用戶可以及時(shí)終止離線任務(wù)中其他還在下載的文件,有效降低了用戶流量開銷。
圖1為現(xiàn)有基于下載客戶端的離線下載文件的方法流程示意圖。
圖2為本發(fā)明實(shí)施例的文件下載方法流程示意圖。
圖3為本發(fā)明實(shí)施例的文件下載系統(tǒng)結(jié)構(gòu)示意圖。
圖4為本發(fā)明實(shí)施例基于圖3的文件下載方法具體流程示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述。
現(xiàn)有離線下載文件的方法,由于離線任務(wù)一般包括多個(gè)文件,尤其是對(duì)于BT下載,一個(gè)BT任務(wù)中包含有多個(gè)BT文件,離線下載服務(wù)器群在下載完文件后,通過(guò)離線任務(wù)分發(fā)服務(wù)器向離線任務(wù)管理服務(wù)器輸出下載進(jìn)度信息,離線任務(wù)管理服務(wù)器在確定離線任務(wù)下載進(jìn)度達(dá)到100%后,通知下載客戶端從云存儲(chǔ)服務(wù)器取回下載的文件,使得用戶不能在離線任務(wù)部分下載時(shí)執(zhí)行處理,處理效率較低,例如,對(duì)于包含多個(gè)文件的離線任務(wù),在下載其中一個(gè)文件后,實(shí)現(xiàn)邊觀看邊下載;也不能及時(shí)獲取下載的文件是否為自身所需的文件,增大了用戶的流量開銷。本發(fā)明實(shí)施例中,考慮將云端訂閱下載當(dāng)中的BT任務(wù)總體下載進(jìn)度管理與每個(gè)BT文件下載進(jìn)度控制相分離,使得BT任務(wù)中,只要有任何一個(gè)BT文件下載完成,就可以通知下載客戶端取回該BT任務(wù)中的已完成下載的BT文件,不需要等到整個(gè)BT任務(wù)全部下載完畢才能取回該BT文件,從而實(shí)現(xiàn)BT任務(wù)中以文件為粒度的邊下載邊傳輸?shù)墓δ?,即?duì)BT任務(wù)進(jìn)行單BT文件的拆分和狀態(tài)的單獨(dú)管理,在單文件粒度上實(shí)現(xiàn)邊下載邊傳輸?shù)南螺d文件的方法,即在離線下載服務(wù)器進(jìn)行離線下載文件時(shí),下載客戶端能夠?qū)崟r(shí)從云存儲(chǔ)服務(wù)器獲取已完成部分下載的文件,并進(jìn)行相應(yīng)處理。這樣,在離線任務(wù)沒(méi)有全部下載完成時(shí),也可以將已經(jīng)下載完成的文件下載到本地下載客戶端,離線下載服務(wù)器仍繼續(xù)離線下載未完成的文件,等離線下載完成后繼續(xù)下載到本地下載客戶端。
本發(fā)明實(shí)施例提出的下載文件的方法,對(duì)于包含有多個(gè)資源的BT資源來(lái)說(shuō)是相當(dāng)有用的,由于BT資源下載速度相對(duì)較慢,通過(guò)應(yīng)用本發(fā)明的方法,可以將已經(jīng)離線下載完成的資源先下到本地下載客戶端,其他的資源繼續(xù)離線下載。對(duì)于電視劇集來(lái)說(shuō),也是相當(dāng)有用的,可以將已經(jīng)離線下載完成的劇集先下到本地下載客戶端,從而實(shí)現(xiàn)邊觀看邊下載。
圖2為本發(fā)明實(shí)施例的文件下載方法流程示意圖。參見(jiàn)圖2,該流程包括:
步驟201,接收離線任務(wù)下載請(qǐng)求,為離線任務(wù)下載請(qǐng)求中的每一獨(dú)立文件設(shè)置文件標(biāo)識(shí);
本步驟中,解析離線任務(wù)下載請(qǐng)求中的離線任務(wù),將離線任務(wù)拆分為多個(gè)獨(dú)立文件并設(shè)置相應(yīng)的文件標(biāo)識(shí),例如,離線任務(wù)下載請(qǐng)求為下載電視連續(xù)劇“康熙王朝”,則將該離線任務(wù)拆分為多個(gè)文件,每個(gè)文件對(duì)應(yīng)“康熙王朝”中的一集。
在接收離線任務(wù)下載請(qǐng)求之后,為離線任務(wù)下載請(qǐng)求中的每一文件設(shè)置文件標(biāo)識(shí)之前,進(jìn)一步包括:
查詢是否存儲(chǔ)有離線任務(wù)下載請(qǐng)求對(duì)應(yīng)的文件記錄,如果沒(méi)有,執(zhí)行為離線任務(wù)下載請(qǐng)求中的每一文件設(shè)置文件標(biāo)識(shí)的步驟;如果有,按照現(xiàn)有技術(shù)流程處理,在此不再贅述。
離線任務(wù)下載請(qǐng)求中攜帶離線任務(wù)信息,離線任務(wù)信息包括:HTTP鏈接信息、電驢鏈接信息、BT下載種子信息、或哈希分布協(xié)議信息。
步驟202,下載離線任務(wù),以文件標(biāo)識(shí)存儲(chǔ)離線任務(wù)中下載的文件;
本步驟中,設(shè)置離線任務(wù)存儲(chǔ)區(qū),并在離線任務(wù)存儲(chǔ)區(qū)中以文件標(biāo)識(shí)設(shè)置文件存儲(chǔ)區(qū),分別存儲(chǔ)離線下載的文件。
步驟203,確定文件下載完畢,向下載客戶端輸出文件下載完畢通知消息,攜帶文件標(biāo)識(shí);
本步驟中,在離線任務(wù)中的每一文件下載完成后,向下載客戶端輸出文件下載完畢通知消息。
進(jìn)一步包括:
根據(jù)文件下載的進(jìn)度信息更新存儲(chǔ)的離線任務(wù)下載請(qǐng)求對(duì)應(yīng)的文件記錄。
步驟204,根據(jù)文件下載完畢通知消息中攜帶的文件標(biāo)識(shí)下載存儲(chǔ)的離線下載文件。
本步驟中,下載客戶端接收文件下載完畢通知消息,從存儲(chǔ)的文件中進(jìn)行下載。在下載客戶端讀取相應(yīng)文件后,可以將存儲(chǔ)的該文件刪除。當(dāng)然,實(shí)際應(yīng)用中,也可以將存儲(chǔ)的文件保留預(yù)先設(shè)定的時(shí)間,以便于后續(xù)用戶如果需要下載該文件,則可以直接從存儲(chǔ)區(qū)讀取。
進(jìn)一步包括:
步驟205,將下載的統(tǒng)計(jì)相關(guān)信息上報(bào)。
由上述可見(jiàn),本發(fā)明實(shí)施例的下載文件的方法,通過(guò)為離線任務(wù)下載請(qǐng)求中的每一獨(dú)立文件設(shè)置文件標(biāo)識(shí),并以文件標(biāo)識(shí)存儲(chǔ)離線下載的文件,在確定文件下載完畢后,通知下載客戶端根據(jù)文件標(biāo)識(shí)下載存儲(chǔ)的離線下載文件。這樣,將離線任務(wù)總體下載進(jìn)度管理與每個(gè)文件下載進(jìn)度控制相分離,無(wú)需等到整個(gè)離線任務(wù)中全部文件下載完畢才能取回,從而在一個(gè)文件下載完畢后,即可獲取該文件進(jìn)行處理,同時(shí)不影響其他文件的下載,提高了文件處理效率,提升了用戶的業(yè)務(wù)體驗(yàn);進(jìn)一步地,如果用戶發(fā)現(xiàn)下載的文件并非自己所需的文件,或者,下載的文件質(zhì)量較差,無(wú)法進(jìn)行處理,可以及時(shí)終止離線任務(wù)中其他還在下載的文件,有效降低了用戶流量開銷以及網(wǎng)絡(luò)開銷。
圖3為本發(fā)明實(shí)施例的文件下載系統(tǒng)結(jié)構(gòu)示意圖。參見(jiàn)圖3,該系統(tǒng)包括:離線任務(wù)下載請(qǐng)求處理子系統(tǒng)、離線任務(wù)存儲(chǔ)子系統(tǒng)、文件記錄子系統(tǒng)以及下載客戶端,其中,
離線任務(wù)下載請(qǐng)求處理子系統(tǒng),接收離線任務(wù)下載請(qǐng)求,為離線任務(wù)下載請(qǐng)求中的每一獨(dú)立文件設(shè)置文件標(biāo)識(shí),下載離線任務(wù);
離線任務(wù)存儲(chǔ)子系統(tǒng),以文件標(biāo)識(shí)存儲(chǔ)離線任務(wù)中下載的文件;
文件記錄子系統(tǒng),以文件標(biāo)識(shí)存儲(chǔ)文件進(jìn)度信息,確定文件下載完畢,通過(guò)離線任務(wù)下載請(qǐng)求處理子系統(tǒng)向下載客戶端輸出文件下載完畢通知消息,攜帶文件標(biāo)識(shí);
下載客戶端,根據(jù)文件下載完畢通知消息中攜帶的文件標(biāo)識(shí)下載存儲(chǔ)的離線下載文件。
本發(fā)明實(shí)施例中,下載客戶端對(duì)于完成的離線任務(wù),通過(guò)P2SP方式從云存儲(chǔ)服務(wù)器下載取回。
下載客戶端還用于按照預(yù)先設(shè)置的時(shí)間周期向離線任務(wù)下載請(qǐng)求處理子系統(tǒng)中的離線下載代理服務(wù)器匯報(bào)在線信息以及本地?fù)碛械馁Y源信息;通過(guò)源URL向離線任務(wù)數(shù)據(jù)庫(kù)查詢離線任務(wù)的多資源URL集合、Hash及文件校驗(yàn)信息,獲取下載離線任務(wù)所需的URL集合源(離線任務(wù)信息)。
進(jìn)一步地,下載客戶端還用于在下載過(guò)程中,確定下載完數(shù)據(jù)分片后,進(jìn)行校驗(yàn),如果發(fā)現(xiàn)分片錯(cuò)誤,向統(tǒng)計(jì)服務(wù)器上報(bào)。
該系統(tǒng)進(jìn)一步包括:
統(tǒng)計(jì)服務(wù)器,接收下載客戶端輸出的統(tǒng)計(jì)相關(guān)信息,進(jìn)行存儲(chǔ)。
其中,離線任務(wù)下載請(qǐng)求處理子系統(tǒng)包括:離線任務(wù)管理服務(wù)器、離線任務(wù)分發(fā)服務(wù)器、離線下載代理服務(wù)器以及離線下載服務(wù)器,其中,
離線任務(wù)管理服務(wù)器,接收下載客戶端提交的離線任務(wù)下載請(qǐng)求,查詢文件記錄子系統(tǒng),如果確定不存在離線任務(wù)下載請(qǐng)求對(duì)應(yīng)的文件記錄,為離線任務(wù)中的每一獨(dú)立文件生成唯一的文件標(biāo)識(shí),輸出至文件記錄子系統(tǒng),并將攜帶文件標(biāo)識(shí)的離線任務(wù)下載請(qǐng)求輸出至離線任務(wù)分發(fā)服務(wù)器;
本發(fā)明實(shí)施例中,如果下載客戶端需要取回離線下載完成的文件,離線任務(wù)管理服務(wù)器提供客戶端取回文件的入口地址,即離線任務(wù)存儲(chǔ)子系統(tǒng)的地址信息,作為下載客戶端下載的源。
較佳地,離線任務(wù)管理服務(wù)器進(jìn)一步將離線任務(wù)的原始鏈接信息寫入文件記錄子系統(tǒng)。
原始鏈接信息為離線任務(wù)的下載源信息,以BT下載為例,離線任務(wù)下載請(qǐng)求中包含BT種子文件,BT種子文件是一個(gè)文件索引的集合,通常一個(gè)BT種子中包含一個(gè)或多個(gè)BT文件。BT下載采用BT文件來(lái)確定下載源。BT文件后綴名為torrent,容量很小,通常為幾十K,在該BT文件中,存放了對(duì)應(yīng)的待下載文件的描述信息、追蹤服務(wù)器(Tracker)信息,即記錄下載用戶信息的服務(wù)器信息、文件的校驗(yàn)信息等。離線下載服務(wù)器根據(jù)文件記錄子系統(tǒng)存儲(chǔ)的原始鏈接信息來(lái)獲取下載源以進(jìn)行相關(guān)的下載操作。
較佳地,離線任務(wù)管理服務(wù)器進(jìn)一步用于接收來(lái)自離線下載服務(wù)器的下載進(jìn)度、速度信息并進(jìn)行存儲(chǔ)。
本發(fā)明實(shí)施例中,如果下載客戶端需要取回離線下載完成的文件,離線任務(wù)管理服務(wù)器提供客戶端取回文件的入口地址,作為下載客戶端下載的源。
離線任務(wù)分發(fā)服務(wù)器,接收來(lái)自離線下載服務(wù)器的負(fù)載信息,根據(jù)離線下載服務(wù)器的負(fù)載情況以及接收的離線任務(wù)下載請(qǐng)求,為離線任務(wù)調(diào)度離線下載服務(wù)器資源;
本發(fā)明實(shí)施例中,離線任務(wù)分發(fā)服務(wù)器用于動(dòng)態(tài)地將離線任務(wù)調(diào)度到不同的離線下載服務(wù)器節(jié)點(diǎn)上執(zhí)行具體的下載任務(wù)。
較佳地,離線任務(wù)分發(fā)服務(wù)器還用于對(duì)相同的離線任務(wù)下載請(qǐng)求進(jìn)行過(guò)濾,同一個(gè)離線任務(wù)下載請(qǐng)求只需要通過(guò)離線下載代理服務(wù)器向離線下載服務(wù)器發(fā)送一次,可以有效提高離線下載服務(wù)器群的處理效率,不同的用戶可以共享同一個(gè)任務(wù)的離線下載進(jìn)度信肩、O
離線下載代理服務(wù)器,分別與離線下載服務(wù)器群、離線任務(wù)分發(fā)服務(wù)器以及文件記錄子系統(tǒng)相連進(jìn)行通信,接收離線任務(wù)下載請(qǐng)求,對(duì)多文件下載進(jìn)度進(jìn)行管理;接收離線下載服務(wù)器下發(fā)的文件進(jìn)度信息,同步到離線任務(wù)分發(fā)服務(wù)器以及文件記錄子系統(tǒng)。
進(jìn)一步地,離線下載代理服務(wù)器還統(tǒng)一管理離線下載服務(wù)器無(wú)法下載的任務(wù):監(jiān)測(cè)離線下載服務(wù)器,如果發(fā)現(xiàn)離線下載服務(wù)器輸出的文件進(jìn)度信息在預(yù)先設(shè)置的時(shí)間內(nèi)沒(méi)有變化,或者,在預(yù)先設(shè)置的時(shí)間內(nèi)沒(méi)有接收到文件進(jìn)度信息,刪除離線下載服務(wù)器的該文件下載任務(wù),同時(shí)通知離線任務(wù)分發(fā)代理向下載客戶端輸出下載失敗通知,通知用戶下載失敗。
離線下載服務(wù)器,根據(jù)離線下載代理服務(wù)器的管理,下載離線任務(wù);將從因特網(wǎng)下載完成的文件輸出至離線任務(wù)存儲(chǔ)子系統(tǒng)進(jìn)行存儲(chǔ);將文件下載進(jìn)度信息輸出至離線下載代理服務(wù)器。
本發(fā)明實(shí)施例中,離線下載服務(wù)器接收離線下載代理服務(wù)器的調(diào)度,從文件記錄子系統(tǒng)中獲取離線任務(wù)對(duì)應(yīng)的鏈接信息,進(jìn)行離線任務(wù)下載;將云端(因特網(wǎng))下載完成的文件輸出至離線任務(wù)存儲(chǔ)子系統(tǒng)(云存儲(chǔ)服務(wù)器)進(jìn)行存儲(chǔ),以供下載客戶端取回;按照預(yù)先設(shè)置的時(shí)間周期,向離線下載代理服務(wù)器匯報(bào)離線下載的進(jìn)度及狀態(tài)信息;將離線下載生成的最終文件Hash結(jié)果數(shù)據(jù)寫入文件記錄子系統(tǒng)中的離線任務(wù)數(shù)據(jù)庫(kù)。
本發(fā)明實(shí)施例中,離線下載服務(wù)器群進(jìn)一步用于為離線下載完成以后下載客戶端取回離線下載的文件提供服務(wù)支持,能夠用保留的帶寬吐出用戶需要的文件。
較佳地,離線下載服務(wù)器群進(jìn)一步用于向離線下載代理服務(wù)器進(jìn)行注冊(cè),提供磁盤空間信息以及CPU負(fù)載信息,供離線任務(wù)分發(fā)服務(wù)器按照各離線下載服務(wù)器負(fù)載進(jìn)行動(dòng)態(tài)均衡的離線任務(wù)分發(fā)。
離線下載服務(wù)器群進(jìn)一步用于將離線下載生成的最終文件Hash結(jié)果數(shù)據(jù)寫入離線任務(wù)數(shù)據(jù)庫(kù)。
本發(fā)明實(shí)施例中,離線下載服務(wù)器群進(jìn)一步用于為離線下載完成以后下載客戶端取回離線下載的文件提供服務(wù)支持,能夠用保留的帶寬吐出用戶需要的文件。
本發(fā)明實(shí)施例中,離線任務(wù)存儲(chǔ)子系統(tǒng)為云存儲(chǔ)服務(wù)器。
云存儲(chǔ)服務(wù)器,以文件標(biāo)識(shí)存儲(chǔ)離線下載服務(wù)器下載完成的文件;并作為下載客戶端離線取回文件的數(shù)據(jù)源,將存儲(chǔ)的下載完成的文件輸出至下載客戶端。
較佳地,云存儲(chǔ)服務(wù)器在向下載客戶端輸出下載完成的文件后,將該下載完成的文件刪除,或者,在存儲(chǔ)預(yù)先設(shè)定的時(shí)間后刪除。
文件記錄子系統(tǒng)包括離線任務(wù)數(shù)據(jù)庫(kù)以及單文件狀態(tài)數(shù)據(jù)庫(kù),其中,
離線任務(wù)數(shù)據(jù)庫(kù),存儲(chǔ)正在下載或已下載完成的文件記錄以及離線任務(wù)信息,并將離線任務(wù)信息輸出至離線下載服務(wù)器;
本發(fā)明實(shí)施例中,離線任務(wù)信息包括:HTTP鏈接信息、電驢鏈接信息、BT下載種子信息、或哈希分布協(xié)議信息。
單文件狀態(tài)數(shù)據(jù)庫(kù),以文件標(biāo)識(shí)存儲(chǔ)文件進(jìn)度信息,確定文件下載完畢,通過(guò)離線任務(wù)下載請(qǐng)求處理子系統(tǒng)向下載客戶端輸出文件下載完畢通知消息,攜帶文件標(biāo)識(shí)。
本發(fā)明實(shí)施例中,單文件狀態(tài)數(shù)據(jù)庫(kù)分別與離線下載代理服務(wù)器以及離線任務(wù)管理服務(wù)器進(jìn)行通信,接收同步的文件下載進(jìn)度信息并以文件標(biāo)識(shí)存儲(chǔ)各文件下載進(jìn)度信肩、O
如果離線任務(wù)管理服務(wù)器沒(méi)有存儲(chǔ)文件進(jìn)度信息,還可以接收離線任務(wù)管理服務(wù)器輸出的進(jìn)度查詢請(qǐng)求,將文件進(jìn)度信息輸出。
單文件狀態(tài)數(shù)據(jù)庫(kù)對(duì)離線下載完成的文件實(shí)行單獨(dú)的任務(wù)狀態(tài)管理,記錄離線任務(wù)中各文件進(jìn)度信息,如果一個(gè)離線任務(wù)包含有多個(gè)文件,則為每個(gè)文件單獨(dú)記錄其進(jìn)度信息,在文件進(jìn)度信息達(dá)到100 %后,通知下載客戶端。
進(jìn)一步地,單文件狀態(tài)數(shù)據(jù)庫(kù)還用于接收來(lái)自下載客戶端或離線下載服務(wù)器的查詢請(qǐng)求,向下載客戶端或離線下載服務(wù)器返回查詢結(jié)果;以及,為下載完成的文件提供文件分片校驗(yàn)信息,供下載客戶端校驗(yàn)下載文件的有效性。
本發(fā)明實(shí)施例中,查詢請(qǐng)求包括流哈希值(Torrent Hash)查詢請(qǐng)求以及URL資源請(qǐng)求,其中,通過(guò)URL作為索引的入口查詢BT文件的Torrent Hash,將查詢得到的TorrentHash輸出;通過(guò)URL作為索引的入口查詢下載的多URL資源集合,將查詢得到的多URL資源集合輸出。
下面對(duì)文件標(biāo)識(shí)作進(jìn)一步說(shuō)明。
以BT種子為例,在BT種子中間對(duì)應(yīng)的每個(gè)BT文件中,都設(shè)置一個(gè)唯一的文件標(biāo)識(shí),文件標(biāo)識(shí)由兩部分構(gòu)成,共24字節(jié):一部分是BT種子中該文件唯一的流哈希值(Torrent Hash),另外一部分是BT種子中該文件的序列號(hào),4個(gè)字節(jié)。這樣,通過(guò)24字節(jié)的文件標(biāo)識(shí)可以唯一標(biāo)識(shí)BT種子中的一個(gè)文件。
如果文件標(biāo)識(shí)的第一部分相同,可以確認(rèn)這些文件屬于同一個(gè)BT種子,這樣,可以為這個(gè)BT種子的每個(gè)獨(dú)立的文件設(shè)置下載狀態(tài)(下載進(jìn)度),只要下載完成其中一個(gè)文件,就可以通知下載客戶端,使用戶通過(guò)下載客戶端啟動(dòng)從云存儲(chǔ)服務(wù)器的下載流程。
離線任務(wù)管理服務(wù)器接收到用戶發(fā)起的BT離線下載請(qǐng)求后,將BT離線下載請(qǐng)求中包含的離線任務(wù)信息保存在離線任務(wù)數(shù)據(jù)庫(kù)中,并在單文件狀態(tài)數(shù)據(jù)庫(kù)中,根據(jù)離線下載請(qǐng)求中攜帶的BT種子信息,為BT種子中用戶選擇的每個(gè)BT文件分別初始化一條BT文件記錄,離線下載服務(wù)器下載BT種子中的各BT文件,并將BT文件下載進(jìn)度上報(bào)給離線下載代理服務(wù)器,BT離線下載代理服務(wù)器將單個(gè)BT文件完成的進(jìn)度和狀態(tài)信息同步到單文件狀態(tài)數(shù)據(jù)庫(kù)或離線任務(wù)管理服務(wù)器;同時(shí),離線下載服務(wù)器將下載完成的單個(gè)BT文件同步至云存儲(chǔ)服務(wù)器,下載客戶端也可以通過(guò)查詢獲知BT文件下載完成的狀態(tài),如果此時(shí)有其他用戶添加同樣的BT種子,則其他可以直接從單文件狀態(tài)數(shù)據(jù)庫(kù)中查詢到該BT種子中各BT文件下載的進(jìn)度和狀態(tài)信息。
單文件狀態(tài)數(shù)據(jù)庫(kù)中存儲(chǔ)的BT文件的主鍵值由文件標(biāo)識(shí)(24字節(jié))構(gòu)成。與原有I個(gè)BT種子中的所有BT文件是通過(guò)Torrent Hash唯一標(biāo)識(shí)不同的是,本發(fā)明實(shí)施例中,BT種子中的每個(gè)BT文件通過(guò)24個(gè)字節(jié)來(lái)標(biāo)識(shí)。在離線下載服務(wù)器完成BT種子中的一個(gè)BT文件下載后,以BT文件為粒度,將單文件(BT文件)分片同步到云存儲(chǔ)服務(wù)器;離線任務(wù)管理服務(wù)器或單文件狀態(tài)數(shù)據(jù)庫(kù)確定BT文件下載進(jìn)度為100%,通知下載客戶端離線完成的該BT文件,下載客戶端根據(jù)通知消息攜帶的BT文件信息,啟動(dòng)從云存儲(chǔ)服務(wù)器的下載流程,同時(shí),離線下載服務(wù)器繼續(xù)BT種子中其他BT文件任務(wù)的下載。
圖4為本發(fā)明實(shí)施例基于圖3的文件下載方法具體流程示意圖。參見(jiàn)圖4,該流程包括:
步驟401,下載客戶端向離線任務(wù)管理服務(wù)器提交離線任務(wù)下載請(qǐng)求;
本步驟中,離線任務(wù)下載請(qǐng)求中包含離線任務(wù)信息,離線任務(wù)信息包括:HTTP鏈接信息、電驢鏈接信息、BT下載種子信息、或哈希分布協(xié)議信息等。
步驟402,離線任務(wù)管理服務(wù)器接收離線任務(wù)下載請(qǐng)求,確定離線任務(wù)數(shù)據(jù)庫(kù)沒(méi)有存儲(chǔ)離線任務(wù)下載請(qǐng)求對(duì)應(yīng)的文件記錄,將離線任務(wù)信息寫入離線任務(wù)數(shù)據(jù)庫(kù);
步驟403,為離線任務(wù)下載請(qǐng)求中的每一獨(dú)立文件設(shè)置文件標(biāo)識(shí);
本步驟中,文件標(biāo)識(shí)由兩部分構(gòu)成,共24字節(jié):一部分是離線任務(wù)的TorrentHash,另外一部分是離線任務(wù)中文件的序列號(hào),4個(gè)字節(jié)。
同一離線任務(wù)中,文件標(biāo)識(shí)的第一部分相同。
步驟404,將文件標(biāo)識(shí)輸出至單文件狀態(tài)數(shù)據(jù)庫(kù);
步驟405,向離線任務(wù)分發(fā)服務(wù)器輸出攜帶文件標(biāo)識(shí)的分發(fā)離線任務(wù)請(qǐng)求;
步驟406,離線任務(wù)分發(fā)服務(wù)器接收離線任務(wù)下載請(qǐng)求,依據(jù)離線下載服務(wù)器群的負(fù)載情況進(jìn)行離線任務(wù)的調(diào)度;
本步驟中,離線下載服務(wù)器通過(guò)向離線下載代理服務(wù)器進(jìn)行注冊(cè),提供磁盤空間信息以及CPU負(fù)載信息,離線任務(wù)分發(fā)服務(wù)器從離線下載代理服務(wù)器獲取各離線下載服務(wù)器的當(dāng)前資源狀態(tài),根據(jù)獲取的各離線下載服務(wù)器的當(dāng)前資源狀態(tài),按照各離線下載服務(wù)器負(fù)載進(jìn)行動(dòng)態(tài)均衡的離線任務(wù)分發(fā),動(dòng)態(tài)地將離線任務(wù)調(diào)度到不同的離線下載服務(wù)器節(jié)點(diǎn)上執(zhí)行具體的下載任務(wù)。
步驟407,將調(diào)度資源信息輸出至離線下載代理服務(wù)器;
步驟408,根據(jù)離線下載代理服務(wù)器的管理,離線下載服務(wù)器下載離線任務(wù);
步驟409,離線下載代理服務(wù)器監(jiān)測(cè)離線下載服務(wù)器;
本步驟中,如果離線下載代理服務(wù)器發(fā)現(xiàn)離線下載服務(wù)器輸出的文件進(jìn)度信息在預(yù)先設(shè)置的時(shí)間內(nèi)沒(méi)有變化,或者,在預(yù)先設(shè)置的時(shí)間內(nèi)沒(méi)有接收到文件進(jìn)度信息,刪除離線下載服務(wù)器的該文件下載任務(wù),同時(shí)通知離線任務(wù)分發(fā)代理向下載客戶端輸出下載失敗通知,通知用戶下載失敗。
步驟410,將從因特網(wǎng)下載完成的文件輸出至云存儲(chǔ)服務(wù)器進(jìn)行存儲(chǔ);
本步驟中,云存儲(chǔ)服務(wù)器以文件標(biāo)識(shí)存儲(chǔ)離線下載服務(wù)器下載完成的文件,并作為下載客戶端離線取回文件的數(shù)據(jù)源。
步驟411,按照預(yù)先設(shè)置的時(shí)間周期,將文件下載進(jìn)度信息輸出至離線下載代理服務(wù)器或離線任務(wù)數(shù)據(jù)庫(kù);
本步驟中,離線下載服務(wù)器還可以將下載時(shí)間、下載速度、下載結(jié)果、文件大小等信息進(jìn)行輸出。
步驟412,離線下載代理服務(wù)器將接收的文件下載進(jìn)度信息輸出至單文件狀態(tài)數(shù)據(jù)庫(kù)或離線任務(wù)分發(fā)服務(wù)器;
本步驟中,如果單文件狀態(tài)數(shù)據(jù)庫(kù)接收文件下載進(jìn)度信息,以文件標(biāo)識(shí)存儲(chǔ)文件進(jìn)度信息,確定文件下載完畢,向離線任務(wù)管理服務(wù)器輸出文件下載完畢通知消息,攜帶文件標(biāo)識(shí)。
步驟413,離線任務(wù)分發(fā)服務(wù)器將接收的文件下載進(jìn)度信息輸出至離線任務(wù)管理服務(wù)器;
步驟414,離線任務(wù)管理服務(wù)器接收文件下載完畢通知消息,攜帶文件標(biāo)識(shí)以及云存儲(chǔ)服務(wù)器地址信息,向下載客戶端輸出;
本步驟中,文件下載完畢通知消息既可以是離線任務(wù)管理服務(wù)器根據(jù)接收的文件下載進(jìn)度信息確定,也可以是接收離線任務(wù)數(shù)據(jù)庫(kù)輸出的文件下載完畢通知消息。
步驟415,下載客戶端從云存儲(chǔ)服務(wù)器獲取下載的文件;
本步驟中,下載客戶端根據(jù)文件下載完畢通知消息中攜帶的云存儲(chǔ)服務(wù)器地址信息,從云存儲(chǔ)服務(wù)器下載文件標(biāo)識(shí)對(duì)應(yīng)的文件,從而無(wú)需等待離線任務(wù)中所有文件都下載完畢,實(shí)現(xiàn)對(duì)文件的即時(shí)處理。例如,對(duì)于現(xiàn)在網(wǎng)上包含多個(gè)子視頻的較大的視頻下載,即使使用多源下載工具,也需要較長(zhǎng)時(shí)間,這樣,通過(guò)本發(fā)明方法,在下載完一個(gè)子視頻后,能夠預(yù)覽其中的內(nèi)容,從而實(shí)現(xiàn)邊下載邊播放,提前欣賞播放與下載兩不誤,而且,如果確定下載的子視頻片源質(zhì)量較差,就可以取消后續(xù)未下載的其他子視頻,從而節(jié)約下載時(shí)間以及帶寬,也節(jié)省了云存儲(chǔ)服務(wù)器端的空間和存儲(chǔ)資源。
步驟416,下載客戶端向統(tǒng)計(jì)服務(wù)器上報(bào)統(tǒng)計(jì)相關(guān)信息。
本步驟中,統(tǒng)計(jì)相關(guān)信息包括各URL源、下載時(shí)間、下載速度、下載結(jié)果、連通情況、文件大小等信息。統(tǒng)計(jì)服務(wù)器接收下載客戶端發(fā)送的統(tǒng)計(jì)相關(guān)信息,生成流水日志以供后續(xù)進(jìn)行統(tǒng)計(jì)分析。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換以及改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種下載文件的方法,其特征在于,該方法包括: 接收離線任務(wù)下載請(qǐng)求,為離線任務(wù)下載請(qǐng)求中的每一獨(dú)立文件設(shè)置文件標(biāo)識(shí); 下載離線任務(wù),以文件標(biāo)識(shí)存儲(chǔ)離線任務(wù)中下載的文件; 確定文件下載完畢,向下載客戶端輸出文件下載完畢通知消息,攜帶文件標(biāo)識(shí); 根據(jù)文件下載完畢通知消息中攜帶的文件標(biāo)識(shí)下載存儲(chǔ)的離線下載文件。
2.如權(quán)利要求1所述的方法,其特征在于,所述以文件標(biāo)識(shí)存儲(chǔ)離線任務(wù)中下載的文件包括: 設(shè)置離線任務(wù)存儲(chǔ)區(qū),并在離線任務(wù)存儲(chǔ)區(qū)中以文件標(biāo)識(shí)設(shè)置文件存儲(chǔ)區(qū),分別存儲(chǔ)離線下載的文件。
3.如權(quán)利要求2所述的方法,其特征在于,所述在接收離線任務(wù)下載請(qǐng)求之后,為離線任務(wù)下載請(qǐng)求中的每一文件設(shè)置文件標(biāo)識(shí)之前,進(jìn)一步包括: 查詢是否存儲(chǔ)有離線任務(wù)下載請(qǐng)求對(duì)應(yīng)的文件記錄,如果沒(méi)有,執(zhí)行為離線任務(wù)下載請(qǐng)求中的每一文件設(shè)置文件標(biāo)識(shí)的步驟。
4.如權(quán)利要求3所述的方法,其特征在于,進(jìn)一步包括: 根據(jù)文件下載的進(jìn)度信息更新存儲(chǔ)的離線任務(wù)下載請(qǐng)求對(duì)應(yīng)的文件記錄。
5.如權(quán)利要求1所述的方法,其特征在于,所述離線任務(wù)下載請(qǐng)求中攜帶離線任務(wù)信息,離線任務(wù)信息包括=HTTP鏈接信息、電驢鏈接信息、BT下載種子信息、或哈希分布協(xié)議信息。`
6.如權(quán)利要求1至5任一項(xiàng)所述的方法,其特征在于,進(jìn)一步包括: 將下載的統(tǒng)計(jì)相關(guān)信息上報(bào)。
7.如權(quán)利要求1至5任一項(xiàng)所述的方法,其特征在于,所述文件標(biāo)識(shí)由離線任務(wù)的流哈希值以及離線任務(wù)中文件的序列號(hào)兩部分組成。
8.一種文件下載系統(tǒng),其特征在于,該系統(tǒng)包括:離線任務(wù)下載請(qǐng)求處理子系統(tǒng)、離線任務(wù)存儲(chǔ)子系統(tǒng)、文件記錄子系統(tǒng)以及下載客戶端,其中, 離線任務(wù)下載請(qǐng)求處理子系統(tǒng),接收離線任務(wù)下載請(qǐng)求,為離線任務(wù)下載請(qǐng)求中的每一獨(dú)立文件設(shè)置文件標(biāo)識(shí),下載離線任務(wù); 離線任務(wù)存儲(chǔ)子系統(tǒng),以文件標(biāo)識(shí)存儲(chǔ)離線任務(wù)中下載的文件; 文件記錄子系統(tǒng),以文件標(biāo)識(shí)存儲(chǔ)文件進(jìn)度信息,確定文件下載完畢,通過(guò)離線任務(wù)下載請(qǐng)求處理子系統(tǒng)向下載客戶端輸出文件下載完畢通知消息,攜帶文件標(biāo)識(shí); 下載客戶端,根據(jù)文件下載完畢通知消息中攜帶的文件標(biāo)識(shí)下載存儲(chǔ)的離線下載文件。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,進(jìn)一步包括: 統(tǒng)計(jì)服務(wù)器,接收下載客戶端輸出的統(tǒng)計(jì)相關(guān)信息,進(jìn)行存儲(chǔ)。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述離線任務(wù)下載請(qǐng)求處理子系統(tǒng)包括:離線任務(wù)管理服務(wù)器、離線任務(wù)分發(fā)服務(wù)器、離線下載代理服務(wù)器以及離線下載服務(wù)器,其中, 離線任務(wù)管理服務(wù)器,接收下載客戶端提交的離線任務(wù)下載請(qǐng)求,查詢文件記錄子系統(tǒng),如果確定不存在離線任務(wù)下載請(qǐng)求對(duì)應(yīng)的文件記錄,為離線任務(wù)中的每一獨(dú)立文件生成唯一的文件標(biāo)識(shí),輸出至文件記錄子系統(tǒng),并將攜帶文件標(biāo)識(shí)的離線任務(wù)下載請(qǐng)求輸出至離線任務(wù)分發(fā)服務(wù)器; 離線任務(wù)分發(fā)服務(wù)器,接收來(lái)自離線下載服務(wù)器的負(fù)載信息,根據(jù)離線下載服務(wù)器的負(fù)載情況以及接收的離線任務(wù)下載請(qǐng)求,為離線任務(wù)調(diào)度離線下載服務(wù)器資源; 離線下載代理服務(wù)器,分別與離線下載服務(wù)器群、離線任務(wù)分發(fā)服務(wù)器以及文件記錄子系統(tǒng)相連進(jìn)行通信,接收離線任務(wù)下載請(qǐng)求,對(duì)多文件下載進(jìn)度進(jìn)行管理;接收離線下載服務(wù)器下發(fā)的文件進(jìn)度信息,同步到離線任務(wù)分發(fā)服務(wù)器以及文件記錄子系統(tǒng); 離線下載服務(wù)器,根據(jù)離線下載代理服務(wù)器的管理,下載離線任務(wù);將從因特網(wǎng)下載完成的文件輸出至離線任務(wù)存儲(chǔ)子系統(tǒng)進(jìn)行存儲(chǔ);將文件下載進(jìn)度信息輸出至離線下載代理服務(wù)器。
11.如權(quán)利 要求10所述的系統(tǒng),其特征在于,所述離線任務(wù)管理服務(wù)器進(jìn)一步將離線任務(wù)的原始鏈接信息寫入文件記錄子系統(tǒng)。
12.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述離線任務(wù)管理服務(wù)器進(jìn)一步用于接收來(lái)自離線下載服務(wù)器的下載進(jìn)度信息并進(jìn)行存儲(chǔ)。
13.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述離線下載代理服務(wù)器進(jìn)一步用于監(jiān)測(cè)離線下載服務(wù)器,如果發(fā)現(xiàn)離線下載服務(wù)器輸出的文件進(jìn)度信息在預(yù)先設(shè)置的時(shí)間內(nèi)沒(méi)有變化,或者,在預(yù)先設(shè)置的時(shí)間內(nèi)沒(méi)有接收到文件進(jìn)度信息,刪除離線下載服務(wù)器的該文件下載任務(wù),同時(shí)通知離線任務(wù)分發(fā)代理向下載客戶端輸出下載失敗通知。
14.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述離線下載服務(wù)器進(jìn)一步用于向離線下載代理服務(wù)器進(jìn)行注冊(cè),提供磁盤空間信息以及CPU負(fù)載信息。
15.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述文件記錄子系統(tǒng)包括離線任務(wù)數(shù)據(jù)庫(kù)以及單文件狀態(tài)數(shù)據(jù)庫(kù),其中, 離線任務(wù)數(shù)據(jù)庫(kù),存儲(chǔ)正在下載或已下載完成的文件記錄以及離線任務(wù)信息,并將離線任務(wù)信息輸出至離線下載服務(wù)器; 單文件狀態(tài)數(shù)據(jù)庫(kù),以文件標(biāo)識(shí)存儲(chǔ)文件進(jìn)度信息,確定文件下載完畢,通過(guò)離線任務(wù)下載請(qǐng)求處理子系統(tǒng)向下載客戶端輸出文件下載完畢通知消息,攜帶文件標(biāo)識(shí)。
16.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述單文件狀態(tài)數(shù)據(jù)庫(kù)還用于接收來(lái)自下載客戶端或離線下載服務(wù)器的查詢請(qǐng)求,向下載客戶端或離線下載服務(wù)器返回查詢結(jié)果O
17.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述單文件狀態(tài)數(shù)據(jù)庫(kù)還用于下載完成的文件提供文件分片校驗(yàn)信息,以供下載客戶端校驗(yàn)下載文件的有效性。
全文摘要
本發(fā)明公開了一種下載文件的方法及文件下載系統(tǒng)。該方法包括接收離線任務(wù)下載請(qǐng)求,為離線任務(wù)下載請(qǐng)求中的每一獨(dú)立文件設(shè)置文件標(biāo)識(shí);下載離線任務(wù),以文件標(biāo)識(shí)存儲(chǔ)離線任務(wù)中下載的文件;確定文件下載完畢,向下載客戶端輸出文件下載完畢通知消息,攜帶文件標(biāo)識(shí);根據(jù)文件下載完畢通知消息中攜帶的文件標(biāo)識(shí)下載存儲(chǔ)的離線下載文件。應(yīng)用本發(fā)明,可以提高文件處理效率、降低用戶流量開銷。
文檔編號(hào)H04L29/06GK103108008SQ20111035971
公開日2013年5月15日 申請(qǐng)日期2011年11月14日 優(yōu)先權(quán)日2011年11月14日
發(fā)明者劉剛, 莊慶 申請(qǐng)人:騰訊科技(深圳)有限公司