一種文件上傳的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開一種文件上傳的方法及系統(tǒng),涉及通信網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,可以在上傳文件過程中降低網(wǎng)絡(luò)資源的占用,實(shí)現(xiàn)數(shù)據(jù)的共享,加快上傳文件的速度。本發(fā)明實(shí)施例客戶端的上傳組件對(duì)待上傳文件進(jìn)行分片,獲得至少一個(gè)文件分片,計(jì)算文件分片的校驗(yàn)信息,根據(jù)從上傳邏輯服務(wù)器查詢到的存儲(chǔ)接口服務(wù)器的地址,向存儲(chǔ)接口服務(wù)器上傳文件分片;客戶端的上傳組件上傳文件分片時(shí),上傳邏輯服務(wù)器向索引接入服務(wù)器發(fā)送待上傳文件的文件標(biāo)記;根據(jù)待上傳文件的文件標(biāo)記,下載客戶端將本地保存的待上傳文件的文件分片上傳到存儲(chǔ)接口服務(wù)器。本發(fā)明實(shí)施例提供的方案適合進(jìn)行文件上傳時(shí)采用。
【專利說明】一種文件上傳的方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,尤其涉及一種文件上傳的方法及系統(tǒng)。
【背景技術(shù)】
[0002]當(dāng)需要將本地的文件上傳到云存儲(chǔ)服務(wù)器上時(shí),為了加快文件的上傳速度,可以采用點(diǎn)對(duì)點(diǎn)(Peer to Peer, P2P)技術(shù)。即將用戶待上傳文件的唯一標(biāo)識(shí)HASH和當(dāng)前正在進(jìn)行P2P網(wǎng)絡(luò)的節(jié)點(diǎn)關(guān)聯(lián),這樣其他正在下載或者已經(jīng)下載完成的P2P節(jié)點(diǎn)根據(jù)待上傳文件的HASH可以協(xié)助原始上傳節(jié)點(diǎn)上傳對(duì)應(yīng)的文件分片。在下載客戶端P2P交互數(shù)據(jù)分片時(shí),以及在存儲(chǔ)接口服務(wù)器的統(tǒng)一調(diào)度下,下載客戶端復(fù)制對(duì)應(yīng)的數(shù)據(jù)分片進(jìn)行上傳,使得加快文件的上傳進(jìn)度。
[0003]現(xiàn)有技術(shù)可以采用私有客戶端和服務(wù)器將文件上傳到云存儲(chǔ)服務(wù)器上,通過上傳邏輯服務(wù)器獲取上傳文件的接口地址,然后本地掃描文件,對(duì)文件進(jìn)行分片以及計(jì)算每個(gè)分片的校驗(yàn)信息,同時(shí)采用多線程的方式將每個(gè)分片根據(jù)接口地址上傳到存儲(chǔ)接口服務(wù)器上。校驗(yàn)信息用于在下載時(shí)校驗(yàn)獲得的數(shù)據(jù)是否正確。
[0004]發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:由于在國(guó)內(nèi)通常采用非對(duì)稱數(shù)字用戶環(huán)路(Asymmetric Digital Subscriber Line,ADSL)進(jìn)行數(shù)據(jù)傳輸,ADSL的上傳速度并不快,以及存在人為限制上傳速度,這導(dǎo)致上傳帶寬資源缺乏;另外,上傳相同文件時(shí),無法直接實(shí)現(xiàn)上傳過程中數(shù)據(jù)的共享,導(dǎo)致每個(gè)客戶端都需要單獨(dú)傳輸一部分?jǐn)?shù)據(jù),從而使得上傳文件的速度較慢。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的實(shí)施例提供一種文件上傳的方法及系統(tǒng),可以在上傳文件過程中降低網(wǎng)絡(luò)資源的占用,以及實(shí)現(xiàn)數(shù)據(jù)的共享,加快上傳文件的速度。
[0006]一方面,本發(fā)明的實(shí)施例提供一種文件上傳的方法,包括:
[0007]客戶端的上傳組件對(duì)待上傳文件進(jìn)行分片,獲得至少一個(gè)文件分片,并計(jì)算所述文件分片的校驗(yàn)信息;
[0008]所述客戶端的上傳組件根據(jù)從上傳邏輯服務(wù)器查詢到的存儲(chǔ)接口服務(wù)器的地址,向存儲(chǔ)接口服務(wù)器上傳所述文件分片;
[0009]所述客戶端的上傳組件上傳所述文件分片時(shí),所述上傳邏輯服務(wù)器向索引接入服務(wù)器發(fā)送所述待上傳文件的文件標(biāo)記,所述待上傳文件的文件標(biāo)記由所述文件分片的校驗(yàn)信息構(gòu)成;
[0010]當(dāng)下載客戶端接收到索引接入服務(wù)器發(fā)送的上傳所述待上傳文件的信息時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,所述下載客戶端將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器。
[0011]在本發(fā)明另一實(shí)施例中,在所述當(dāng)下載客戶端接收到索引接入服務(wù)器發(fā)送的上傳所述待上傳文件的信息時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,所述下載客戶端將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器之前,還包括:
[0012]所述下載客戶端向所述索引接入服務(wù)器發(fā)送查詢信息,所述查詢信息為查詢已經(jīng)下載完成或者正在下載的所述待上傳文件的文件分片的任一第一節(jié)點(diǎn);
[0013]所述索引接入服務(wù)器向索引應(yīng)用服務(wù)器發(fā)送所述查詢信息;
[0014]所述索引應(yīng)用服務(wù)器根據(jù)所述查詢信息查詢到第一節(jié)點(diǎn),并通過索引接入服務(wù)器發(fā)送給所述下載客戶端;
[0015]所述下載客戶端從所述第一節(jié)點(diǎn)上獲取所述待上傳文件的文件分片。
[0016]在本發(fā)明另一實(shí)施例中,所述下載客戶端本地保存的所述待上傳文件的文件分片包括從所述第一節(jié)點(diǎn)上獲取所述待上傳文件的文件分片,以及所述下載客戶端已經(jīng)下載的所述待上傳文件的文件分片。
[0017]在本發(fā)明另一實(shí)施例中,所述當(dāng)下載客戶端接收到索引接入服務(wù)器發(fā)送的上傳所述待上傳文件的信息時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,所述下載客戶端將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器包括:
[0018]當(dāng)下載客戶端查詢第一節(jié)點(diǎn)時(shí),或者所述下載客戶端與所述索引接入服務(wù)器心跳上報(bào)共享的所述待上傳文件的文件標(biāo)記時(shí),所述索引接入服務(wù)器向所述下載客戶端發(fā)送上傳所述待上傳文件的信息,以及發(fā)送所述存儲(chǔ)接口服務(wù)器的地址;
[0019]當(dāng)下載客戶端接收到索引接入服務(wù)器發(fā)送的上傳所述待上傳文件的信息以及所述存儲(chǔ)接口服務(wù)器的地址時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,所述下載客戶端將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器。
[0020]在本發(fā)明另一實(shí)施例中,所述客戶端的上傳組件根據(jù)從上傳邏輯服務(wù)器查詢到的存儲(chǔ)接口服務(wù)器的地址,向存儲(chǔ)接口服務(wù)器上傳所述文件分片之前,還包括:
[0021]所述客戶端的上傳組件向上傳邏輯服務(wù)器查詢所述待上傳文件是否完成上傳;
[0022]所述上傳邏輯服務(wù)器通過存儲(chǔ)索引服務(wù)器查詢所述待上傳文件是否完成上傳;
[0023]當(dāng)所述待上傳文件已經(jīng)完成上傳時(shí),則所述存儲(chǔ)索引服務(wù)器通過所述上傳邏輯服務(wù)器向所述客戶端的上傳組件發(fā)送所述待上傳文件已經(jīng)上傳完成的消息;
[0024]當(dāng)所述待上傳文件未上傳時(shí),則所述存儲(chǔ)索引服務(wù)器向所述上傳邏輯服務(wù)器返回所述待上傳文件未上傳的消息;所述上傳邏輯服務(wù)器接收到所述待上傳文件未上傳完成的消息時(shí),向所述客戶端的上傳組件發(fā)送存儲(chǔ)接口服務(wù)器的地址。
[0025]在本發(fā)明另一實(shí)施例中,當(dāng)所述待上傳文件完成上傳一部分時(shí),所述上傳邏輯服務(wù)器根據(jù)記錄的未上傳完畢的所述待上傳文件的續(xù)傳信息,繼續(xù)上傳所述待上傳文件的文件分片。
[0026]在本發(fā)明另一實(shí)施例中,在所述當(dāng)下載客戶端接收到索引接入服務(wù)器發(fā)送的上傳所述待上傳文件的信息時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,所述下載客戶端將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器之后,還包括:
[0027]當(dāng)所述待上傳文件的文件分片完成上傳時(shí),所述存儲(chǔ)接口服務(wù)器校驗(yàn)上傳的所述待上傳文件的文件分片;
[0028]當(dāng)校驗(yàn)成功時(shí),則將所述待上傳文件的文件分片寫入云存儲(chǔ)服務(wù)器;
[0029]向所述客戶端的上傳組件以及所述下載客戶端發(fā)送所述待上傳文件完成上傳的消息;[0030]將所述待上傳文件的文件標(biāo)記、所述待上傳文件的大小、所述待上傳文件的名稱寫入存儲(chǔ)索引服務(wù)器,以便供所述上傳邏輯服務(wù)器進(jìn)行查詢。
[0031]在本發(fā)明另一實(shí)施例中,當(dāng)校驗(yàn)不成功時(shí),根據(jù)所述待上傳文件的文件標(biāo)識(shí),所述客戶端的上傳組件或者所述下載客戶端重新上傳所述待上傳文件中上傳錯(cuò)誤的文件分片。
[0032]另一方面,本發(fā)明實(shí)施例還提供一種文件上傳的系統(tǒng),包括:
[0033]客戶端的上傳組件,用于對(duì)待上傳文件進(jìn)行分片,獲得至少一個(gè)文件分片,并計(jì)算所述文件分片的校驗(yàn)信息;以及根據(jù)從上傳邏輯服務(wù)器查詢到的存儲(chǔ)接口服務(wù)器的地址,向存儲(chǔ)接口服務(wù)器上傳所述文件分片;
[0034]所述上傳邏輯服務(wù)器,用于在所述客戶端的上傳組件上傳所述文件分片時(shí),向索引接入服務(wù)器發(fā)送所述待上傳文件的文件標(biāo)記,所述待上傳文件的文件標(biāo)記由所述文件分片的校驗(yàn)信息構(gòu)成;
[0035]索引接入服務(wù)器,用于接收所述上傳邏輯服務(wù)器發(fā)送的所述待上傳文件的文件標(biāo)記,以及在下載客戶端查詢節(jié)點(diǎn)時(shí),或者所述下載客戶端與所述索引接入服務(wù)器心跳上報(bào)共享的所述待上傳文件的文件標(biāo)記時(shí)向所述下載客戶端發(fā)送上傳所述待上傳文件的信息;
[0036]所述下載客戶端,用于當(dāng)所述下載客戶端接收到索引接入服務(wù)器發(fā)送的上傳所述待上傳文件的信息時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器;
[0037]存儲(chǔ)接口服務(wù)器,用于接收所述客戶端的上傳組件和/或所述下載客戶端發(fā)送的所述待上傳文件的文件分片。
[0038]在本發(fā)明另一實(shí)施例中,所述下載客戶端,還用于向所述索引接入服務(wù)器發(fā)送查詢信息,所述查詢信息為查詢已經(jīng)下載完成或者正在下載的所述待上傳文件的文件分片的任一第一節(jié)點(diǎn);
[0039]所述索引接入服務(wù)器,用于向索引應(yīng)用服務(wù)器發(fā)送所述查詢信息;
[0040]所述索引應(yīng)用服務(wù)器,用于根據(jù)所述查詢信息查詢到第一節(jié)點(diǎn),并通過索引接入服務(wù)器發(fā)送給所述下載客戶端;
[0041]所述下載客戶端,還用于從所述第一節(jié)點(diǎn)上獲取所述待上傳文件的文件分片。
[0042]在本發(fā)明另一實(shí)施例中,所述下載客戶端本地保存的所述待上傳文件的文件分片包括從所述第一節(jié)點(diǎn)上獲取所述待上傳文件的文件分片,以及所述下載客戶端已經(jīng)下載的所述待上傳文件的文件分片。
[0043]在本發(fā)明另一實(shí)施例中,所述索引接入服務(wù)器,還用于當(dāng)下載客戶端查詢第一節(jié)點(diǎn)時(shí),或者所述下載客戶端與所述索引接入服務(wù)器心跳上報(bào)共享的所述待上傳文件的文件標(biāo)記時(shí),向所述下載客戶端發(fā)送上傳所述待上傳文件的信息,以及發(fā)送所述存儲(chǔ)接口服務(wù)器的地址;
[0044]所述下載客戶端,用于當(dāng)下載客戶端接收到索引接入服務(wù)器發(fā)送的上傳所述待上傳文件的信息以及所述存儲(chǔ)接口服務(wù)器的地址時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器。
[0045]在本發(fā)明另一實(shí)施例中,所述客戶端的上傳組件,還用于向上傳邏輯服務(wù)器查詢所述待上傳文件是否完成上傳;[0046]所述上傳邏輯服務(wù)器,用于通過存儲(chǔ)索引服務(wù)器查詢所述待上傳文件是否完成上傳;
[0047]所述存儲(chǔ)索引服務(wù)器,用于查詢所述待上傳文件是否完成上傳;以及,當(dāng)所述待上傳文件已經(jīng)完成上傳時(shí),向所述上傳邏輯服務(wù)器發(fā)送所述待上傳文件已經(jīng)上傳完成的消息;以及,當(dāng)所述待上傳文件未上傳時(shí),向所述上傳邏輯服務(wù)器發(fā)送所述待上傳文件未上傳的消息;
[0048]所述上傳邏輯服務(wù)器,用于當(dāng)所述待上傳文件已經(jīng)完成上傳時(shí),向所述客戶端的上傳組件發(fā)送所述待上傳文件已經(jīng)上傳完成的消息;以及當(dāng)所述待上傳文件未上傳時(shí),向所述客戶端的上傳組件發(fā)送存儲(chǔ)接口服務(wù)器的地址;以及當(dāng)所述待上傳文件完成上傳一部分時(shí),根據(jù)記錄的未上傳完畢的所述待上傳文件的續(xù)傳信息,繼續(xù)上傳所述待上傳文件的文件分片。
[0049]在本發(fā)明另一實(shí)施例中,所述存儲(chǔ)接口服務(wù)器,還用于:
[0050]當(dāng)所述待上傳文件的文件分片完成上傳時(shí),校驗(yàn)上傳的所述待上傳文件的文件分片;
[0051]當(dāng)校驗(yàn)成功時(shí),則將所述待上傳文件的文件分片寫入云存儲(chǔ)服務(wù)器;
[0052]向所述客戶端的上傳組件以及所述下載客戶端發(fā)送所述待上傳文件完成上傳的消息;
[0053]將所述待上傳文件的文件標(biāo)記、所述待上傳文件的大小、所述待上傳文件的名稱寫入存儲(chǔ)索引服務(wù)器,以便供所述上傳邏輯服務(wù)器進(jìn)行查詢。
[0054]在本發(fā)明另一實(shí)施例中,所述客戶端的上傳組件或者所述下載客戶端,還用于當(dāng)校驗(yàn)不成功時(shí),根據(jù)所述待上傳文件的文件標(biāo)識(shí),重新上傳所述待上傳文件中上傳錯(cuò)誤的文件分片。
[0055]本發(fā)明實(shí)施例提供一種文件上傳的方法及系統(tǒng),通過客戶端的上傳組件對(duì)待上傳文件進(jìn)行分片,獲得至少一個(gè)文件分片,并計(jì)算所述文件分片的校驗(yàn)信息;所述客戶端的上傳組件根據(jù)從上傳邏輯服務(wù)器查詢到的存儲(chǔ)接口服務(wù)器的地址,向存儲(chǔ)接口服務(wù)器上傳所述文件分片;所述客戶端的上傳組件上傳所述文件分片時(shí),所述上傳邏輯服務(wù)器向索引接入服務(wù)器發(fā)送所述待上傳文件的文件標(biāo)記,所述待上傳文件的文件標(biāo)記由所述文件分片的校驗(yàn)信息構(gòu)成;當(dāng)下載客戶端接收到索引接入服務(wù)器發(fā)送的上傳所述待上傳文件的信息時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,所述下載客戶端將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器。
[0056]與現(xiàn)有技術(shù)中上傳文件時(shí),由于在國(guó)內(nèi)通常采用非對(duì)稱數(shù)字用戶環(huán)路ADSL進(jìn)行數(shù)據(jù)傳輸,ADSL的上傳速度并不快,以及存在人為限制上傳速度,這導(dǎo)致上傳帶寬資源缺乏;另外,上傳相同文件時(shí),無法直接實(shí)現(xiàn)上傳過程中數(shù)據(jù)的共享,導(dǎo)致每個(gè)客戶端都需要單獨(dú)傳輸一部分?jǐn)?shù)據(jù),從而使得上傳文件的速度較慢相比,本發(fā)明實(shí)施例提供的方案可以將用戶上傳的文件和P2P下載技術(shù)關(guān)聯(lián)起來,在用戶上傳文件時(shí),使得下載客戶端將自己本地保存的待上傳文件進(jìn)行上傳,使得降低網(wǎng)絡(luò)資源的占用,以及實(shí)現(xiàn)數(shù)據(jù)的共享,加快上傳文件的速度。
【專利附圖】
【附圖說明】[0057]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0058]圖1為本發(fā)明實(shí)施例1提供的一種文件上傳的方法的流程圖;
[0059]圖2為本發(fā)明實(shí)施例1提供的另一種文件上傳的方法的流程圖;
[0060]圖3為本發(fā)明實(shí)施例1提供的客戶端的上傳組件從上傳邏輯服務(wù)器查詢到的存儲(chǔ)接口服務(wù)器的地址的流程圖;
[0061]圖4為本發(fā)明實(shí)施例2提供的一種文件上傳的系統(tǒng)的示意圖;
[0062]圖5為本發(fā)明實(shí)施例2提供的另一種文件上傳的系統(tǒng)的示意圖。
【具體實(shí)施方式】
[0063]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0064]實(shí)施例1
[0065]本發(fā)明實(shí)施例提供一種文件上傳的方法,如圖1所示,該方法包括:
[0066]步驟101,客戶端的上傳組件對(duì)待上傳文件進(jìn)行分片,獲得至少一個(gè)文件分片,并計(jì)算所述文件分片的校驗(yàn)信息;
[0067]其中,客戶端的上傳組件可以Axtive控件實(shí)現(xiàn),為安裝在瀏覽器的插件或者擴(kuò)展,從本地上傳文件分片到存儲(chǔ)接口服務(wù)器,并且支持?jǐn)帱c(diǎn)續(xù)傳文件。斷點(diǎn)續(xù)傳即在上傳文件的過程中中斷上傳,此時(shí)僅完成文件的部分上傳,之后再上傳此文件時(shí),可以繼續(xù)上傳未上傳的部分文件。
[0068]在本實(shí)施例中,客戶端的上傳組件對(duì)待上傳文件進(jìn)行分片,并計(jì)算所述文件分片的校驗(yàn)信息,具體包括:按照待上傳文件的大小對(duì)文件進(jìn)行分片,比如一個(gè)文件大小為T,按照分片大小P(T),將文件劃分為N= (T+P(T)-1) /P(T)片。其中,分片大小通常和文件大小有關(guān),例如分片后的文件可以是2Μ,1Μ,512ΚΒ,最小通常是32ΚΒ。當(dāng)待上傳文件非常大時(shí),比如超過10G,為了避免分片太多,通常總的分片數(shù)目就固定,分片大小就不固定,即按照分片數(shù)目對(duì)待上傳文件進(jìn)行分片。
[0069]每個(gè)獨(dú)立的分片作為一個(gè)小文件計(jì)算文件內(nèi)容的唯一標(biāo)識(shí)HASH,這樣每個(gè)分片對(duì)應(yīng)一組HASH,把這一組HASH稱為文件校驗(yàn)信息。在下載過程中,每得到一個(gè)完整分片的數(shù)據(jù),就可以通過計(jì)算HASH和校驗(yàn)HASH比較確定下載的數(shù)據(jù)是否正確。
[0070]步驟102,所述客戶端的上傳組件根據(jù)從上傳邏輯服務(wù)器查詢到的存儲(chǔ)接口服務(wù)器的地址,向存儲(chǔ)接口服務(wù)器上傳所述文件分片;
[0071]其中,上傳邏輯服務(wù)器,用于與客戶端的上傳組件通訊,并判斷客戶端的上傳組件上傳的文件HASH在存儲(chǔ)索引服務(wù)器中是否存在,當(dāng)客戶端的上傳組件上傳的文件HASH在存儲(chǔ)索引服務(wù)器中不存在時(shí),則向客戶端的上傳組件返回需要上傳文件的存儲(chǔ)接口服務(wù)器的地址;當(dāng)客戶端的上傳組件上傳的文件HASH在存儲(chǔ)索引服務(wù)器中存在時(shí),則所述上傳邏輯服務(wù)器向所述客戶端的上傳組件發(fā)送所述待上傳文件已經(jīng)上傳完成的消息,不再需要重新上傳。
[0072]步驟103,所述客戶端的上傳組件上傳所述文件分片時(shí),所述上傳邏輯服務(wù)器向索引接入服務(wù)器發(fā)送所述待上傳文件的文件標(biāo)記,所述待上傳文件的文件標(biāo)記由所述文件分片的校驗(yàn)信息構(gòu)成;
[0073]在本步驟中,客戶端的上傳組件上傳所述文件分片時(shí),所述上傳邏輯服務(wù)器向索引接入服務(wù)器發(fā)送所述待上傳文件的文件標(biāo)記,目的為使得上傳邏輯服務(wù)器和索引接入服務(wù)器之間建立文件上傳HASH的同步,使得下載客戶端可以通過索引接入服務(wù)器了解當(dāng)前待上傳文件的HASH,以便下載客戶端可以在存儲(chǔ)接口服務(wù)器的調(diào)度下上傳自己本地保存的一部分文件分片,以加快文件上傳的速度。
[0074]步驟104,當(dāng)下載客戶端接收到索引接入服務(wù)器發(fā)送的上傳所述待上傳文件的信息時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,所述下載客戶端將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器。
[0075]進(jìn)一步的,存儲(chǔ)接口服務(wù)器接收到客戶端的上傳組件和/或至少一個(gè)下載客戶端發(fā)送的待上傳文件的文件分片時(shí),寫入到云存儲(chǔ)服務(wù)器中。
[0076]需要說明的是,由于上傳通道的帶寬是有限的,通常一個(gè)機(jī)器上需要連接網(wǎng)絡(luò)訪問的軟件不止一個(gè)。如果一個(gè)軟件占用上傳通道的帶寬過多,會(huì)影響其它軟件的上傳。通過本發(fā)明可以將上傳文件的一部分工作讓其他下載客戶端協(xié)助完成,相當(dāng)于降低了客戶端的上傳組件對(duì)網(wǎng)絡(luò)資源的占用。
[0077]本發(fā)明實(shí)施例提供一種文件上傳的方法,通過將用戶待上傳的文件和P2P下載技術(shù)關(guān)聯(lián)起來,在用戶上傳待上傳文件時(shí),下載客戶端將自己本地保存的待上傳文件進(jìn)行上傳,使得降低網(wǎng)絡(luò)資源的占用,以及實(shí)現(xiàn)數(shù)據(jù)的共享,加快上傳文件的速度。
[0078]本發(fā)明實(shí)施例提供另一種文件上傳的方法,如圖2所示,該方法包括:
[0079]步驟201,客戶端的上傳組件對(duì)待上傳文件進(jìn)行分片,獲得至少一個(gè)文件分片,并計(jì)算所述文件分片的校驗(yàn)信息;
[0080]在本實(shí)施例中,客戶端的上傳組件可以Axtive控件實(shí)現(xiàn),為安裝在瀏覽器的插件或者擴(kuò)展,從本地上傳文件分片到存儲(chǔ)接口服務(wù)器,并且支持?jǐn)帱c(diǎn)續(xù)傳文件。斷點(diǎn)續(xù)傳即在上傳文件的過程中中斷上傳,此時(shí)僅完成文件的部分上傳,之后再上傳此文件時(shí),可以繼續(xù)上傳未上傳的部分文件。
[0081]在本實(shí)施例中,客戶端的上傳組件對(duì)待上傳文件進(jìn)行分片,并計(jì)算所述文件分片的校驗(yàn)信息,具體包括:按照待上傳文件的大小對(duì)文件進(jìn)行分片,比如一個(gè)文件大小為T,按照分片大小P(T),將文件劃分為N = (T+P(T)-1)/P(T)片。其中,分片大小通常和文件大小有關(guān),例如分片后的文件可以是2Μ,1Μ,512ΚΒ,最小通常是32ΚΒ。當(dāng)待上傳文件非常大時(shí),比如超過10G,為了避免分片太多,通??偟姆制瑪?shù)目就固定,分片大小就不固定,即按照分片數(shù)目對(duì)待上傳文件進(jìn)行分片。
[0082]每個(gè)獨(dú)立的分片作為一個(gè)小文件計(jì)算文件內(nèi)容的唯一標(biāo)識(shí)HASH,這樣每個(gè)分片對(duì)應(yīng)一組HASH,把這一組HASH稱為文件校驗(yàn)信息。在下載過程中,每得到一個(gè)完整分片的數(shù)據(jù),就可以通過計(jì)算HASH和校驗(yàn)HASH比較確定下載的數(shù)據(jù)是否正確。
[0083]步驟202,所述客戶端的上傳組件從上傳邏輯服務(wù)器查詢到的存儲(chǔ)接口服務(wù)器的地址;
[0084]本步驟中,客戶端的上傳組件從上傳邏輯服務(wù)器查詢到的存儲(chǔ)接口服務(wù)器的地址具體包括以下步驟,如圖3所示:
[0085]步驟301,所述客戶端的上傳組件向上傳邏輯服務(wù)器查詢所述待上傳文件是否完成上傳;
[0086]步驟302,所述上傳邏輯服務(wù)器通過存儲(chǔ)索引服務(wù)器查詢所述待上傳文件是否完成上傳;
[0087]在本步驟中,存儲(chǔ)索引服務(wù)器,用于接收上傳邏輯服務(wù)器發(fā)送的查詢消息,其中,查詢消息中用于查詢所述待上傳文件是否完成上傳,所述查詢消息中包括所述待上傳文件的文件標(biāo)記,所述待上傳文件的文件標(biāo)記由所述文件分片的校驗(yàn)信息構(gòu)成。存儲(chǔ)索引服務(wù)器中保存所有云存儲(chǔ)戶服務(wù)器上存在文件的HASH、各文件的大小、各文件的上傳時(shí)間以及文件名稱等文件信息。其中,存儲(chǔ)索引服務(wù)器中保存的文件信息由存儲(chǔ)接口服務(wù)器在將完成上傳的文件寫入云存儲(chǔ)戶服務(wù)器后發(fā)送的。
[0088]步驟303,當(dāng)所述待上傳文件已經(jīng)完成上傳時(shí),則所述存儲(chǔ)索引服務(wù)器通過所述上傳邏輯服務(wù)器向所述客戶端的上傳組件發(fā)送所述待上傳文件已經(jīng)上傳完成的消息;
[0089]上傳邏輯服務(wù)器通過將待上傳文件的HASH與其中保存的各個(gè)文件的HASH進(jìn)行比較,當(dāng)上傳邏輯服務(wù)器中保存的各個(gè)文件的HASH中存在與待上傳文件的HASH相同的文件時(shí),則說明待上傳文件在之前已經(jīng)完成上傳,此時(shí)直接進(jìn)行秒傳輸,即上傳邏輯服務(wù)器向所述客戶端的上傳組件發(fā)送所述待上傳文件已經(jīng)上傳完成的消息。
[0090]步驟304,當(dāng)所述待上傳文件未上傳時(shí),則所述存儲(chǔ)索引服務(wù)器向所述上傳邏輯服務(wù)器返回所述待上傳文件未上傳的消息;
[0091]上傳邏輯服務(wù)器通過將待上傳文件的HASH與其中保存的各個(gè)文件的HASH進(jìn)行比較,當(dāng)上傳邏輯服務(wù)器中保存的各個(gè)文件的HASH中不存在與待上傳文件的HASH相同的文件時(shí),則說明待上傳文件未完成上傳,
[0092]步驟305,所述上傳邏輯服務(wù)器接收到所述待上傳文件未上傳完成的消息時(shí),向所述客戶端的上傳組件發(fā)送存儲(chǔ)接口服務(wù)器的地址;
[0093]此時(shí)上傳邏輯服務(wù)器向所述客戶端的上傳組件發(fā)送存儲(chǔ)接口服務(wù)器的地址,以便客戶端的上傳組件根據(jù)存儲(chǔ)接口服務(wù)器的地址上傳待上傳文件的文件分片。
[0094]需要說明的是,當(dāng)所述待上傳文件完成上傳一部分時(shí),所述上傳邏輯服務(wù)器根據(jù)記錄的未上傳完畢的所述待上傳文件的續(xù)傳信息,繼續(xù)上傳所述待上傳文件的文件分片。
[0095]客戶端的上傳組件可以支持?jǐn)帱c(diǎn)續(xù)傳文件,即待上傳文件完成上傳一部分中斷時(shí),在客戶端的上傳組件重新啟動(dòng)上傳之前,會(huì)向上傳邏輯服務(wù)器查詢已經(jīng)上傳了多少內(nèi)容,上傳邏輯服務(wù)器會(huì)記錄未上傳完畢的所述待上傳文件的續(xù)傳信息,然后,客戶端的上傳組件根據(jù)此續(xù)傳信息,繼續(xù)上傳所述待上傳文件的文件分片。
[0096]在客戶端的上傳組件從上傳邏輯服務(wù)器查詢到的存儲(chǔ)接口服務(wù)器的地址之后,繼續(xù)執(zhí)行后續(xù)步驟。
[0097]步驟203,所述客戶端的上傳組件根據(jù)從上傳邏輯服務(wù)器查詢到的存儲(chǔ)接口服務(wù)器的地址,向存儲(chǔ)接口服務(wù)器上傳所述文件分片;
[0098]步驟204,所述存儲(chǔ)接口服務(wù)器接收所述客戶端的上傳組件上傳的文件分片,并將上傳成功的文件分片寫入到云存儲(chǔ)戶服務(wù)器;
[0099]存儲(chǔ)接口服務(wù)器每接收到一個(gè)完整的文件分片,可以計(jì)算此文件分片的校驗(yàn)信息,校驗(yàn)上傳的文件分片是否正確。當(dāng)上傳的文件分片正確時(shí),將此文件分片寫入到云存儲(chǔ)戶服務(wù)器,并且向所述客戶端的上傳組件以及所述下載客戶端發(fā)送所述待上傳文件完成上傳的消息;進(jìn)一步的,將所述待上傳文件的文件標(biāo)記、所述待上傳文件的大小、所述待上傳文件的名稱寫入存儲(chǔ)索引服務(wù)器,以便供所述上傳邏輯服務(wù)器進(jìn)行查詢。當(dāng)校驗(yàn)不成功時(shí),根據(jù)所述待上傳文件的文件標(biāo)識(shí),所述客戶端的上傳組件或者所述下載客戶端重新上傳所述待上傳文件中上傳錯(cuò)誤的文件分片。其中,校驗(yàn)文件分片可以采用現(xiàn)有技術(shù)進(jìn)行校驗(yàn),本發(fā)明實(shí)施例不限制校驗(yàn)文件分片的方式。
[0100]需要說明的是,由于上傳通道的帶寬是有限的,通常一個(gè)機(jī)器上需要連接網(wǎng)絡(luò)訪問的軟件不止一個(gè)。如果一個(gè)軟件占用上傳通道的帶寬過多,會(huì)影響其它軟件的上傳。通過本發(fā)明可以將上傳文件的一部分工作讓其他下載客戶端協(xié)助完成,相當(dāng)于降低了客戶端的上傳組件對(duì)網(wǎng)絡(luò)資源的占用。
[0101]步驟205,所述客戶端的上傳組件上傳所述文件分片時(shí),所述上傳邏輯服務(wù)器向索引接入服務(wù)器發(fā)送所述待上傳文件的文件標(biāo)記;
[0102]在本步驟中,所述待上傳文件的文件標(biāo)記由所述文件分片的校驗(yàn)信息構(gòu)成。
[0103]客戶端的上傳組件上傳所述文件分片時(shí),所述上傳邏輯服務(wù)器向索弓丨接入服務(wù)器發(fā)送所述待上傳文件的文件標(biāo)記的目的為,使得上傳邏輯服務(wù)器和索引接入服務(wù)器之間建立文件上傳HASH的同步,使得下載客戶端可以通過索引接入服務(wù)器了解當(dāng)前待上傳文件的HASH,以便下載客戶端可以在存儲(chǔ)接口服務(wù)器的調(diào)度下上傳自己本地保存的一部分文件分片,以加快文件上傳的速度。
[0104]步驟206,所述下載客戶端向所述索引接入服務(wù)器發(fā)送查詢信息,所述查詢信息為查詢已經(jīng)下載完成或者正在下載的所述待上傳文件的文件分片的任一第一節(jié)點(diǎn)PEER ;
[0105]下載客戶端可以從多源索引服務(wù)器查詢希望下載的資源和文件校驗(yàn)信息,即查詢多資源統(tǒng)一資源定位符(Uniform/Universal Resource Locator, UR)集合,然后從查詢到的URL集合中下載文件分片,需要說明的是,這里的文件分片為下載客戶端的用戶希望下載的文件的文件分片,當(dāng)然,此文件分片也可以為下載客戶端的用戶下載客戶端的上傳組件待上傳的文件的文件分片。
[0106]多源索引服務(wù)器接收到下載客戶端發(fā)送的下載查詢信息之后,向多源索引數(shù)據(jù)庫(kù)查詢是否存在下載客戶端希望下載的資源。
[0107]多源索引服務(wù)器用于接收下載客戶端通過URL或者URL本身的HASH作為索引的入口查詢文件分片HASH或者該文件所在文件集合的唯一標(biāo)識(shí);以及接收客戶端通過URL或者URL本身的HASH作為索引的入口查詢下載的多URL資源集合;還用于提供文件分片校驗(yàn)信息或者文件集合的統(tǒng)一分片校驗(yàn)信息,供下載客戶端校驗(yàn)下載數(shù)據(jù)的有效性。多源索引數(shù)據(jù)庫(kù)中保存文件分片的校驗(yàn)信息,可以為多源索引服務(wù)器提供多資源查詢服務(wù)。多源索弓I數(shù)據(jù)庫(kù)還用于保存URL到HASHl,HASH2到URL集合,即URL是一個(gè)字符串,也可以作為輸入,計(jì)算一個(gè)HASHl,即通過URI獲得一個(gè)對(duì)應(yīng)的HASHl ;后面的HASH2是文件內(nèi)容的HASH2,HASHl與HASH2可以——對(duì)應(yīng)。反過來,一個(gè)文件內(nèi)容的HASH2可能有不同的鏈接URL,這個(gè)為一對(duì)多的關(guān)系,所以稱為HASH2到URL的集合。[0108]在本步驟中,下載客戶端向索引接入服務(wù)器查詢是否存在PEER,PEER為與下載客戶端已經(jīng)下載完成或者正在下載的同一文件的下載客戶端。下載客戶端與PEER為P2P。
[0109]索引接入服務(wù)器,用于與下載客戶端維持節(jié)點(diǎn)上報(bào)、心跳、添加、刪除文件的通訊。心跳指下載客戶端和索引接入服務(wù)器的周期性通訊,通過這種方式確保節(jié)點(diǎn)在線,如果超于一定時(shí)間索引接入服務(wù)器沒有收到客戶端發(fā)送的心跳報(bào)文,就認(rèn)為客戶端下線了。
[0110]步驟207,所述索引接入服務(wù)器向索引應(yīng)用服務(wù)器發(fā)送所述查詢信息;
[0111]需要說明的是,索引應(yīng)用服務(wù)器還用于接收索引接入服務(wù)器發(fā)送的節(jié)點(diǎn)信息注冊(cè),可以維持某一個(gè)文件在線PEER的信息別表。
[0112]步驟208,所述索引應(yīng)用服務(wù)器根據(jù)所述查詢信息查詢到第一 PEER,并通過索引接入服務(wù)器發(fā)送給所述下載客戶端;
[0113]索引應(yīng)用TrackerApp服務(wù)器接收索引接入服務(wù)器發(fā)送的查詢消息,根據(jù)查詢消息實(shí)現(xiàn)具體PEER選擇算法和策略,為索引接入服務(wù)器提供PEER查詢服務(wù)。
[0114]步驟209,所述下載客戶端從所述第一 PEER上獲取所述待上傳文件的文件分片;
[0115]下載客戶端從所述第一 PEER上獲取所述待上傳文件的文件分片即基于PPP協(xié)議進(jìn)行點(diǎn)與點(diǎn)之間的數(shù)據(jù)傳輸。
[0116]步驟210,當(dāng)下載客戶端接收到索引接入服務(wù)器發(fā)送的上傳所述待上傳文件的信息時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,所述下載客戶端將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器;
[0117]在本步驟中,所述下載客戶端本地保存的所述待上傳文件的文件分片包括從所述第一 PEER上獲取所述待上傳文件的文件分片,以及所述下載客戶端由多源索引服務(wù)器以及多源索引數(shù)據(jù)庫(kù)中已經(jīng)下載完成的所述待上傳文件的文件分片。
[0118]進(jìn)一步的,當(dāng)下載客戶端查詢第一 PEER時(shí),或者所述下載客戶端與所述索引接入服務(wù)器心跳上報(bào)共享的所述待上傳文件的文件標(biāo)記時(shí),所述索引接入服務(wù)器向所述下載客戶端發(fā)送上傳所述待上傳文件的信息,以及發(fā)送所述存儲(chǔ)接口服務(wù)器的地址;
[0119]當(dāng)下載客戶端接收到索引接入服務(wù)器發(fā)送的上傳所述待上傳文件的信息以及所述存儲(chǔ)接口服務(wù)器的地址時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,所述下載客戶端將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器。
[0120]當(dāng)下載客戶端將待上傳文件的文件分片上傳到存儲(chǔ)接口服務(wù)器上之后,即繼續(xù)執(zhí)行步驟204。
[0121]本發(fā)明實(shí)施例提供一種文件上傳的方法,通過在客戶端的上傳組件上傳文件時(shí),其他正在下載或者已經(jīng)下載完成的P2P的節(jié)點(diǎn)可以協(xié)助客戶端的上傳組件上傳對(duì)應(yīng)的文件分片,在下載客戶端交換文件分片的時(shí)候,在存儲(chǔ)接口服務(wù)器的統(tǒng)一調(diào)度下,復(fù)制對(duì)應(yīng)的文件分片多上傳一份,從而整體效果上突破本地上傳物理帶寬的限制,在上傳文件過程中降低網(wǎng)絡(luò)資源的占用,以及實(shí)現(xiàn)數(shù)據(jù)的共享,加快上傳文件的速度。
[0122]實(shí)施例2
[0123]本發(fā)明實(shí)施例提供一種文件上傳的系統(tǒng),如圖4所示,該系統(tǒng)包括:客戶端的上傳組件401,上傳邏輯服務(wù)器402,索引接入服務(wù)器403,下載客戶端404,存儲(chǔ)接口服務(wù)器405 ;
[0124]客戶端的上傳組件401,用于對(duì)待上傳文件進(jìn)行分片,獲得至少一個(gè)文件分片,并計(jì)算所述文件分片的校驗(yàn)信息;以及根據(jù)從上傳邏輯服務(wù)器查詢到的存儲(chǔ)接口服務(wù)器的地址,向存儲(chǔ)接口服務(wù)器上傳所述文件分片;
[0125]所述上傳邏輯服務(wù)器402,用于在所述客戶端的上傳組件上傳所述文件分片時(shí),向索引接入服務(wù)器發(fā)送所述待上傳文件的文件標(biāo)記,所述待上傳文件的文件標(biāo)記由所述文件分片的校驗(yàn)信息構(gòu)成;
[0126]索引接入服務(wù)器403,用于接收所述上傳邏輯服務(wù)器402發(fā)送的所述待上傳文件的文件標(biāo)記,以及在下載客戶端404查詢節(jié)點(diǎn)PEER時(shí),或者所述下載客戶端404與所述索引接入服務(wù)器403心跳上報(bào)共享的所述待上傳文件的文件標(biāo)記時(shí)向所述下載客戶端404發(fā)送上傳所述待上傳文件的信息;
[0127]所述下載客戶端404,用于當(dāng)所述下載客戶端接收到索引接入服務(wù)器403發(fā)送的上傳所述待上傳文件的信息時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器。
[0128]存儲(chǔ)接口服務(wù)器405,用于接收所述客戶端的上傳組件401和/或所述下載客戶端404發(fā)送的所述待上傳文件的文件分片。
[0129]需要說明的是,由于上傳通道的帶寬是有限的,通常一個(gè)機(jī)器上需要連接網(wǎng)絡(luò)訪問的軟件不止一個(gè)。如果一個(gè)軟件占用上傳通道的帶寬過多,會(huì)影響其它軟件的上傳。通過本發(fā)明可以將上傳文件的一部分工作讓其他下載客戶端協(xié)助完成,相當(dāng)于降低了客戶端的上傳組件對(duì)網(wǎng)絡(luò)資源的占用。
[0130]進(jìn)一步的,如圖5所示,所述系統(tǒng)還包括:存儲(chǔ)索引服務(wù)器406 ;
[0131]在所述客戶端的上傳組件401根據(jù)從上傳邏輯服務(wù)器402查詢到的存儲(chǔ)接口服務(wù)器405的地址,向存儲(chǔ)接口服務(wù)器上傳所述文件分片之前,所述客戶端的上傳組件401,還用于向上傳邏輯服務(wù)器402查詢所述待上傳文件是否完成上傳;
[0132]所述上傳邏輯服務(wù)器402,用于通過存儲(chǔ)索引服務(wù)器406查詢所述待上傳文件是否完成上傳;
[0133]所述存儲(chǔ)索引服務(wù)器406,用于查詢所述待上傳文件是否完成上傳;以及,當(dāng)所述待上傳文件已經(jīng)完成上傳時(shí),向所述上傳邏輯服務(wù)器發(fā)送所述待上傳文件已經(jīng)上傳完成的消息;以及,當(dāng)所述待上傳文件未上傳時(shí),向所述上傳邏輯服務(wù)器發(fā)送所述待上傳文件未上傳的消息;
[0134]當(dāng)所述待上傳文件已經(jīng)完成上傳時(shí),所述上傳邏輯服務(wù)器402,用于向所述客戶端的上傳組件401發(fā)送所述待上傳文件已經(jīng)上傳完成的消息;以及當(dāng)所述待上傳文件未上傳時(shí),向所述客戶端的上傳組件401發(fā)送存儲(chǔ)接口服務(wù)器405的地址;以及當(dāng)所述待上傳文件完成上傳一部分時(shí),根據(jù)記錄的未上傳完畢的所述待上傳文件的續(xù)傳信息,繼續(xù)上傳所述待上傳文件的文件分片。
[0135]進(jìn)一步的,如圖5所示,所述系統(tǒng)還包括索引應(yīng)用服務(wù)器407,多源索引服務(wù)器408,多源索引數(shù)據(jù)庫(kù)409 ;
[0136]在所述當(dāng)所述下載客戶端404接收到索引接入服務(wù)器403發(fā)送的上傳所述待上傳文件的信息時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,所述下載客戶端404將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器之前,所述下載客戶端404向所述索引接入服務(wù)器403發(fā)送查詢信息,所述查詢信息為查詢已經(jīng)下載完成或者正在下載的所述待上傳文件的文件分片的任一第一 PEER ;
[0137]所述索引接入服務(wù)器403向索引應(yīng)用服務(wù)器407發(fā)送所述查詢信息;
[0138]所述索引應(yīng)用服務(wù)器407根據(jù)所述查詢信息查詢到第一 PEER,并通過索引接入服務(wù)器403發(fā)送給所述下載客戶端404 ;
[0139]所述下載客戶端404從所述第一 PEER上獲取所述待上傳文件的文件分片。
[0140]所述下載客戶端404本地保存的所述待上傳文件的文件分片包括從所述第一PEER上獲取所述待上傳文件的文件分片,以及所述下載客戶端404已經(jīng)下載的所述待上傳文件的文件分片。其中,所述下載客戶端404已經(jīng)下載的所述待上傳文件的文件分片具體為:下載客戶端可以從多源索引服務(wù)器408查詢希望下載的資源和文件校驗(yàn)信息,即查詢多資源統(tǒng)一資源定位符(Uniform/Universal Resource Locator, UR)集合,然后從查詢到的URL集合中下載文件分片,需要說明的是,這里的文件分片為下載客戶端的用戶希望下載的文件的文件分片,當(dāng)然,此文件分片也可以為下載客戶端的用戶下載客戶端的上傳組件待上傳的文件的文件分片。
[0141]多源索引服務(wù)器408接收到下載客戶端發(fā)送的下載查詢信息之后,向多源索引數(shù)據(jù)庫(kù)409查詢是否存在下載客戶端希望下載的資源。
[0142]多源索引服務(wù)器408用于接收下載客戶端通過URL或者URL本身的HASH作為索引的入口查詢文件分片HASH或者該文件所在文件集合的唯一標(biāo)識(shí);以及接收客戶端通過URL或者URL本身的HASH作為索引的入口查詢下載的多URL資源集合;還用于提供文件分片校驗(yàn)信息或者文件集合的統(tǒng)一分片校驗(yàn)信息,供下載客戶端校驗(yàn)下載數(shù)據(jù)的有效性。多源索引數(shù)據(jù)庫(kù)409中保存文件分片的校驗(yàn)信息,可以為多源索引服務(wù)器408提供多資源查詢服務(wù)。多源索引數(shù)據(jù)庫(kù)409還用于保存URL到HASHl,HASH2到URL集合,即URL是一個(gè)字符串,也可以作為輸入,計(jì)算一個(gè)HASHl,即通過URI獲得一個(gè)對(duì)應(yīng)的HASHl ;后面的HASH2是文件內(nèi)容的HASH2,HASHl與HASH2可以——對(duì)應(yīng)。反過來,一個(gè)文件內(nèi)容的HASH2可能有不同的鏈接URL,這個(gè)為一對(duì)多的關(guān)系,所以稱為HASH2到URL的集合。
[0143]進(jìn)一步的,所述下載客戶端404,用于當(dāng)所述下載客戶端404接收到索引接入服務(wù)器403發(fā)送的上傳所述待上傳文件的信息時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器,具體包括:當(dāng)下載客戶端404查詢第一 PEER時(shí),或者所述下載客戶端404與所述索引接入服務(wù)器403心跳上報(bào)共享的所述待上傳文件的文件標(biāo)記時(shí),所述索引接入服務(wù)器403向所述下載客戶端404發(fā)送上傳所述待上傳文件的信息,以及發(fā)送所述存儲(chǔ)接口服務(wù)器405的地址;
[0144]當(dāng)下載客戶端404接收到索引接入服務(wù)器403發(fā)送的上傳所述待上傳文件的信息以及所述存儲(chǔ)接口服務(wù)器405的地址時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,所述下載客戶端404將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器405。
[0145]進(jìn)一步的,所述系統(tǒng)還包括:云存儲(chǔ)服務(wù)器410 ;
[0146]在所述當(dāng)所述下載客戶端404接收到索引接入服務(wù)器403發(fā)送的上傳所述待上傳文件的信息時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,所述下載客戶端404將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器之后,當(dāng)所述待上傳文件的文件分片完成上傳時(shí),所述存儲(chǔ)接口服務(wù)器405校驗(yàn)上傳的所述待上傳文件的文件分片;
[0147]當(dāng)校驗(yàn)成功時(shí),所述存儲(chǔ)接口服務(wù)器405則將所述待上傳文件的文件分片寫入云存儲(chǔ)服務(wù)器410 ;
[0148]所述存儲(chǔ)接口服務(wù)器405向所述客戶端的上傳組件401以及所述下載客戶端404發(fā)送所述待上傳文件完成上傳的消息;
[0149]所述存儲(chǔ)接口服務(wù)器405將所述待上傳文件的文件標(biāo)記、所述待上傳文件的大小、所述待上傳文件的名稱寫入存儲(chǔ)索引服務(wù)器406,以便供所述上傳邏輯服務(wù)器進(jìn)行查詢。
[0150]當(dāng)校驗(yàn)不成功時(shí),根據(jù)所述待上傳文件的文件標(biāo)識(shí),所述客戶端的上傳組件401或者所述下載客戶端404重新上傳所述待上傳文件中上傳錯(cuò)誤的文件分片。
[0151]本發(fā)明實(shí)施例提供一種文件上傳的系統(tǒng),通過客戶端的上傳組件向存儲(chǔ)接口服務(wù)器上傳待上傳文件的文件分片時(shí),下載客戶端將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器,使得在上傳文件過程中降低網(wǎng)絡(luò)資源的占用,以及實(shí)現(xiàn)數(shù)據(jù)的共享,加快上傳文件的速度。
[0152]以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種文件上傳的方法,其特征在于,包括: 客戶端的上傳組件對(duì)待上傳文件進(jìn)行分片,獲得至少一個(gè)文件分片,并計(jì)算所述文件分片的校驗(yàn)信息; 所述客戶端的上傳組件根據(jù)從上傳邏輯服務(wù)器查詢到的存儲(chǔ)接口服務(wù)器的地址,向存儲(chǔ)接口服務(wù)器上傳所述文件分片; 所述客戶端的上傳組件上傳所述文件分片時(shí),所述上傳邏輯服務(wù)器向索引接入服務(wù)器發(fā)送所述待上傳文件的文件標(biāo)記,所述待上傳文件的文件標(biāo)記由所述文件分片的校驗(yàn)信息構(gòu)成; 當(dāng)下載客戶端接收到索引接入服務(wù)器發(fā)送的上傳所述待上傳文件的信息時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,所述下載客戶端將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述當(dāng)下載客戶端接收到索引接入服務(wù)器發(fā)送的上傳所述待上傳文件的信息時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,所述下載客戶端將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器之前,還包括: 所述下載客戶端向所述索引接入服務(wù)器發(fā)送查詢信息,所述查詢信息為查詢已經(jīng)下載完成或者正在下載的所述待上傳文件的文件分片的任一第一節(jié)點(diǎn);所述索引接入服務(wù)器向索引應(yīng)用服務(wù)器發(fā)送所述查詢信 息; 所述索引應(yīng)用服務(wù)器根據(jù)所述查詢信息查詢到第一節(jié)點(diǎn),并通過索引接入服務(wù)器發(fā)送給所述下載客戶端; 所述下載客戶端從所述第一節(jié)點(diǎn)上獲取所述待上傳文件的文件分片。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述下載客戶端本地保存的所述待上傳文件的文件分片包括從所述第一節(jié)點(diǎn)上獲取所述待上傳文件的文件分片,以及所述下載客戶端已經(jīng)下載的所述待上傳文件的文件分片。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述當(dāng)下載客戶端接收到索引接入服務(wù)器發(fā)送的上傳所述待上傳文件的信息時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,所述下載客戶端將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器包括: 當(dāng)下載客戶端查詢第一節(jié)點(diǎn)時(shí),或者所述下載客戶端與所述索引接入服務(wù)器心跳上報(bào)共享的所述待上傳文件的文件標(biāo)記時(shí),所述索引接入服務(wù)器向所述下載客戶端發(fā)送上傳所述待上傳文件的信息,以及發(fā)送所述存儲(chǔ)接口服務(wù)器的地址; 當(dāng)下載客戶端接收到索引接入服務(wù)器發(fā)送的上傳所述待上傳文件的信息以及所述存儲(chǔ)接口服務(wù)器的地址時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,所述下載客戶端將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器。
5.根據(jù)權(quán)利要求1-4中任一項(xiàng)所述的方法,其特征在于,所述客戶端的上傳組件根據(jù)從上傳邏輯服務(wù)器查詢到的存儲(chǔ)接口服務(wù)器的地址,向存儲(chǔ)接口服務(wù)器上傳所述文件分片之前,還包括: 所述客戶端的上傳組件向上傳邏輯服務(wù)器查詢所述待上傳文件是否完成上傳; 所述上傳邏輯服務(wù)器通過存儲(chǔ)索引服務(wù)器查詢所述待上傳文件是否完成上傳; 當(dāng)所述待上傳文件已經(jīng)完成上傳時(shí),則所述存儲(chǔ)索引服務(wù)器通過所述上傳邏輯服務(wù)器向所述客戶端的上傳組件發(fā)送所述待上傳文件已經(jīng)上傳完成的消息;當(dāng)所述待上傳文件未上傳時(shí),則所述存儲(chǔ)索引服務(wù)器向所述上傳邏輯服務(wù)器返回所述待上傳文件未上傳的消息;所述上傳邏輯服務(wù)器接收到所述待上傳文件未上傳完成的消息時(shí),向所述客戶端的上傳組件發(fā)送存儲(chǔ)接口服務(wù)器的地址。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,當(dāng)所述待上傳文件完成上傳一部分時(shí),所述上傳邏輯服務(wù)器根據(jù)記錄的未上傳完畢的所述待上傳文件的續(xù)傳信息,繼續(xù)上傳所述待上傳文件的文件分片。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,在所述當(dāng)下載客戶端接收到索引接入服務(wù)器發(fā)送的上傳所述待上傳文件的信息時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,所述下載客戶端將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器之后,還包括: 當(dāng)所述待上傳文件的文件分片完成上傳時(shí),所述存儲(chǔ)接口服務(wù)器校驗(yàn)上傳的所述待上傳文件的文件分片; 當(dāng)校驗(yàn)成功時(shí),則將所述待上傳文件的文件分片寫入云存儲(chǔ)服務(wù)器; 向所述客戶端的上傳組件以及所述下載客戶端發(fā)送所述待上傳文件完成上傳的消息; 將所述待上傳文件的文件標(biāo)記、所述待上傳文件的大小、所述待上傳文件的名稱寫入存儲(chǔ)索引服務(wù)器,以便供所述上傳邏輯服務(wù)器進(jìn)行查詢。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于, 當(dāng)校驗(yàn)不成功時(shí),根據(jù)所述待上傳文件的文件標(biāo)識(shí),所述客戶端的上傳組件或者所述下載客戶端重新上傳所述待上傳文件中上傳錯(cuò)誤的文件分片。
9.一種文件上傳的系`統(tǒng),其特征在于,包括: 客戶端的上傳組件,用于對(duì)待上傳文件進(jìn)行分片,獲得至少一個(gè)文件分片,并計(jì)算所述文件分片的校驗(yàn)信息;以及根據(jù)從上傳邏輯服務(wù)器查詢到的存儲(chǔ)接口服務(wù)器的地址,向存儲(chǔ)接口服務(wù)器上傳所述文件分片; 所述上傳邏輯服務(wù)器,用于在所述客戶端的上傳組件上傳所述文件分片時(shí),向索引接入服務(wù)器發(fā)送所述待上傳文件的文件標(biāo)記,所述待上傳文件的文件標(biāo)記由所述文件分片的校驗(yàn)信息構(gòu)成; 索引接入服務(wù)器,用于接收所述上傳邏輯服務(wù)器發(fā)送的所述待上傳文件的文件標(biāo)記,以及在下載客戶端查詢節(jié)點(diǎn)時(shí),或者所述下載客戶端與所述索引接入服務(wù)器心跳上報(bào)共享的所述待上傳文件的文件標(biāo)記時(shí)向所述下載客戶端發(fā)送上傳所述待上傳文件的信息; 所述下載客戶端,用于當(dāng)所述下載客戶端接收到索引接入服務(wù)器發(fā)送的上傳所述待上傳文件的信息時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器; 存儲(chǔ)接口服務(wù)器,用于接收所述客戶端的上傳組件和/或所述下載客戶端發(fā)送的所述待上傳文件的文件分片。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于, 所述下載客戶端,還用于向所述索引接入服務(wù)器發(fā)送查詢信息,所述查詢信息為查詢已經(jīng)下載完成或者正在下載的所述待上傳文件的文件分片的任一第一節(jié)點(diǎn); 所述索引接入服務(wù)器,用于向索引應(yīng)用服務(wù)器發(fā)送所述查詢信息; 所述索引應(yīng)用服務(wù)器,用于根據(jù)所述查詢信息查詢到第一節(jié)點(diǎn),并通過索引接入服務(wù)器發(fā)送給所述下載客戶端; 所述下載客戶端,還用于從所述第一節(jié)點(diǎn)上獲取所述待上傳文件的文件分片。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于, 所述下載客戶端本地保存的所述待上傳文件的文件分片包括從所述第一節(jié)點(diǎn)上獲取所述待上傳文件的文件分片,以及所述下載客戶端已經(jīng)下載的所述待上傳文件的文件分片。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于, 所述索引接入服務(wù)器,還用于當(dāng)下載客戶端查詢第一節(jié)點(diǎn)時(shí),或者所述下載客戶端與所述索引接入服務(wù)器心跳上報(bào)共享的所述待上傳文件的文件標(biāo)記時(shí),向所述下載客戶端發(fā)送上傳所述待上傳文件的信息,以及發(fā)送所述存儲(chǔ)接口服務(wù)器的地址; 所述下載客戶端,用于當(dāng)下載客戶端接收到索引接入服務(wù)器發(fā)送的上傳所述待上傳文件的信息以及所述存儲(chǔ)接口服務(wù)器的地址時(shí),根據(jù)所述待上傳文件的文件標(biāo)記,將本地保存的所述待上傳文件的文件分片上傳到所述存儲(chǔ)接口服務(wù)器。
13.根據(jù)權(quán)利要求9-12中任一項(xiàng)所述的系統(tǒng),其特征在于, 所述客戶端的上傳組件,還用于向上傳邏輯服務(wù)器查詢所述待上傳文件是否完成上傳; 所述上傳邏輯服務(wù)器,用于通過存儲(chǔ)索引服務(wù)器查詢所述待上傳文件是否完成上傳;所述存儲(chǔ)索引服務(wù)器,用于查詢所述待上傳文件是否完成上傳;以及,當(dāng)所述待上傳文件已經(jīng)完成上傳時(shí),向所述上傳邏輯服務(wù)器發(fā)送所述待上傳文件已經(jīng)上傳完成的消息;以及,當(dāng)所述待上傳文件未上傳時(shí),向所述上傳邏輯服務(wù)器發(fā)送所述待上傳文件未上傳的消息; 所述上傳邏輯服務(wù)器,用于當(dāng)所述待上傳文件已經(jīng)完成上傳時(shí),向所述客戶端的上傳組件發(fā)送所述待上傳文件已經(jīng)上傳完成的消息;以及當(dāng)所述待上傳文件未上傳時(shí),向所述客戶端的上傳組件發(fā)送存儲(chǔ)接口服務(wù)器的地址;以及當(dāng)所述待上傳文件完成上傳一部分時(shí),根據(jù)記錄的未上傳完畢的所述待上傳文件的續(xù)傳信息,繼續(xù)上傳所述待上傳文件的文件分片。
14.根據(jù)權(quán)利要求12所述的系統(tǒng),其特征在于,所述存儲(chǔ)接口服務(wù)器,還用于: 當(dāng)所述待上傳文件的文件分片完成上傳時(shí),校驗(yàn)上傳的所述待上傳文件的文件分片; 當(dāng)校驗(yàn)成功時(shí),則將所述待上傳文件的文件分片寫入云存儲(chǔ)服務(wù)器; 向所述客戶端的上傳組件以及所述下載客戶端發(fā)送所述待上傳文件完成上傳的消息; 將所述待上傳文件的文件標(biāo)記、所述待上傳文件的大小、所述待上傳文件的名稱寫入存儲(chǔ)索引服務(wù)器,以便供所述上傳邏輯服務(wù)器進(jìn)行查詢。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其特征在于, 所述客戶端的上傳組件或者所述下載客戶端,還用于當(dāng)校驗(yàn)不成功時(shí),根據(jù)所述待上傳文件的文件標(biāo)識(shí),重新上傳所述待上傳文件中上傳錯(cuò)誤的文件分片。
【文檔編號(hào)】G06F17/30GK103731451SQ201210387535
【公開日】2014年4月16日 申請(qǐng)日期:2012年10月12日 優(yōu)先權(quán)日:2012年10月12日
【發(fā)明者】劉剛 申請(qǐng)人:騰訊科技(深圳)有限公司