一種文件傳輸管理方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于文件傳輸領(lǐng)域,尤其涉及一種文件傳輸管理方法及系統(tǒng)。
【背景技術(shù)】
[0002]現(xiàn)有的很多下載服務(wù)商支持下載的斷點(diǎn)續(xù)傳功能,但是對(duì)于基于HTTP協(xié)議的大文件上傳卻是一個(gè)空缺??蛻舳嗽谏蟼魑募r(shí),很有可能因網(wǎng)絡(luò)中斷、操作系統(tǒng)等原因造成上傳中斷或停止,不能將文件的未上傳部分繼續(xù)上傳,致使客戶端再次上傳時(shí)必須重新開始,這樣既浪費(fèi)網(wǎng)絡(luò)資源又浪費(fèi)時(shí)間,降低了傳輸效率。
【發(fā)明內(nèi)容】
[0003]本發(fā)明提供一種文件傳輸管理方法及系統(tǒng),以解決上述問題。
[0004]本發(fā)明提供一種文件傳輸管理方法。上述方法包括以下步驟:文件管理服務(wù)器接收文件狀態(tài)請(qǐng)求后,向客戶端反饋文件狀態(tài)響應(yīng);所述客戶端根據(jù)文件狀態(tài)響應(yīng)中攜帶的參數(shù)類型,確定對(duì)應(yīng)的文件傳輸控制策略。
[0005]本發(fā)明還提供一種文件傳輸管理系統(tǒng),上述系統(tǒng)包括客戶端、文件管理服務(wù)器,所述客戶端與所述文件管理服務(wù)器相連;所述客戶端,用于向所述文件管理服務(wù)器發(fā)送文件狀態(tài)請(qǐng)求;所述客戶端還用于根據(jù)所述文件管理服務(wù)器反饋的文件狀態(tài)響應(yīng)中攜帶的參數(shù)類型,確定對(duì)應(yīng)的文件傳輸控制策略;所述文件管理服務(wù)器,用于接收文件狀態(tài)請(qǐng)求后,并向所述客戶端反饋文件狀態(tài)響應(yīng)。
[0006]相較于先前技術(shù),本發(fā)明提供的一種文件傳輸管理方法及系統(tǒng),本發(fā)明中通過客戶端向文件管理服務(wù)器發(fā)送文件狀態(tài)請(qǐng)求,并根據(jù)文件管理服務(wù)器反饋的文件狀態(tài)響應(yīng)中攜帶的參數(shù)類型,確定對(duì)應(yīng)的文件傳輸控制策略,實(shí)現(xiàn)了文件的分段傳輸,大大節(jié)約了上傳時(shí)間,提尚了上傳效率。
[0007]通過以下方案:若所述文件狀態(tài)響應(yīng)中攜帶的參數(shù)類型為文件存在參數(shù)且文件整體存在,判斷得到所述客戶端存儲(chǔ)的文件MD5值與所述文件管理服務(wù)器存儲(chǔ)的文件MD5值相同,則所述客戶端存儲(chǔ)的文件與所述文件管理服務(wù)器存儲(chǔ)的文件為同一文件,發(fā)送文件傳輸結(jié)束信息;若所述文件狀態(tài)響應(yīng)中攜帶的參數(shù)類型為文件存在參數(shù)且文件整體存在,判斷得到所述客戶端存儲(chǔ)的文件MD5值與所述文件管理服務(wù)器存儲(chǔ)的文件MD5值不相同,則所述客戶端存儲(chǔ)的文件與所述文件管理服務(wù)器存儲(chǔ)的文件不是同一文件,則所述文件管理服務(wù)器刪除存儲(chǔ)的文件,所述客戶端重新向所述文件管理服務(wù)器發(fā)送上傳請(qǐng)求;若所述文件狀態(tài)響應(yīng)中攜帶的參數(shù)類型為文件存在參數(shù)且文件部分存在,則所述客戶端向所述文件管理服務(wù)器發(fā)送文件增量上傳請(qǐng)求,所述文件管理服務(wù)器向所述客戶端反饋文件傳輸結(jié)果響應(yīng),所述客戶端根據(jù)所述文件傳輸結(jié)果響應(yīng)中攜帶的參數(shù)類型,控制文件傳輸;既實(shí)現(xiàn)了文件分段傳輸,也對(duì)上傳后的文件進(jìn)行正確性驗(yàn)證,從而既保證了文件上傳的效率,也保證了文件上傳的安全性,避免了文件在上傳過程中可能被非法修改。
【附圖說明】
[0008]此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0009]圖1所示為根據(jù)本發(fā)明的較佳實(shí)施例提供的文件傳輸管理方法的流程圖;
[0010]圖2所示為根據(jù)本發(fā)明的較佳實(shí)施例提供的文件傳輸管理系統(tǒng)的結(jié)構(gòu)示意圖;
[0011]圖3所示為根據(jù)本發(fā)明的另一優(yōu)選實(shí)施例提供的文件傳輸管理方法的流程示意圖。
【具體實(shí)施方式】
[0012]下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0013]如圖1所示為根據(jù)本發(fā)明的較佳實(shí)施例提供的文件傳輸管理方法的流程圖。如圖1所示,本發(fā)明的較佳實(shí)施例提供的文件傳輸管理方法包括步驟101-102。
[0014]步驟101:文件管理服務(wù)器接收文件狀態(tài)請(qǐng)求后,向客戶端反饋文件狀態(tài)響應(yīng);
[0015]所述文件狀態(tài)請(qǐng)求為HEAD請(qǐng)求,其中,所述HEAD請(qǐng)求中攜帶了文件實(shí)體參數(shù)。
[0016]所述文件狀態(tài)響應(yīng)中攜帶的參數(shù)類型包括文件存在參數(shù)即2000K1參數(shù)、文件不存在參數(shù)即404參數(shù)、資源沖突參數(shù)即409參數(shù)。
[0017]所述文件存在包括文件整體存在、文件部分存在。
[0018]所述文件部分存在是指客戶端存儲(chǔ)的文件長(zhǎng)度即Content-Length大于所述文件管理服務(wù)器存儲(chǔ)的文件長(zhǎng)度Content-Length。
[0019]步驟102:所述客戶端根據(jù)文件狀態(tài)響應(yīng)中攜帶的參數(shù)類型,確定對(duì)應(yīng)的文件傳輸控制策略。
[0020]所述客戶端根據(jù)文件狀態(tài)響應(yīng)中攜帶的參數(shù)類型,確定對(duì)應(yīng)的文件傳輸控制策略的過程為:
[0021]若所述文件狀態(tài)響應(yīng)中攜帶的參數(shù)類型為文件存在參數(shù)且文件整體存在,判斷得到所述客戶端存儲(chǔ)的文件MD5值與所述文件管理服務(wù)器存儲(chǔ)的文件MD5值相同,則所述客戶端存儲(chǔ)的文件與所述文件管理服務(wù)器存儲(chǔ)的文件為同一文件,發(fā)送文件傳輸結(jié)束信息;
[0022]若所述文件狀態(tài)響應(yīng)中攜帶的參數(shù)類型為文件存在參數(shù)且文件整體存在,判斷得到所述客戶端存儲(chǔ)的文件MD5值與所述文件管理服務(wù)器存儲(chǔ)的文件MD5值不相同,則所述客戶端存儲(chǔ)的文件與所述文件管理服務(wù)器存儲(chǔ)的文件不是同一文件,則所述文件管理服務(wù)器刪除存儲(chǔ)的文件,所述客戶端重新向所述文件管理服務(wù)器發(fā)送上傳請(qǐng)求;
[0023]若所述文件狀態(tài)響應(yīng)中攜帶的參數(shù)類型為文件存在參數(shù)且文件部分存在,則所述客戶端向所述文件管理服務(wù)器發(fā)送文件增量上傳請(qǐng)求,所述文件管理服務(wù)器向所述客戶端反饋文件傳輸結(jié)果響應(yīng),所述客戶端根據(jù)所述文件傳輸結(jié)果響應(yīng)中攜帶的參數(shù)類型,控制文件傳輸。
[0024]所述文件傳輸結(jié)果響應(yīng)中攜帶的參數(shù)類型包括文件上傳成功參數(shù)即2000K2參數(shù)、資源沖突參數(shù)即409參數(shù)、文件錯(cuò)誤參數(shù);其中,所述文件錯(cuò)誤參數(shù)包括400參數(shù)、421參數(shù)、422參數(shù)、423參數(shù)。
[0025]所述客戶端根據(jù)所述文件傳輸結(jié)果響應(yīng)中攜帶的參數(shù)類型,確定對(duì)應(yīng)的文件傳輸控制策略的過程為:所述文件傳輸結(jié)果響應(yīng)中攜帶的參數(shù)類型為資源沖突參數(shù),則所述客戶端重新向所述文件管理服務(wù)器發(fā)送文件狀態(tài)請(qǐng)求。
[0026]當(dāng)所述文件傳輸結(jié)果響應(yīng)中攜帶的參數(shù)類型為文件上傳成功參數(shù)即2000K2參數(shù)時(shí),所述客戶端再次向所述文件管理服務(wù)器發(fā)送文件狀態(tài)請(qǐng)求后,所述文件管理服務(wù)器向所述客戶端反饋文件狀態(tài)響應(yīng),所述客戶端根據(jù)文件狀態(tài)響應(yīng)中攜帶的參數(shù)類型,確定對(duì)應(yīng)的文件傳輸控制策略。
[0027]下面舉例進(jìn)行詳細(xì)說明:
[0028]在客戶端和文件管理服務(wù)器進(jìn)行文件傳輸?shù)倪^程中,具體如圖3所示,客戶端首先向文件管理服務(wù)器發(fā)送文件I的基于HTTP的HEAD請(qǐng)求(即文件狀態(tài)請(qǐng)求),文件管理服務(wù)器接收文件I的文件狀態(tài)請(qǐng)求后,判斷自身是否存儲(chǔ)文件I。
[0029]當(dāng)文件管理服務(wù)器判斷得到自身存儲(chǔ)有文件I (即文件存在),并且文件I沒有被鎖定、文件I的MD5值不為空,文件管理服務(wù)器向客戶端發(fā)送攜帶文件存在參數(shù)(即2000K1)的文件狀態(tài)響應(yīng)。
[0030]在另一個(gè)優(yōu)選的實(shí)施例中,當(dāng)文件管理服務(wù)器判斷得到自身存儲(chǔ)有文件1(即文件存在),并且文件I沒有被鎖定、文件I的MD5值為空,則鎖定文件1,計(jì)算文件I的MD5值,并將MD5值存儲(chǔ)在文件I對(duì)應(yīng)的索引中,解除鎖定后,文件管理服務(wù)器向客戶端發(fā)送攜帶文件存在參數(shù)(即2000K1)的文件狀態(tài)響應(yīng)。
[0031]在又一個(gè)優(yōu)選的實(shí)施例中,當(dāng)判斷得到文件管理服務(wù)器中存儲(chǔ)有文件1,并且文件I被鎖定,文件管理服務(wù)器向客戶端發(fā)送攜帶資源沖突參數(shù)(即409參數(shù),409參數(shù)是指文件管理服務(wù)器上文件正在被其他客戶端上傳或正在計(jì)算MD5,響應(yīng)中不包含Content-Length和ETag頭部)的文件狀態(tài)響應(yīng)。客戶端收到文件狀態(tài)響應(yīng)后繼續(xù)向文件管理服務(wù)器發(fā)送基于HTTP的HEAD請(qǐng)求;
[0032]當(dāng)客戶端接收到文件管理服務(wù)器發(fā)送攜帶文件存在參數(shù)2000K1 (參數(shù)2000K1中包含Content-Length和ETag頭部)的文件狀態(tài)響應(yīng),則將文件管理服務(wù)器中存儲(chǔ)的文件I的長(zhǎng)度和客戶端存儲(chǔ)的文件I的長(zhǎng)度進(jìn)行比較:
[0033]當(dāng)通過比較得到文件管理服務(wù)器存儲(chǔ)的文件I的長(zhǎng)度(Content-Length)小于客戶端存儲(chǔ)的文件I的長(zhǎng)度(Content-Length),即文件部分存在,客戶端向文件管理服務(wù)器發(fā)送基于HTTP的POST請(qǐng)求(即文件增量上傳請(qǐng)求);
[0034]當(dāng)通過比較得到文件管理服務(wù)器存儲(chǔ)的文件I的長(zhǎng)度(Content-Length)等于客戶端存儲(chǔ)的文件I的長(zhǎng)度(Content-Length),即文件整體存在,客戶端比較文件管理服務(wù)器存儲(chǔ)的文件I的ETag (文件I在文件管理服務(wù)器上的MD5值)和客戶端存儲(chǔ)的文件I的(文件I在客戶端上的MD5值),若兩者存儲(chǔ)的文件I的MD5值相同,則判斷得到兩者存儲(chǔ)的文件I是同一文件,則發(fā)送文件傳輸結(jié)束信息;若兩者存儲(chǔ)的文件I的MD5值不相同,則判斷得到兩者存儲(chǔ)的文件I不是同一文件,文件管理服務(wù)器將在文件管理服務(wù)器上的文件I進(jìn)行刪除,所述客戶端重新向所述文件管理服務(wù)器發(fā)送上傳請(qǐng)求。
[0035]當(dāng)通過比較得到文件管理服務(wù)器存儲(chǔ)的文件I的長(zhǎng)度(Content-Length)大于客戶端存儲(chǔ)的文件I的長(zhǎng)度(Content-Length),需要對(duì)文件管理服務(wù)器存儲(chǔ)的文件I進(jìn)行刪除,刪除后客戶端向文件管理服務(wù)器發(fā)送文件狀態(tài)請(qǐng)求。
[0036]在又一優(yōu)選的實(shí)施例中,當(dāng)判斷得到文件管理服務(wù)器中未存儲(chǔ)文件I (即文件不存在),