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