一種云上傳方法及系統(tǒng)、調(diào)度設(shè)備、客戶端的制作方法
【專利摘要】本發(fā)明的云上傳方法及系統(tǒng)、調(diào)度設(shè)備、客戶端,方法為:調(diào)度中心接收至少一個(gè)客戶端發(fā)送的文件上傳請(qǐng)求,該請(qǐng)求包括待文件指紋;根據(jù)文件指紋查詢數(shù)據(jù)中心,判斷待上傳文件的狀態(tài):若為未完成上傳,則從數(shù)據(jù)中心獲取待上傳文件的當(dāng)前上傳進(jìn)度及分片信息,并為每個(gè)客戶端分配一個(gè)上傳節(jié)點(diǎn),將當(dāng)前上傳進(jìn)度、分片信息及分配的上傳節(jié)點(diǎn)發(fā)送給對(duì)應(yīng)的客戶端;每個(gè)客戶端執(zhí)行:顯示當(dāng)前上傳進(jìn)度;根據(jù)分片信息通過上傳節(jié)點(diǎn)進(jìn)行文件片上傳;每個(gè)上傳節(jié)點(diǎn)執(zhí)行:根據(jù)客戶端上傳的文件片更新數(shù)據(jù)中心的當(dāng)前上傳進(jìn)度;讀取數(shù)據(jù)中心匯總后的更新進(jìn)度發(fā)送給客戶端顯示;若為已完成上傳,則向客戶端返回上傳成功的信息??s短了文件上傳時(shí)間,提高了云上傳效率。
【專利說明】一種云上傳方法及系統(tǒng)、調(diào)度設(shè)備、客戶端
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,具體涉及一種云上傳方法及系統(tǒng)、調(diào)度設(shè)備、客戶端?!颈尘凹夹g(shù)】
[0002]隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,云服務(wù)以其可靠性和通用性被人們廣泛接受和使用,用戶可根據(jù)自身的需求使用云服務(wù),如進(jìn)行云查詢、云存儲(chǔ)、云計(jì)算、云安全等。
[0003]目前,各大云服務(wù)提供商都能為用戶提供文件上傳服務(wù),以此實(shí)現(xiàn)文件的云存儲(chǔ),方便用戶隨時(shí)隨地進(jìn)行文件下載?,F(xiàn)有技術(shù)中,為了提高文件上傳的效率,主要采用以下兩種手段:
[0004]一是,為了使文件上傳適應(yīng)于互聯(lián)網(wǎng)不穩(wěn)定的環(huán)境,通過在客戶端前端瀏覽器內(nèi)置插件的方式,實(shí)現(xiàn)了文件的斷點(diǎn)續(xù)傳。也就是說,如果文件在上傳過程中中斷,無需再次重新提交上傳,而是可以接續(xù)中斷前的進(jìn)度繼續(xù)上傳,如此就可節(jié)省時(shí)間成本,提高上傳效率。
[0005]二是,為了充分使用客戶端的上行帶寬,通過文件分片的方式,實(shí)現(xiàn)了多片文件同時(shí)上傳,這也在很大程度上節(jié)省了上傳時(shí)間,提高了上傳效率。
[0006]雖然現(xiàn)有技術(shù)通過文件分片以及斷點(diǎn)續(xù)傳的方式在一定程度上提高了上傳效率,但是,考慮到互聯(lián)網(wǎng)本身所具有的特性,上傳文件的客戶端用戶之間的信息互通性較差,這就可能會(huì)出現(xiàn)多個(gè)用戶同時(shí)上傳一個(gè)文件的情況,尤其是當(dāng)前的熱門文件,這就會(huì)導(dǎo)致上傳資源的浪費(fèi);另外,針對(duì)同一個(gè)文件,云服務(wù)平臺(tái)可能需要保存多份,這還會(huì)造成云服務(wù)平臺(tái)存儲(chǔ)空間的浪費(fèi)。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實(shí)施例的云上傳方法及系統(tǒng)、調(diào)度設(shè)備、客戶端,用以解決現(xiàn)有技術(shù)同一文件多次上傳導(dǎo)致的傳輸資源和存儲(chǔ)資源浪費(fèi)的問題。
[0008]為此,本發(fā)明實(shí)施例提供如下技術(shù)方案:
[0009]一種云上傳方法,所述方法包括:
[0010]調(diào)度中心接收至少一個(gè)客戶端發(fā)送的文件上傳請(qǐng)求,所述請(qǐng)求包括待上傳文件的文件指紋;
[0011]所述調(diào)度中心根據(jù)所述文件指紋查詢數(shù)據(jù)中心,判斷所述待上傳文件的狀態(tài):
[0012]如果所述狀態(tài)為未完成上傳,則所述調(diào)度中心從所述數(shù)據(jù)中心獲取所述待上傳文件的當(dāng)前上傳進(jìn)度以及分片信息,并為所述至少一個(gè)客戶端中的每個(gè)客戶端分別分配一個(gè)上傳節(jié)點(diǎn),將所述當(dāng)前上傳進(jìn)度、分片信息以及分配的上傳節(jié)點(diǎn)發(fā)送給對(duì)應(yīng)的客戶端;
[0013]所述至少一個(gè)客戶端中的每個(gè)客戶端分別執(zhí)行:顯示所述當(dāng)前上傳進(jìn)度;并根據(jù)所述分片信息,通過該客戶端被分配的上傳節(jié)點(diǎn)進(jìn)行所述待上傳文件的文件片上傳;
[0014]分配給所述至少一個(gè)客戶端的上傳節(jié)點(diǎn)中的每個(gè)上傳節(jié)點(diǎn)分別執(zhí)行:根據(jù)與該上傳節(jié)點(diǎn)所對(duì)應(yīng)的客戶端上傳的所述待上傳文件的文件片,更新所述數(shù)據(jù)中心保存的所述當(dāng)前上傳進(jìn)度;讀取所述數(shù)據(jù)中心匯總后的所述待上傳文件的更新進(jìn)度,并將所述更新進(jìn)度發(fā)送給對(duì)應(yīng)的客戶端,由所述客戶端顯示所述更新進(jìn)度;
[0015]如果所述狀態(tài)為已完成上傳,則所述調(diào)度中心向所述至少一個(gè)客戶端返回上傳成功的信息。
[0016]此外,本發(fā)明還提供一種調(diào)度中心側(cè)的云上傳方法,所述方法包括:
[0017]調(diào)度中心接收至少一個(gè)客戶端發(fā)送的文件上傳請(qǐng)求,所述請(qǐng)求包括待上傳文件的文件指紋;
[0018]所述調(diào)度中心根據(jù)所述文件指紋查詢數(shù)據(jù)中心,判斷所述待上傳文件的狀態(tài):
[0019]如果所述狀態(tài)為已完成上傳,則所述調(diào)度中心向所述至少一個(gè)客戶端返回上傳成功的信息;
[0020]如果所述狀態(tài)為未完成上傳,則所述調(diào)度中心從所述數(shù)據(jù)中心獲取所述待上傳文件的當(dāng)前上傳進(jìn)度以及分片信息,并為所述至少一個(gè)客戶端中的每個(gè)客戶端分別分配一個(gè)上傳節(jié)點(diǎn),將所述當(dāng)前上傳進(jìn)度、分片信息以及分配的上傳節(jié)點(diǎn)發(fā)送給對(duì)應(yīng)的客戶端。
[0021]相應(yīng)地,本發(fā)明還提供一種調(diào)度設(shè)備,所述設(shè)備包括:
[0022]接收單元,用于接收至少一個(gè)客戶端發(fā)送的文件上傳請(qǐng)求,所述請(qǐng)求包括待上傳文件的文件指紋;
[0023]判斷單元,用于根據(jù)所述文件指紋查詢數(shù)據(jù)中心,判斷所述待上傳文件的狀態(tài);
[0024]返回單元,用于在所述狀態(tài)為已完成上傳時(shí),向所述至少一個(gè)客戶端返回上傳成功的信息;
[0025]獲取單元,用于在所述狀態(tài)為未完成上傳時(shí),從所述數(shù)據(jù)中心獲取所述待上傳文件的當(dāng)前上傳進(jìn)度以及分片信息;
[0026]分配單元,用于為所述至少一個(gè)客戶端中的每個(gè)客戶端分別分配一個(gè)上傳節(jié)點(diǎn);
[0027]發(fā)送單元,用于將所述當(dāng)前上傳進(jìn)度、分片信息以及分配的上傳節(jié)點(diǎn)發(fā)送給對(duì)應(yīng)的客戶端。
[0028]此外,本發(fā)明還提供一種客戶端側(cè)的云上傳方法,所述方法包括:
[0029]客戶端向調(diào)度中心發(fā)送文件上傳請(qǐng)求,所述請(qǐng)求包括待上傳文件的文件指紋,以使所述調(diào)度中心根據(jù)所述文件指紋查詢數(shù)據(jù)中心,判斷所述待上傳文件的狀態(tài);
[0030]所述客戶端在所述調(diào)度中心判斷所述待上傳文件未完成上傳時(shí),接收所述調(diào)度中心發(fā)送的所述待上傳文件的當(dāng)前上傳進(jìn)度、分片信息以及為該客戶端分配的上傳節(jié)點(diǎn);
[0031]所述客戶端顯示所述當(dāng)前上傳進(jìn)度,并根據(jù)所述分片信息,通過該客戶端分配的上傳節(jié)點(diǎn)進(jìn)行所述待上傳文件的文件片上傳;
[0032]所述客戶端接收并顯示所述上傳節(jié)點(diǎn)發(fā)送的更新進(jìn)度,所述更新進(jìn)度由所述數(shù)據(jù)中心匯總,并由所述上傳節(jié)點(diǎn)從所述數(shù)據(jù)中心讀??;
[0033]所述客戶端在所述調(diào)度中心判斷所述待上傳文件已完成上傳時(shí),接收所述調(diào)度中心返回的上傳成功的信息。
[0034]相應(yīng)地,本發(fā)明還提供一種客戶端,所述客戶端包括:
[0035]發(fā)送單元,用于向調(diào)度中心發(fā)送文件上傳請(qǐng)求,所述請(qǐng)求包括待上傳文件的文件指紋,以使所述調(diào)度中心根據(jù)所述文件指紋查詢數(shù)據(jù)中心,判斷所述待上傳文件的狀態(tài);
[0036]接收單元,用于在所述調(diào)度中心判斷所述待上傳文件未完成上傳時(shí),接收所述調(diào)度中心發(fā)送的所述待上傳文件的當(dāng)前上傳進(jìn)度、分片信息以及為本客戶端分配的上傳節(jié)
占.[0037]顯示單元,用于顯示所述當(dāng)前上傳進(jìn)度;
[0038]上傳單元,用于根據(jù)所述分片信息,通過所述上傳節(jié)點(diǎn)進(jìn)行所述待上傳文件的文件片上傳;
[0039]所述顯示單元,還用于接收并顯示所述上傳節(jié)點(diǎn)發(fā)送的更新進(jìn)度,所述更新進(jìn)度由所述數(shù)據(jù)中心匯總,并由所述上傳節(jié)點(diǎn)從所述數(shù)據(jù)中心讀??;
[0040]所述接收單元,還用于在所述調(diào)度中心判斷待上傳文件已完成上傳時(shí),接收所述調(diào)度中心返回的上傳成功的信息。
[0041]此外,本發(fā)明還提供一種云上傳系統(tǒng),所述系統(tǒng)包括調(diào)度中心、數(shù)據(jù)中心、至少一個(gè)上傳節(jié)點(diǎn),所述數(shù)據(jù)中心分別與所述調(diào)度中心、所述至少一個(gè)上傳節(jié)點(diǎn)相通信;
[0042]所述數(shù)據(jù)中心,用于保存文件的上傳進(jìn)度、分片策略及調(diào)度策略;
[0043]所述調(diào)度中心,用于接收至少一個(gè)客戶端發(fā)送的文件上傳請(qǐng)求,并根據(jù)所述請(qǐng)求中包含的待上傳文件的文件指紋查詢?cè)摯蟼魑募谒鰯?shù)據(jù)中心的狀態(tài):
[0044]如果所述狀態(tài)為已完成上傳,則所述調(diào)度中心向所述至少一個(gè)客戶端返回上傳成功的信息;
[0045]如果所述狀態(tài)為未完成上傳,則所述調(diào)度中心從所述數(shù)據(jù)中心獲取所述待上傳文件的當(dāng)前上傳進(jìn)度以及分片信息,并利用調(diào)度策略為所述至少一個(gè)客戶端中的每個(gè)客戶端分別分配一個(gè)上傳節(jié)點(diǎn),將所述當(dāng)前上傳進(jìn)度、分片信息以及分配的上傳節(jié)點(diǎn)發(fā)送給對(duì)應(yīng)的客戶端,由所述客戶端顯示所述當(dāng)前上傳進(jìn)度;
[0046]所述上傳節(jié)點(diǎn),用于接收對(duì)應(yīng)的客戶端上傳的所述待上傳文件的文件片,并根據(jù)接收到的文件片更新所述數(shù)據(jù)中心保存的所述當(dāng)前上傳進(jìn)度;
[0047]所述數(shù)據(jù)中心,還用于匯總每個(gè)上傳節(jié)點(diǎn)更新的進(jìn)度,并通過所述上傳節(jié)點(diǎn)將更新進(jìn)度發(fā)送給對(duì)應(yīng)的客戶端,由所述客戶端顯示所述更新進(jìn)度。
[0048]本發(fā)明的云上傳方法及系統(tǒng)、調(diào)度設(shè)備、客戶端,通過使請(qǐng)求上傳同一文件的各客戶端共享該文件的上傳進(jìn)度和上傳文件的方式,解決同一文件多次上傳導(dǎo)致的傳輸資源和存儲(chǔ)資源浪費(fèi)的問題。另外,本發(fā)明方案還會(huì)協(xié)調(diào)各客戶端相互配合進(jìn)行文件分片上傳,這就可縮短文件上傳時(shí)間,提高云上傳效率和用戶體驗(yàn)。
【專利附圖】
【附圖說明】
[0049]為了更清楚地說明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,還可以根據(jù)這些附圖獲得其它的附圖。
[0050]圖1是本發(fā)明云上傳系統(tǒng)的構(gòu)成示意圖;
[0051]圖2是本發(fā)明云上傳方法的流程圖;
[0052]圖3是本發(fā)明中形成文件指紋的流程圖;
[0053]圖4是本發(fā)明實(shí)施例中文件片上傳的流程圖;
[0054]圖5是本發(fā)明實(shí)施例中更新當(dāng)前上傳進(jìn)度的流程圖;[0055]圖6是本發(fā)明實(shí)施例調(diào)度中心側(cè)的云上傳方法;
[0056]圖7本發(fā)明實(shí)施例調(diào)度設(shè)備的示意圖;
[0057]圖8是本發(fā)明實(shí)施例客戶端側(cè)的云上傳方法;
[0058]圖9是本發(fā)明實(shí)施例客戶端的示意圖。
【具體實(shí)施方式】
[0059]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和實(shí)施方式對(duì)本發(fā)明實(shí)施例作進(jìn)一步的詳細(xì)說明。
[0060]為了解決現(xiàn)有技術(shù)中,針對(duì)同一文件可能會(huì)多次重復(fù)上傳導(dǎo)致的傳輸資源和存儲(chǔ)資源浪費(fèi)的問題,本發(fā)明實(shí)施例提供了一種新的云上傳系統(tǒng),使上傳同一文件的多個(gè)客戶端可以共享該文件的上傳進(jìn)度。如果文件已完成上傳,則直接向請(qǐng)求上傳文件的客戶端返回上傳成功的消息,實(shí)現(xiàn)文件秒傳;如果文件未完成上傳,則控制上傳文件的各客戶端協(xié)同合作進(jìn)行文件分片上傳,同時(shí)使各客戶端共享文件上傳的進(jìn)度和上傳的文件。如此,不僅能解決傳輸資源和存儲(chǔ)資源浪費(fèi)的問題,還能提高文件上傳速度以及用戶體驗(yàn)。
[0061]參見圖1,示出了本發(fā)明實(shí)施例中的云上傳系統(tǒng)的示意圖,所述系統(tǒng)用于接收客戶端發(fā)送的請(qǐng)求,并控制各客戶端相互配合進(jìn)行文件上傳。所述系統(tǒng)包括調(diào)度中心101、數(shù)據(jù)中心102、至少一個(gè)上傳節(jié)點(diǎn)103,所述數(shù)據(jù)中心分別與所述調(diào)度中心、所述至少一個(gè)上傳節(jié)點(diǎn)相通信。
[0062]下面分別對(duì)系統(tǒng)各部件進(jìn)行解釋說明。
[0063]1.數(shù)據(jù)中心可以是諸如mysql、redis、couchbase等存儲(chǔ)設(shè)備。用于保存文件的上傳進(jìn)度、分片策略及調(diào)度策略。其中,
[0064](I)文件的上傳進(jìn)度可分為三種情況:一種是文件已被其它客戶端完整上傳,對(duì)應(yīng)的上傳進(jìn)度為100%;—種是文件正在被其它客戶端上傳,對(duì)應(yīng)的上傳進(jìn)度為其它客戶端上傳的實(shí)時(shí)進(jìn)度,如37% ;—種是文件未被上傳,對(duì)應(yīng)的上傳進(jìn)度為0%。對(duì)應(yīng)文件的不同上傳進(jìn)度,本發(fā)明提供了不同的上傳方案,對(duì)此將在下文進(jìn)行詳述。
[0065](2)分片策略用于表示文件的切片方式,或者理解為表示切片后每個(gè)文件片的大小,如策略可體現(xiàn)為將IG的文件切為100個(gè)文件片??蛻舳丝梢愿鶕?jù)分片策略形成的分片信息進(jìn)行文件上傳,同時(shí),在網(wǎng)絡(luò)環(huán)境不穩(wěn)定的情況下,還可支持文件片的斷點(diǎn)續(xù)傳。
[0066](3)調(diào)度策略用于限定調(diào)度中心為客戶端分配上傳節(jié)點(diǎn)的方式,調(diào)度策略可以體現(xiàn)為根據(jù)IP地址和/或網(wǎng)段信息為客戶端分配上傳節(jié)點(diǎn)。如,調(diào)度中心根據(jù)就近原則,將IP地址最接近的上傳節(jié)點(diǎn)A分配給客戶端A,這樣,在調(diào)度中心將該分配信息通知客戶端A之后,客戶端A就可通過上傳節(jié)點(diǎn)A進(jìn)行文件分片上傳。或者,調(diào)度中心還可根據(jù)聯(lián)通、電信等對(duì)應(yīng)的網(wǎng)段信息為客戶端分配上傳節(jié)點(diǎn)。不論調(diào)度中心采用哪種調(diào)度策略分配上傳節(jié)點(diǎn),其目的都是為了實(shí)現(xiàn)文件的快速上傳。
[0067]2.調(diào)度中心可以體現(xiàn)為一臺(tái)計(jì)算機(jī)。具體用于實(shí)現(xiàn)以下功能:
[0068]( I)接收至少一個(gè)客戶端發(fā)送的文件上傳請(qǐng)求,并根據(jù)所述請(qǐng)求中包含的待上傳文件的文件指紋查詢?cè)摯蟼魑募谒鰯?shù)據(jù)中心的狀態(tài)。
[0069](2)根據(jù)查詢結(jié)果進(jìn)行區(qū)分處理:
[0070]如果數(shù)據(jù)中心保存的待上傳文件的上傳進(jìn)度為100%,即文件狀態(tài)為已完成上傳,則所述調(diào)度中心向所述至少一個(gè)客戶端返回上傳成功的信息,實(shí)現(xiàn)秒傳。對(duì)應(yīng)這種情況,請(qǐng)求文件上傳的客戶端就無需再浪費(fèi)傳輸資源,重新進(jìn)行文件上傳,如此就可減少對(duì)傳輸資源的浪費(fèi)。對(duì)應(yīng)地,云服務(wù)平臺(tái)針對(duì)同一文件只需保存一份,還能節(jié)省存儲(chǔ)資源。
[0071]如果數(shù)據(jù)中心保存的待上傳文件的上傳進(jìn)度不是100%,即文件狀態(tài)為未完成上傳,則所述調(diào)度中心從所述數(shù)據(jù)中心獲取所述待上傳文件的當(dāng)前上傳進(jìn)度(如上文所做介紹,該當(dāng)前上傳進(jìn)度可能為正在上傳的實(shí)時(shí)進(jìn)度,也可能是0%)以及分片信息(通過分片策略獲得),并利用調(diào)度策略為每個(gè)客戶端分配一個(gè)上傳節(jié)點(diǎn),再將所述當(dāng)前上傳進(jìn)度、分片信息以及分配的上傳節(jié)點(diǎn)發(fā)送給對(duì)應(yīng)的客戶端。
[0072]3.可與客戶端、數(shù)據(jù)中心相通信的上傳節(jié)點(diǎn),用于接收對(duì)應(yīng)的客戶端上傳的文件片,并根據(jù)接收到的文件片更新所述數(shù)據(jù)中心保存的所述當(dāng)前上傳進(jìn)度;此外,作為能與客戶端通信的設(shè)備,上傳節(jié)點(diǎn)還用于從數(shù)據(jù)庫讀取待上傳文件的更新進(jìn)度反饋給客戶端,從而使各客戶端共享同一文件的上傳進(jìn)度。
[0073]下面對(duì)利用圖1所示系統(tǒng)實(shí)現(xiàn)云上傳的過程進(jìn)行解釋說明。
[0074]參見圖2,示出了本發(fā)明實(shí)施例云上傳方法的流程圖,可包括:
[0075]步驟201,調(diào)度中心接收至少一個(gè)客戶端發(fā)送的文件上傳請(qǐng)求,所述請(qǐng)求包括待上傳文件的文件指紋。
[0076]在客戶端用戶有上傳文件的需要時(shí),即可通過客戶端向調(diào)度中心的調(diào)度接口提交文件上傳請(qǐng)求,具體地,客戶端可以get方式提交上述請(qǐng)求,也可以post方式提交,本發(fā)明對(duì)此可不做限定。特別地,如果待上傳文件大于1K,本發(fā)明優(yōu)選采用post方式提交文件上傳請(qǐng)求。
[0077]客戶端提交的文件上傳請(qǐng)求中主要包含待上傳文件的文件指紋,文件指紋可視為是文件的身份信息,每個(gè)文件都對(duì)應(yīng)有各自唯一的文件指紋,本發(fā)明中的客戶端優(yōu)選通過文件內(nèi)容(文件的二進(jìn)制碼流)、文件大小、文件類型(文件的擴(kuò)展名,優(yōu)選統(tǒng)一為大寫形式或者小寫形式)形成文件指紋,具體過程可參見圖3所示示意圖,包括:
[0078]步驟301,判斷所述待上傳文件的文件大小是否大于預(yù)設(shè)值,如果否,則執(zhí)行步驟302,如果是則執(zhí)行步驟303、304 ;
[0079]步驟302,對(duì)所述待上傳文件的文件內(nèi)容、文件大小以及文件類型進(jìn)行哈希運(yùn)算獲得所述文件指紋;
[0080]步驟303,將所述待上傳文件劃分為預(yù)設(shè)個(gè)數(shù)的文件段,并從每個(gè)文件段中提取預(yù)設(shè)字節(jié);
[0081]步驟304,對(duì)所述預(yù)設(shè)字節(jié)、文件大小以及文件類型進(jìn)行哈希運(yùn)算獲得所述文件指紋。
[0082]為了降低文件指紋形成過程中的計(jì)算量,本發(fā)明先確定一個(gè)限定文件大小的預(yù)設(shè)值,如果文件較小,不超過該預(yù)設(shè)值,則利用文件的全部內(nèi)容,再結(jié)合文件大小以及類型,形成文件指紋。如果文件較大,超過了預(yù)設(shè)值,則從文件內(nèi)容中提取一部分,再結(jié)合文件大小和類型,形成文件指紋。
[0083]作為本發(fā)明提取部分文件內(nèi)容的一種實(shí)現(xiàn)方式,可將文件分段后,從每段中提取一部分內(nèi)容,然后整合從各段提取的內(nèi)容作為形成文件指紋的文件內(nèi)容使用。具體地,先設(shè)置一個(gè)限定文件劃分段數(shù)的值(即步驟303中的預(yù)設(shè)個(gè)數(shù)),再將待上傳文件平均切分為預(yù)設(shè)個(gè)數(shù)的文件段,最后提取每個(gè)文件段最前面的預(yù)設(shè)字節(jié)(當(dāng)然,也可從其它約定的位置提取預(yù)設(shè)字節(jié),作為一種最簡便的實(shí)現(xiàn)方式,本發(fā)明優(yōu)選提取每個(gè)文件段最前面的預(yù)設(shè)個(gè)數(shù)的字節(jié))。
[0084]作為本發(fā)明方案的一種實(shí)現(xiàn)方式,限定文件大小的預(yù)設(shè)值可為512KB,限定文件段的預(yù)設(shè)個(gè)數(shù)可為8段,從每個(gè)文件段中提取出的預(yù)設(shè)字節(jié)可為64KB。
[0085]步驟202,所述調(diào)度中心根據(jù)所述文件指紋查詢數(shù)據(jù)中心。
[0086]步驟203,判斷所述待上傳文件的狀態(tài)是否為完成上傳,如果是,則執(zhí)行步驟204 ;如果否,則執(zhí)行步驟205。
[0087]在調(diào)度中心接收到客戶端發(fā)送的上傳文件請(qǐng)求之后,即可知曉客戶端當(dāng)前想要對(duì)具有該指紋的文件進(jìn)行云上傳,為了解決現(xiàn)有技術(shù)同一文件多次上傳帶來的問題,本發(fā)明的調(diào)度中心接收到客戶端的請(qǐng)求之后,并不立即控制客戶端進(jìn)行文件上傳,而是先通過文件指紋查詢下該待上傳文件在數(shù)據(jù)中心的狀態(tài),并根據(jù)查詢結(jié)果進(jìn)行區(qū)別處理。
[0088]步驟204,如果所述狀態(tài)為已完成上傳,則所述調(diào)度中心向所述至少一個(gè)客戶端返回上傳成功的信息。
[0089]如果數(shù)據(jù)中心保存的待上傳文件的狀態(tài)為已完成上傳,即說明在步驟101中的客戶端用戶請(qǐng)求進(jìn)行文件上傳之前,已有其它客戶端用戶將該文件上傳并實(shí)現(xiàn)了云存儲(chǔ)。對(duì)應(yīng)于此,為了避免文件重復(fù)上傳造成的傳輸資源和存儲(chǔ)資源浪費(fèi),本發(fā)明的調(diào)度中心直接向請(qǐng)求進(jìn)行文件上傳的客戶端返回上傳成功的信息,此時(shí)客戶端的上傳進(jìn)度條迅速從0%增長到100%,實(shí)現(xiàn)文件秒傳,在解決本發(fā)明問題的同時(shí),還提高了用戶體驗(yàn)。
[0090]如,請(qǐng)求上傳文件的是客戶端A,且在客戶端A請(qǐng)求上傳之前客戶端B和C已按照本發(fā)明方法完成了文件的上傳與存儲(chǔ),在這種情況下,可認(rèn)為客戶端A共享了客戶端B和C的上傳進(jìn)度和上傳文件。
[0091]步驟205,如果所述狀態(tài)為未完成上傳,則所述調(diào)度中心從所述數(shù)據(jù)中心獲取所述待上傳文件的當(dāng)前上傳進(jìn)度以及分片信息,并為所述至少一個(gè)客戶端中的每個(gè)客戶端分別分配一個(gè)上傳節(jié)點(diǎn),將所述當(dāng)前上傳進(jìn)度、分片信息以及分配的上傳節(jié)點(diǎn)發(fā)送給對(duì)應(yīng)的客戶端。
[0092]如果數(shù)據(jù)中心保存的待上傳文件的狀態(tài)為未完成上傳,如前文所做介紹,當(dāng)文件正在上傳或者文件不存在時(shí),其狀態(tài)均會(huì)體現(xiàn)為未完成上傳,此時(shí)調(diào)度中心會(huì)協(xié)調(diào)請(qǐng)求進(jìn)行文件上傳的客戶端(如果是文件正在上傳的情況,還會(huì)協(xié)調(diào)正在進(jìn)行文件上傳的客戶端)進(jìn)行文件分片上傳。
[0093]具體地,調(diào)度中心協(xié)調(diào)各客戶端進(jìn)行文件分片上傳的過程中,涉及以下三個(gè)信息:
[0094]1.待上傳文件的當(dāng)前上傳進(jìn)度
[0095]調(diào)度中心從數(shù)據(jù)中心獲取該信息,是為了使客戶端明確知曉文件當(dāng)前的上傳情況。如果文件不存在,則反饋到客戶端的當(dāng)前上傳進(jìn)度為0% ;如果文件正在被其它客戶端上傳,則當(dāng)前上傳進(jìn)度即為其它客戶端的實(shí)時(shí)進(jìn)度,如上文中所舉示例37%,此時(shí)請(qǐng)求進(jìn)行文件上傳的客戶端的上傳進(jìn)度條迅速從0%增長到37%,實(shí)現(xiàn)了該客戶端對(duì)其它客戶端部分上傳進(jìn)度和上傳文件的共享。
[0096]2.待上傳文件的分片信息[0097]調(diào)度中心從數(shù)據(jù)中心獲取該信息,是為了使客戶端明確知曉文件的切分方式,這樣客戶端才知道待上傳文件被切分為多少文件片、每個(gè)文件片的切分位置等信息,客戶端才可根據(jù)上傳節(jié)點(diǎn)的要求進(jìn)行文件片的準(zhǔn)確上傳,而不會(huì)出現(xiàn)錯(cuò)傳、重傳、漏傳等情況。
[0098]對(duì)于文件正在被其它客戶端上傳的情況,數(shù)據(jù)中心已根據(jù)分片策略為待上傳文件進(jìn)行了切片,此時(shí)調(diào)度中心可直接從數(shù)據(jù)中心讀取對(duì)應(yīng)的分片信息反饋給客戶端即可。
[0099]對(duì)于文件不存在的情況,數(shù)據(jù)中心要結(jié)合待上傳文件的大小,利用分片策略對(duì)待上傳文件進(jìn)行切片,如此處理之后調(diào)度中心才可獲取到分片信息。需要說明的是,文件大小這一信息可以是在調(diào)動(dòng)中心查詢發(fā)現(xiàn)文件不存在時(shí),通知客戶端提交;也可以包含于文件上傳請(qǐng)求中與文件指紋一起發(fā)送給調(diào)度中心。為了提高本發(fā)明方案的處理效率,減少上傳過程中各設(shè)備間的交互次數(shù),優(yōu)選將文件大小包含于步驟101中的上傳文件請(qǐng)求中,對(duì)應(yīng)于此,如果文件不存在,則利用文件大小進(jìn)行文件分片;如果文件為已完成上傳或正在上傳,則不使用該信息。
[0100]3.為客戶端分配的上傳節(jié)點(diǎn)
[0101]調(diào)度中心從數(shù)據(jù)中心獲取調(diào)度策略,并根據(jù)調(diào)度策略為每個(gè)請(qǐng)求上傳文件的客戶端分配一個(gè)上傳節(jié)點(diǎn),盡量保證文件的快速上傳。如根據(jù)客戶端IP地址,為客戶端A分配上傳節(jié)點(diǎn)A,為客戶端B分配上傳節(jié)點(diǎn)B。
[0102]步驟206,顯示所述當(dāng)前上傳進(jìn)度;并根據(jù)所述分片信息,通過該客戶端被分配的上傳節(jié)點(diǎn)進(jìn)行所述待上傳文件的文件片上傳。
[0103]在調(diào)度中心為每個(gè)客戶端分配一個(gè)上傳節(jié)點(diǎn)之后,所述至少一個(gè)客戶端中的每個(gè)客戶端即可分別執(zhí)行本步驟,通過其對(duì)應(yīng)的上傳節(jié)點(diǎn)進(jìn)行文件片上傳。相應(yīng)地,上傳節(jié)點(diǎn)可與數(shù)據(jù)中心相通信,在上傳節(jié)點(diǎn)接收到客戶端上傳的文件片后,即可查詢數(shù)據(jù)中心,如果該文件片已上傳,則通知客戶端上傳下一文件片,否則接收該文件片并持久化,同時(shí)還要更新文件在數(shù)據(jù)中心的上傳進(jìn)度。
[0104]對(duì)于文件片上傳和進(jìn)度更新的過程,此處暫不詳述。
[0105]步驟207,所述上傳節(jié)點(diǎn)根據(jù)與其對(duì)應(yīng)的客戶端上傳的所述待上傳文件的文件片,更新所述數(shù)據(jù)中心保存的所述當(dāng)前上傳進(jìn)度;讀取所述數(shù)據(jù)中心匯總后的所述待上傳文件的更新進(jìn)度,并將所述更新進(jìn)度發(fā)送給所述客戶端。
[0106]在每個(gè)上傳節(jié)點(diǎn)更新一次文件上傳進(jìn)度之后,數(shù)據(jù)中心都要進(jìn)行一次匯總,以便在上傳節(jié)點(diǎn)讀取文件更新進(jìn)度時(shí),可以將所有上傳節(jié)點(diǎn)對(duì)該文件綜合更新后的進(jìn)度反饋給上傳節(jié)點(diǎn),進(jìn)而顯示給客戶端用戶。如此,客戶端用戶查看到的進(jìn)度條不僅是其自身上傳結(jié)果的體現(xiàn),還包含其它客戶端的上傳結(jié)果,也即客戶端還共享了其它客戶端的上傳進(jìn)度和上傳文件片。如客戶端A上傳了文件的30%,客戶端B協(xié)同合作上傳了文件的20%,那么客戶端A上傳進(jìn)度條體現(xiàn)的即為文件已上傳50%,這其中的20%就是因?yàn)榭蛻舳薃共享了客戶端B的進(jìn)度。如此,不僅能解決文件上傳重復(fù)導(dǎo)致的傳輸資源和存儲(chǔ)資源浪費(fèi),還能縮短文件的上傳時(shí)間,提高上傳效率以及用戶體驗(yàn)。
[0107]參見圖4,示出了本發(fā)明中文件片上傳的流程圖,可包括:
[0108]步驟401,所述客戶端向?qū)?yīng)的上傳節(jié)點(diǎn)發(fā)送文件片上傳請(qǐng)求,所述請(qǐng)求包含申請(qǐng)上傳文件片的數(shù)目。
[0109]客戶端接收到調(diào)度中心發(fā)送的信息(當(dāng)前上傳進(jìn)度、分片信息、上傳節(jié)點(diǎn))之后,將當(dāng)前上傳進(jìn)度顯示給客戶端用戶查看,并根據(jù)自身的處理能力向上傳節(jié)點(diǎn)發(fā)送文件片上傳請(qǐng)求,該請(qǐng)求中包含客戶端申請(qǐng)進(jìn)行文件片上傳的數(shù)目。如果客戶端只能進(jìn)行單線程處理,則可向上傳節(jié)點(diǎn)申請(qǐng)進(jìn)行I個(gè)文件片上傳;如果客戶端能進(jìn)行多線程并行處理,則可向上傳節(jié)點(diǎn)申請(qǐng)進(jìn)行多個(gè)文件片上傳,如,客戶端可并行處理10個(gè)線程,則在其向上傳節(jié)點(diǎn)發(fā)送請(qǐng)求時(shí),上傳節(jié)點(diǎn)就能知曉該客戶端的處理能力,會(huì)為其分配10個(gè)待上傳文件片。
[0110]步驟402,所述上傳節(jié)點(diǎn)從所述數(shù)據(jù)中心讀取未上傳文件片的信息,并從中選取出滿足所述客戶端申請(qǐng)數(shù)目的待上傳文件片分配給所述客戶端。
[0111]步驟403,所述客戶端將所述待上傳文件片上傳到所述上傳節(jié)點(diǎn)。
[0112]一般情況下,數(shù)據(jù)中心會(huì)保存各文件片的狀態(tài)信息,如文件片已上傳、文件片已分配、文件片未分配,故在上傳節(jié)點(diǎn)接收到客戶端發(fā)送的請(qǐng)求之后,即可查詢數(shù)據(jù)中心,判斷該待上傳文件(主要通過文件指紋區(qū)分)對(duì)應(yīng)的分片中是否存在處于未分配狀態(tài)的文件片:
[0113](I)如果存在未分配文件片,則從中選取滿足客戶端需要數(shù)目的待上傳文件片,分配給客戶端。如,客戶端A申請(qǐng)上傳4個(gè)文件片,數(shù)據(jù)中心當(dāng)前處于未分配狀態(tài)的文件片有
5、6、8、10、11、12、13共計(jì)7個(gè),則上傳節(jié)點(diǎn)可將其中的文件片5、6、8、10分配給客戶端A處理。
[0114](2)如果不存在未分配文件片,則判斷待上傳文件對(duì)應(yīng)的分片中是否存在處于已分配狀態(tài)的文件片:
[0115](21)如果存在已分配文件片,則可從中選取滿足客戶端需要數(shù)目的待上傳文件片,分配給客戶端。如,客戶端A申請(qǐng)上傳2個(gè)文件片,數(shù)據(jù)中心當(dāng)前只有處于已分配狀態(tài)的文件片5、6共計(jì)2個(gè),且這2個(gè)文件片先前已分配給客戶端B,則上傳節(jié)點(diǎn)可再將這2個(gè)節(jié)點(diǎn)分配給客戶端A處理。這樣,在其中上傳快的客戶端完成這2個(gè)文件片的上傳之后,SP可將上傳進(jìn)度更新為100%,此時(shí)就相當(dāng)于上傳慢的客戶端共享了上傳快的客戶端的上傳進(jìn)度和上傳文件片。
[0116](22)如果不存在已分配文件片,則說明具有該指紋的待上傳文件已全部上傳完成,上傳節(jié)點(diǎn)可通知客戶端當(dāng)前上傳進(jìn)度為100%。
[0117]參見圖5,示出了本發(fā)明中更新當(dāng)前上傳進(jìn)度的流程圖,可包括:
[0118]步驟501,所述上傳節(jié)點(diǎn)判斷接收到的文件片是否為已上傳,如果是,則執(zhí)行步驟502,如果否,則執(zhí)行步驟503。
[0119]步驟502,所述上傳節(jié)點(diǎn)重新為所述客戶端分配待上傳文件片的信息。
[0120]步驟503,所述上傳節(jié)點(diǎn)保存所述文件片,并更新所述當(dāng)前上傳進(jìn)度。
[0121]上傳節(jié)點(diǎn)在接收到客戶端上傳的文件片之后,要先判斷下該文件片是否已上傳,如圖4處所做介紹,雖然在先前的處理過程中上傳節(jié)點(diǎn)B將處于未分配狀態(tài)的文件片5、6分配給了對(duì)應(yīng)的客戶端B,但因客戶端B的上傳速度較慢,可能在客戶端A向其對(duì)應(yīng)的上傳節(jié)點(diǎn)A申請(qǐng)待上傳文件片時(shí),上傳節(jié)點(diǎn)A會(huì)將狀態(tài)為已分配的文件片5、6分配給客戶端A進(jìn)行上傳,若客戶端A的上傳速度比客戶端B快,先于客戶端B將文件片5上傳完成,并更新了文件片5在數(shù)據(jù)中心的狀態(tài)為已上傳,則在客戶端B向上傳節(jié)點(diǎn)B上傳了文件片5之后,上傳節(jié)點(diǎn)B查詢數(shù)據(jù)中心時(shí)得到的結(jié)果就是文件片5已上傳,對(duì)應(yīng)于此,上傳節(jié)點(diǎn)B就會(huì)丟棄客戶端B上傳的文件片5,并通知客戶端B繼續(xù)進(jìn)行文件片6的上傳。
[0122]對(duì)應(yīng)于客戶端A來說,在其將文件片5上傳給上傳節(jié)點(diǎn)A之后,上傳節(jié)點(diǎn)A查詢數(shù)據(jù)中心時(shí)得到的結(jié)果就是文件片5的狀態(tài)為已分配,對(duì)應(yīng)于此,上傳節(jié)點(diǎn)A就會(huì)保存該文件片5,并將其在數(shù)據(jù)中心的狀態(tài)更新為已上傳,實(shí)現(xiàn)文件上傳進(jìn)度的更新。也就是說,本發(fā)明方案中的上傳進(jìn)度主要是通過一個(gè)文件切成的所有文件片中,處于已上傳狀態(tài)的文件片數(shù)占總的文件片數(shù)的百分比,如果數(shù)據(jù)中心保存的該文件的所有文件片均為已上傳狀態(tài),則向客戶端顯示上傳進(jìn)度就是100%。
[0123]另外,需要說明的是,對(duì)應(yīng)上文對(duì)文件指紋形成過程的介紹,本發(fā)明中的客戶端還應(yīng)具備以下功能??蛻舳?,用于在所述待上傳文件的文件大小不大于預(yù)設(shè)值時(shí),對(duì)所述待上傳文件的文件內(nèi)容、文件大小以及文件類型進(jìn)行哈希運(yùn)算獲得所述文件指紋;或者,客戶端,用于在所述待上傳文件的文件大小大于預(yù)設(shè)值時(shí),將所述待上傳文件劃分為預(yù)設(shè)個(gè)數(shù)的文件段,并從每個(gè)文件段中提取預(yù)設(shè)字節(jié)作為文件內(nèi)容,對(duì)所述文件內(nèi)容、文件大小以及文件類型進(jìn)行哈希運(yùn)算獲得所述文件指紋。
[0124]對(duì)應(yīng)上文對(duì)文件片上傳過程的介紹,圖1所示的云上傳系統(tǒng)中的上傳節(jié)點(diǎn)還應(yīng)具備以下功能。上傳節(jié)點(diǎn),用于接收所述客戶端發(fā)送的文件片上傳請(qǐng)求,所述請(qǐng)求包含申請(qǐng)上傳文件片的數(shù)目;并從所述數(shù)據(jù)中心讀取未上傳文件片,從中選取出滿足所述客戶端申請(qǐng)數(shù)目的待上傳文件片分配給所述客戶端。對(duì)應(yīng)地,客戶端,用于將所述上傳節(jié)點(diǎn)分配的待上傳文件片上傳到所述上傳節(jié)點(diǎn)。
[0125]對(duì)應(yīng)上文對(duì)更新當(dāng)前上傳進(jìn)度過程的介紹,圖1所示的云上傳系統(tǒng)中的上傳節(jié)點(diǎn)還應(yīng)具有以下功能。上傳節(jié)點(diǎn),用于在接收到的文件片為已上傳文件片時(shí),重新為所述客戶端分配待上傳文件片;并在接收到的文件片為未上傳文件片時(shí),保存所述文件片并更新所述當(dāng)前上傳進(jìn)度。
[0126]此外,本發(fā)明還提供了一種調(diào)度中心側(cè)的云上傳方法,具體可參見圖6所示流程圖,可包括:
[0127]步驟601,調(diào)度中心接收至少一個(gè)客戶端發(fā)送的文件上傳請(qǐng)求,所述請(qǐng)求包括待上傳文件的文件指紋;
[0128]步驟602,所述調(diào)度中心根據(jù)所述文件指紋查詢數(shù)據(jù)中心;
[0129]步驟603,判斷所述待上傳文件的狀態(tài),如果所述狀態(tài)為已完成上傳,則執(zhí)行步驟604 ;如果所述狀態(tài)為未完成上傳,則執(zhí)行步驟605 ;
[0130]步驟604,所述調(diào)度中心向所述至少一個(gè)客戶端返回上傳成功的信息;
[0131]步驟605,所述調(diào)度中心從所述數(shù)據(jù)中心獲取所述待上傳文件的當(dāng)前上傳進(jìn)度以及分片信息,并為所述至少一個(gè)客戶端中的每個(gè)客戶端分別分配一個(gè)上傳節(jié)點(diǎn),將所述當(dāng)前上傳進(jìn)度、分片信息以及分配的上傳節(jié)點(diǎn)發(fā)送給對(duì)應(yīng)的客戶端。
[0132]其中,步驟605中為了給每個(gè)客戶端分配一個(gè)上傳節(jié)點(diǎn),調(diào)度中心可針對(duì)所述至少一個(gè)客戶端中的每個(gè)客戶端分別執(zhí)行:
[0133]根據(jù)該客戶端的IP地址和預(yù)設(shè)上傳節(jié)點(diǎn)集合中的上傳節(jié)點(diǎn)的IP地址,為該客戶端分配一個(gè)上傳節(jié)點(diǎn);或
[0134]根據(jù)該客戶端的IP地址所屬網(wǎng)段的信息和預(yù)設(shè)上傳節(jié)點(diǎn)集合中的上傳節(jié)點(diǎn)的IP地址分別所屬網(wǎng)段的信息,為該客戶端分配一個(gè)上傳節(jié)點(diǎn)。
[0135]對(duì)應(yīng)于此,本發(fā)明還提供一種調(diào)度設(shè)備(即上文中的調(diào)度中心),具體可參見圖7所示示意圖,可包括:[0136]接收單元701,用于接收至少一個(gè)客戶端發(fā)送的文件上傳請(qǐng)求,所述請(qǐng)求包括待上傳文件的文件指紋;
[0137]判斷單元702,用于根據(jù)所述文件指紋查詢數(shù)據(jù)中心,判斷所述待上傳文件的狀態(tài);
[0138]返回單元703,用于在所述狀態(tài)為已完成上傳時(shí),向所述至少一個(gè)客戶端返回上傳成功的信息;
[0139]獲取單元704,用于在所述狀態(tài)為未完成上傳時(shí),從所述數(shù)據(jù)中心獲取所述待上傳文件的當(dāng)前上傳進(jìn)度以及分片信息;
[0140]分配單元705,用于為所述至少一個(gè)客戶端中的每個(gè)客戶端分別分配一個(gè)上傳節(jié)
占.[0141]發(fā)送單元706,用于將所述當(dāng)前上傳進(jìn)度、分片信息以及分配的上傳節(jié)點(diǎn)發(fā)送給對(duì)應(yīng)的客戶端。
[0142]其中,所述分配單元,具體用于根據(jù)該客戶端的IP地址和預(yù)設(shè)上傳節(jié)點(diǎn)集合中的上傳節(jié)點(diǎn)的IP地址,為該客戶端分配一個(gè)上傳節(jié)點(diǎn);或,所述分配單元,具體用于根據(jù)該客戶端的IP地址所屬網(wǎng)段的信息和預(yù)設(shè)上傳節(jié)點(diǎn)集合中的上傳節(jié)點(diǎn)的IP地址分別所屬網(wǎng)段的信息,為該客戶端分配一個(gè)上傳節(jié)點(diǎn)。
[0143]此外,本發(fā)明還提供了一種客戶端側(cè)的云上傳方法,具體可參見圖8所示流程圖,可包括:
[0144]步驟801,客戶端向調(diào)度中心發(fā)送文件上傳請(qǐng)求,所述請(qǐng)求包括待上傳文件的文件指紋,以使所述調(diào)度中心根據(jù)所述文件指紋查詢數(shù)據(jù)中心,判斷所述待上傳文件的狀態(tài);
[0145]步驟802,所述客戶端在所述調(diào)度中心判斷所述待上傳文件未完成上傳時(shí),接收所述調(diào)度中心發(fā)送的所述待上傳文件的當(dāng)前上傳進(jìn)度、分片信息以及為該客戶端分配的上傳節(jié)點(diǎn);
[0146]步驟803,所述客戶端顯示所述當(dāng)前上傳進(jìn)度,并根據(jù)所述分片信息,通過該客戶端分配的上傳節(jié)點(diǎn)進(jìn)行所述待上傳文件的文件片上傳;
[0147]步驟804,所述客戶端接收并顯示所述上傳節(jié)點(diǎn)發(fā)送的更新進(jìn)度,所述更新進(jìn)度由所述數(shù)據(jù)中心匯總,并由所述上傳節(jié)點(diǎn)從所述數(shù)據(jù)中心讀取;
[0148]步驟805,所述客戶端在所述調(diào)度中心判斷所述待上傳文件已完成上傳時(shí),接收所述調(diào)度中心返回的上傳成功的信息。
[0149]其中,步驟801中的文件指紋可按以下方式形成:
[0150]判斷所述待上傳文件的文件大小是否大于預(yù)設(shè)值:
[0151]如果否,則對(duì)所述待上傳文件的文件內(nèi)容、文件大小以及文件類型進(jìn)行哈希運(yùn)算獲得所述文件指紋;
[0152]如果是,則將所述待上傳文件劃分為預(yù)設(shè)個(gè)數(shù)的文件段,并從每個(gè)文件段中提取預(yù)設(shè)字節(jié),對(duì)所述預(yù)設(shè)字節(jié)、文件大小以及文件類型進(jìn)行哈希運(yùn)算獲得所述文件指紋。
[0153]其中,步驟803中通過上傳節(jié)點(diǎn)進(jìn)行文件片上傳的過程可體現(xiàn)為:
[0154]所述客戶端向?qū)?yīng)的上傳節(jié)點(diǎn)發(fā)送文件片上傳請(qǐng)求,所述請(qǐng)求包含申請(qǐng)上傳文件片的數(shù)目;
[0155]所述客戶端接收所述上傳節(jié)點(diǎn)分配的滿足所述客戶端申請(qǐng)數(shù)目的待上傳文件片的信息;
[0156]所述客戶端將所述待上傳文件片上傳到所述上傳節(jié)點(diǎn)。
[0157]對(duì)應(yīng)于此,本發(fā)明還提供一種客戶端,具體可參見圖9所示示意圖,可包括:
[0158]發(fā)送單元901,用于向調(diào)度中心發(fā)送文件上傳請(qǐng)求,所述請(qǐng)求包括待上傳文件的文件指紋,以使所述調(diào)度中心根據(jù)所述文件指紋查詢數(shù)據(jù)中心,判斷所述待上傳文件的狀態(tài);
[0159]接收單元902,用于在所述調(diào)度中心判斷所述待上傳文件未完成上傳時(shí),接收所述調(diào)度中心發(fā)送的所述待上傳文件的當(dāng)前上傳進(jìn)度、分片信息以及為本客戶端分配的上傳節(jié)
占.[0160]顯示單元903,用于顯示所述當(dāng)前上傳進(jìn)度;
[0161]上傳單元904,用于根據(jù)所述分片信息,通過所述上傳節(jié)點(diǎn)進(jìn)行所述待上傳文件的文件片上傳;
[0162]所述顯示單元903,還用于接收并顯示所述上傳節(jié)點(diǎn)發(fā)送的更新進(jìn)度,所述更新進(jìn)度由所述數(shù)據(jù)中心匯總,并由所述上傳節(jié)點(diǎn)從所述數(shù)據(jù)中心讀??;
[0163]所述接收單元902,還用于在所述調(diào)度中心判斷所述待上傳文件已完成上傳時(shí),接收所述調(diào)度中心返回的上傳成功的信息。
[0164]其中,所述上傳單元包括:
[0165]上傳請(qǐng)求發(fā)送單元,用于向所述上傳節(jié)點(diǎn)發(fā)送文件片上傳請(qǐng)求,所述請(qǐng)求包含申請(qǐng)上傳文件片的數(shù)目;
[0166]文件片接收單元,用于接收所述上傳節(jié)點(diǎn)分配的滿足所述客戶端申請(qǐng)數(shù)目的待上傳文件片的信息;
[0167]上傳子單元,用于將所述待上傳文件片上傳到所述上傳節(jié)點(diǎn)。
[0168]另外,為了形成所述文件指紋,所述客戶端還包括:
[0169]文件大小判斷單元,用于判斷所述待上傳文件的文件大小是否大于預(yù)設(shè)值:
[0170]哈希運(yùn)算單元,用于在所述待上傳文件的大小不大于所述預(yù)設(shè)值時(shí),對(duì)所述待上傳文件的文件內(nèi)容、文件大小以及文件類型進(jìn)行哈希運(yùn)算獲得所述文件指紋;
[0171]提取單元,用于在所述待上傳文件的大小大于所述預(yù)設(shè)值時(shí),將所述待上傳文件劃分為預(yù)設(shè)個(gè)數(shù)的文件段,并從每個(gè)文件段中提取預(yù)設(shè)字節(jié);
[0172]所述哈希運(yùn)算單元,還用于對(duì)所述預(yù)設(shè)字節(jié)、文件大小以及文件類型進(jìn)行哈希運(yùn)算獲得所述文件指紋。
[0173]以上對(duì)本發(fā)明實(shí)施例進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了【具體實(shí)施方式】對(duì)本發(fā)明進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及系統(tǒng);同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
【權(quán)利要求】
1.一種云上傳方法,其特征在于,所述方法包括: 調(diào)度中心接收至少一個(gè)客戶端發(fā)送的文件上傳請(qǐng)求,所述請(qǐng)求包括待上傳文件的文件指紋; 所述調(diào)度中心根據(jù)所述文件指紋查詢數(shù)據(jù)中心,判斷所述待上傳文件的狀態(tài): 如果所述狀態(tài)為未完成上傳,則所述調(diào)度中心從所述數(shù)據(jù)中心獲取所述待上傳文件的當(dāng)前上傳進(jìn)度以及分片信息,并為所述至少一個(gè)客戶端中的每個(gè)客戶端分別分配一個(gè)上傳節(jié)點(diǎn),將所述當(dāng)前上傳進(jìn)度、分片信息以及分配的上傳節(jié)點(diǎn)發(fā)送給對(duì)應(yīng)的客戶端; 所述至少一個(gè)客戶端中的每個(gè)客戶端分別執(zhí)行:顯示所述當(dāng)前上傳進(jìn)度;并根據(jù)所述分片信息,通過該客戶端被分配的上傳節(jié)點(diǎn)進(jìn)行所述待上傳文件的文件片上傳; 分配給所述至少一個(gè)客戶端的上傳節(jié)點(diǎn)中的每個(gè)上傳節(jié)點(diǎn)分別執(zhí)行:根據(jù)與該上傳節(jié)點(diǎn)所對(duì)應(yīng)的客戶端上傳的所述待上傳文件的文件片,更新所述數(shù)據(jù)中心保存的所述當(dāng)前上傳進(jìn)度;讀取所述數(shù)據(jù)中心匯總后的所述待上傳文件的更新進(jìn)度,并將所述更新進(jìn)度發(fā)送給對(duì)應(yīng)的客戶端,由所述客戶端顯示所述更新進(jìn)度; 如果所述狀態(tài)為已完成上傳,則所述調(diào)度中心向所述至少一個(gè)客戶端返回上傳成功的信息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,形成所述文件指紋的方式包括: 判斷所述待上傳文件的文件大小是否大于預(yù)設(shè)值: 如果否,則對(duì)所述待上傳文件的文件內(nèi)容、文件大小以及文件類型進(jìn)行哈希運(yùn)算獲得所述文件指紋; 如果是,則將所述待上傳文件劃`分為預(yù)設(shè)個(gè)數(shù)的文件段,并從每個(gè)文件段中提取預(yù)設(shè)字節(jié),對(duì)所述預(yù)設(shè)字節(jié)、文件大小以及文件類型進(jìn)行哈希運(yùn)算獲得所述文件指紋。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,為所述至少一個(gè)客戶端中的每個(gè)客戶端分別分配一個(gè)上傳節(jié)點(diǎn),包括: 針對(duì)所述至少一個(gè)客戶端中的每個(gè)客戶端分別執(zhí)行: 根據(jù)該客戶端的IP地址和預(yù)設(shè)上傳節(jié)點(diǎn)集合中的上傳節(jié)點(diǎn)的IP地址,為該客戶端分配一個(gè)上傳節(jié)點(diǎn);或 根據(jù)該客戶端的IP地址所屬網(wǎng)段的信息和預(yù)設(shè)上傳節(jié)點(diǎn)集合中的上傳節(jié)點(diǎn)的IP地址分別所屬網(wǎng)段的信息,為該客戶端分配一個(gè)上傳節(jié)點(diǎn)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述至少一個(gè)客戶端通過對(duì)應(yīng)的上傳節(jié)點(diǎn)進(jìn)行文件片上傳,包括: 所述客戶端向?qū)?yīng)的上傳節(jié)點(diǎn)發(fā)送文件片上傳請(qǐng)求,所述請(qǐng)求包含申請(qǐng)上傳文件片的數(shù)目; 所述上傳節(jié)點(diǎn)從所述數(shù)據(jù)中心讀取未上傳文件片的信息,并從中選取出滿足所述客戶端申請(qǐng)數(shù)目的待上傳文件片分配給所述客戶端; 所述客戶端將所述待上傳文件片上傳到所述上傳節(jié)點(diǎn)。
5.—種云上傳方法,其特征在于,所述方法包括: 調(diào)度中心接收至少一個(gè)客戶端發(fā)送的文件上傳請(qǐng)求,所述請(qǐng)求包括待上傳文件的文件指紋; 所述調(diào)度中心根據(jù)所述文件指紋查詢數(shù)據(jù)中心,判斷所述待上傳文件的狀態(tài):如果所述狀態(tài)為已完成上傳,則所述調(diào)度中心向所述至少一個(gè)客戶端返回上傳成功的信息; 如果所述狀態(tài)為未完成上傳,則所述調(diào)度中心從所述數(shù)據(jù)中心獲取所述待上傳文件的當(dāng)前上傳進(jìn)度以及分片信息,并為所述至少一個(gè)客戶端中的每個(gè)客戶端分別分配一個(gè)上傳節(jié)點(diǎn),將所述當(dāng)前上傳進(jìn)度、分片信息以及分配的上傳節(jié)點(diǎn)發(fā)送給對(duì)應(yīng)的客戶端。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,為所述至少一個(gè)客戶端中的每個(gè)客戶端分別分配一個(gè)上傳節(jié)點(diǎn),包括: 針對(duì)所述至少一個(gè)客戶端中的每個(gè)客戶端分別執(zhí)行: 根據(jù)該客戶端的IP地址和預(yù)設(shè)上傳節(jié)點(diǎn)集合中的上傳節(jié)點(diǎn)的IP地址,為該客戶端分配一個(gè)上傳節(jié)點(diǎn);或 根據(jù)該客戶端的IP地址所屬網(wǎng)段的信息和預(yù)設(shè)上傳節(jié)點(diǎn)集合中的上傳節(jié)點(diǎn)的IP地址分別所屬網(wǎng)段的信息,為該客戶端分配一個(gè)上傳節(jié)點(diǎn)。
7.一種調(diào)度設(shè)備,其特征在于,所述設(shè)備包括: 接收單元,用于接收至少一個(gè)客戶端發(fā)送的文件上傳請(qǐng)求,所述請(qǐng)求包括待上傳文件的文件指紋; 判斷單元,用于根據(jù)所述文件指紋查詢數(shù)據(jù)中心,判斷所述待上傳文件的狀態(tài); 返回單元,用于在所述狀態(tài)為已完成上傳時(shí),向所述至少一個(gè)客戶端返回上傳成功的信息; 獲取單元,用于在所述狀態(tài)為未完成上傳時(shí),從所述數(shù)據(jù)中心獲取所述待上傳文件的當(dāng)前上傳進(jìn)度以及分片信息; 分配單元,用于為所述至少一個(gè)客戶端中的每個(gè)客戶端分別分配一個(gè)上傳節(jié)點(diǎn); 發(fā)送單元,用于將所述當(dāng)前上傳進(jìn)度、分片信息以及分配的上傳節(jié)點(diǎn)發(fā)送給對(duì)應(yīng)的客戶端。
8.根據(jù)權(quán)利要求7所述的設(shè)備,其特征在于, 所述分配單元,具體用于根據(jù)該客戶端的IP地址和預(yù)設(shè)上傳節(jié)點(diǎn)集合中的上傳節(jié)點(diǎn)的IP地址,為該客戶端分配一個(gè)上傳節(jié)點(diǎn);或 所述分配單元,具體用于根據(jù)該客戶端的IP地址所屬網(wǎng)段的信息和預(yù)設(shè)上傳節(jié)點(diǎn)集合中的上傳節(jié)點(diǎn)的IP地址分別所屬網(wǎng)段的信息,為該客戶端分配一個(gè)上傳節(jié)點(diǎn)。
9.一種云上傳方法,其特征在于,所述方法包括: 客戶端向調(diào)度中心發(fā)送文件上傳請(qǐng)求,所述請(qǐng)求包括待上傳文件的文件指紋,以使所述調(diào)度中心根據(jù)所述文件指紋查詢數(shù)據(jù)中心,判斷所述待上傳文件的狀態(tài); 所述客戶端在所述調(diào)度中心判斷所述待上傳文件未完成上傳時(shí),接收所述調(diào)度中心發(fā)送的所述待上傳文件的當(dāng)前上傳進(jìn)度、分片信息以及為該客戶端分配的上傳節(jié)點(diǎn); 所述客戶端顯示所述當(dāng)前上傳進(jìn)度,并根據(jù)所述分片信息,通過該客戶端分配的上傳節(jié)點(diǎn)進(jìn)行所述待上傳文件的文件片上傳; 所述客戶端接收并顯示所述上傳節(jié)點(diǎn)發(fā)送的更新進(jìn)度,所述更新進(jìn)度由所述數(shù)據(jù)中心匯總,并由所述上傳節(jié)點(diǎn)從所述數(shù)據(jù)中心讀??; 所述客戶端在所述調(diào)度中心判斷所述待上傳文件已完成上傳時(shí),接收所述調(diào)度中心返回的上傳成功的信息。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述客戶端形成所述文件指紋的方式包括: 判斷所述待上傳文件的文件大小是否大于預(yù)設(shè)值: 如果否,則對(duì)所述待上傳文件的文件內(nèi)容、文件大小以及文件類型進(jìn)行哈希運(yùn)算獲得所述文件指紋; 如果是,則將所述待上傳文件劃分為預(yù)設(shè)個(gè)數(shù)的文件段,并從每個(gè)文件段中提取預(yù)設(shè)字節(jié),對(duì)所述預(yù)設(shè)字節(jié)、文件大小以及文件類型進(jìn)行哈希運(yùn)算獲得所述文件指紋。
11.根據(jù)權(quán)利要求9所述的方法,其特征在于,通過該客戶端分配的上傳節(jié)點(diǎn)進(jìn)行所述待上傳文件的文件片上傳,包括: 所述客戶端向?qū)?yīng)的上傳節(jié)點(diǎn)發(fā)送文件片上傳請(qǐng)求,所述請(qǐng)求包含申請(qǐng)上傳文件片的數(shù)目; 所述客戶端接收所述上傳節(jié)點(diǎn)分配的滿足所述客戶端申請(qǐng)數(shù)目的待上傳文件片的信息; 所述客戶端將所述待上傳文件片上傳到所述上傳節(jié)點(diǎn)。
12.—種客戶端,其特征在于,所述客戶端包括: 發(fā)送單元,用于向調(diào)度中心發(fā)送文件上傳請(qǐng)求,所述請(qǐng)求包括待上傳文件的文件指紋,以使所述調(diào)度中心根據(jù)所述文件指紋查詢數(shù)據(jù)中心,判斷所述待上傳文件的狀態(tài); 接收單元,用于在所述調(diào)度中`心判斷所述待上傳文件未完成上傳時(shí),接收所述調(diào)度中心發(fā)送的所述待上傳文件的當(dāng)前上傳進(jìn)度、分片信息以及為本客戶端分配的上傳節(jié)點(diǎn);顯示單元,用于顯示所述當(dāng)前上傳進(jìn)度; 上傳單元,用于根據(jù)所述分片信息,通過所述上傳節(jié)點(diǎn)進(jìn)行所述待上傳文件的文件片上傳; 所述顯示單元,還用于接收并顯示所述上傳節(jié)點(diǎn)發(fā)送的更新進(jìn)度,所述更新進(jìn)度由所述數(shù)據(jù)中心匯總,并由所述上傳節(jié)點(diǎn)從所述數(shù)據(jù)中心讀?。? 所述接收單元,還用于在所述調(diào)度中心判斷所述待上傳文件已完成上傳時(shí),接收所述調(diào)度中心返回的上傳成功的信息。
13.根據(jù)權(quán)利要求12所述的客戶端,其特征在于,所述客戶端還包括: 文件大小判斷單元,用于判斷所述待上傳文件的文件大小是否大于預(yù)設(shè)值: 哈希運(yùn)算單元,用于在所述待上傳文件的大小不大于所述預(yù)設(shè)值時(shí),對(duì)所述待上傳文件的文件內(nèi)容、文件大小以及文件類型進(jìn)行哈希運(yùn)算獲得所述文件指紋; 提取單元,用于在所述待上傳文件的大小大于所述預(yù)設(shè)值時(shí),將所述待上傳文件劃分為預(yù)設(shè)個(gè)數(shù)的文件段,并從每個(gè)文件段中提取預(yù)設(shè)字節(jié); 所述哈希運(yùn)算單元,還用于對(duì)所述預(yù)設(shè)字節(jié)、文件大小以及文件類型進(jìn)行哈希運(yùn)算獲得所述文件指紋。
14.根據(jù)權(quán)利要求12所述的客戶端,其特征在于,所述上傳單元包括: 上傳請(qǐng)求發(fā)送單元,用于向所述上傳節(jié)點(diǎn)發(fā)送文件片上傳請(qǐng)求,所述請(qǐng)求包含申請(qǐng)上傳文件片的數(shù)目; 文件片接收單元,用于接收所述上傳節(jié)點(diǎn)分配的滿足所述客戶端申請(qǐng)數(shù)目的待上傳文件片的信息;上傳子單元,用于將所述待上傳文件片上傳到所述上傳節(jié)點(diǎn)。
15.一種云上傳系統(tǒng),其特征在于,所述系統(tǒng)包括調(diào)度中心、數(shù)據(jù)中心、至少一個(gè)上傳節(jié)點(diǎn),所述數(shù)據(jù)中心分別與所述調(diào)度中心、所述至少一個(gè)上傳節(jié)點(diǎn)相通信; 所述數(shù)據(jù)中心,用于保存文件的上傳進(jìn)度、分片策略及調(diào)度策略; 所述調(diào)度中心,用于接收至少一個(gè)客戶端發(fā)送的文件上傳請(qǐng)求,并根據(jù)所述請(qǐng)求中包含的待上傳文件的文件指紋查詢?cè)摯蟼魑募谒鰯?shù)據(jù)中心的狀態(tài): 如果所述狀態(tài)為已完成上傳,則所述調(diào)度中心向所述至少一個(gè)客戶端返回上傳成功的信息; 如果所述狀態(tài)為未完成上傳,則所述調(diào)度中心從所述數(shù)據(jù)中心獲取所述待上傳文件的當(dāng)前上傳進(jìn)度以及分片信息,并利用調(diào)度策略為所述至少一個(gè)客戶端中的每個(gè)客戶端分別分配一個(gè)上傳節(jié)點(diǎn),將所述當(dāng)前上傳進(jìn)度、分片信息以及分配的上傳節(jié)點(diǎn)發(fā)送給對(duì)應(yīng)的客戶端,由所述客戶端顯示所述當(dāng)前上傳進(jìn)度; 所述上傳節(jié)點(diǎn),用于接收對(duì)應(yīng)的客戶端上傳的所述待上傳文件的文件片,并根據(jù)接收到的文件片更新所述數(shù)據(jù)中心保存的所述當(dāng)前上傳進(jìn)度; 所述數(shù)據(jù)中心,還用于匯總每個(gè)上傳節(jié)點(diǎn)更新的進(jìn)度,并通過所述上傳節(jié)點(diǎn)將更新進(jìn)度發(fā)送給對(duì)應(yīng)的客戶端,由所述客戶端顯示所述更新進(jìn)度。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其特征在于,在形成所述文件指紋時(shí), 所述客戶端,用于在所述待上傳文件的文件大小不大于預(yù)設(shè)值時(shí),對(duì)所述待上傳文件的文件內(nèi)容、文件大小以及文件類型進(jìn)行哈希運(yùn)算獲得所述文件指紋;或者, 所述客戶端,用于在所述待上傳文件的文件大小大于預(yù)設(shè)值時(shí),將所述待上傳文件劃分為預(yù)設(shè)個(gè)數(shù)的文件段,并從每個(gè)文件段中提取預(yù)設(shè)字節(jié),對(duì)所述預(yù)設(shè)字節(jié)、文件大小以及文件類型進(jìn)行哈希運(yùn)算獲得所述文件指紋。
17.根據(jù)權(quán)利要求15所述的系統(tǒng),其特征在于,所述調(diào)度策略為:根據(jù)客戶端和上傳節(jié)點(diǎn)的IP地址和/或網(wǎng)段信息為客戶端分配上傳節(jié)點(diǎn)。
18.根據(jù)權(quán)利要求15所述的系統(tǒng),其特征在于,在所述上傳節(jié)點(diǎn)接收對(duì)應(yīng)的客戶端上傳的文件片時(shí), 所述上傳節(jié)點(diǎn),用于接收所述客戶端發(fā)送的文件片上傳請(qǐng)求,所述請(qǐng)求包含申請(qǐng)上傳文件片的數(shù)目;并從所述數(shù)據(jù)中心讀取未上傳文件片的信息,從中選取出滿足所述客戶端申請(qǐng)數(shù)目的待上傳文件片分配給所述客戶端; 所述客戶端,用于將所述上傳節(jié)點(diǎn)分配的待上傳文件片上傳到所述上傳節(jié)點(diǎn)。
【文檔編號(hào)】H04L29/08GK103561100SQ201310547408
【公開日】2014年2月5日 申請(qǐng)日期:2013年11月6日 優(yōu)先權(quán)日:2013年11月6日
【發(fā)明者】胡勇, 薛偉, 陳翔, 王國強(qiáng), 魏澤濤, 張清柱 申請(qǐng)人:樂視網(wǎng)信息技術(shù)(北京)股份有限公司