異步傳輸文件的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明實施例提供了一種異步傳輸文件的方法及系統(tǒng)。該方法包括:第一端向第二端發(fā)送至少與待傳輸文件大小和分片大小有關(guān)的OPTIONS請求;第一端接收第二端確定的相應(yīng)的文件分片信息,文件分片信息至少包括多個分片內(nèi)容范圍的待傳輸列表;第一端向第二端發(fā)送用于待傳輸文件的多個異步上傳請求,每一異步上傳請求中至少包含各自的分片內(nèi)容范圍;第一端根據(jù)接收到所述第二端的反饋的更新的文件分片信息確定結(jié)束異步上傳或者重新提交用于所述待傳輸文件的所述多個異步上傳請求。本實施方式可以通過對上傳失敗的分片文件進行續(xù)傳,保證了文件傳輸?shù)臏蚀_性和可靠性;僅將上傳失敗的分片文件進行續(xù)傳,提高了文件上傳的速度;最大限度地利用了帶寬。
【專利說明】
異步傳輸文件的方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及傳輸文件的技術(shù),特別涉及一種異步傳輸文件的方法及系統(tǒng)。
【背景技術(shù)】
[0002]文件上傳的操作是互聯(lián)網(wǎng)中常見的操作之一。一般來說,利用Web將文件上傳至服務(wù)器的方法可以使用表單模式。具體可以將上傳類型定義為POST,編碼方式為multipart/form-data,然后填充數(shù)據(jù)至請求中即可。這樣的請求一般是流式的同步類型的上傳請求,一次只需開啟一個線程。
[0003]如果采用異步的形式,開啟多線程進行上傳,可以最大限度地提高上傳的速度和上傳效率。現(xiàn)有最優(yōu)的技術(shù)形式為利用XMLHttpRequest的FormData的形式進行異步上傳。具體可以利用FormData對象,通過JavaScript用一些鍵值對模擬一系列表單控件,最后利用XMLHttpRequest的send O方法來異步的提交FormData中的二進制數(shù)據(jù)。然而,異步上傳雖然速度快,但如果上傳過程中出現(xiàn)失敗,就無法進行續(xù)傳或者檢測上傳進度和上傳完整性。當文件非常大的時候,之前所傳輸?shù)臄?shù)據(jù)就會丟失,浪費上傳的時間。
[0004]因此,需要提出一種高效、可靠的異步傳輸數(shù)據(jù)的方法解決上述問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例提供了一種異步傳輸文件的方法及系統(tǒng),用以解決現(xiàn)有技術(shù)中無法進行續(xù)傳或者檢測上傳進度和上傳完整性。當文件非常大的時候,之前所傳輸?shù)臄?shù)據(jù)就會丟失,浪費上傳的時間的問題。
[0006]本發(fā)明實施例提供了一種異步傳輸文件的方法。該方法用于第一端和第二端之間的包含多個分片的文件的傳輸。該方法包括:
[0007]第一端向第二端發(fā)送至少與待傳輸文件大小和分片大小有關(guān)的OPT1NS請求;
[0008]所述第一端接收所述第二端根據(jù)所述OPT1NS請求確定的相應(yīng)的文件分片信息,所述文件分片信息至少包括多個分片內(nèi)容范圍的待傳輸列表;
[0009]所述第一端向所述第二端發(fā)送用于所述待傳輸文件的多個異步上傳請求,每一異步上傳請求中至少包含各自的分片內(nèi)容范圍;
[0010]所述第一端根據(jù)接收到所述第二端的反饋的更新的文件分片信息確定結(jié)束異步上傳或者重新提交用于所述待傳輸文件的所述多個異步上傳請求,所述更新的文件分片信息為:所述第二端統(tǒng)計的異步上傳期間上傳成功的分片內(nèi)容范圍的數(shù)量和上傳失敗的分片內(nèi)容范圍的數(shù)量,并在所述待傳輸列表中刪除上傳成功的分片內(nèi)容范圍的記錄,生成更新的文件分片信息。
[0011]本發(fā)明實施例提供了另一種異步傳輸文件的方法。該方法用于第一端和第二端之間的包含多個分片的文件的傳輸。該方法包括:
[0012]第二端接收第一端發(fā)送的至少與待傳輸文件大小和分片大小有關(guān)的OPT1NS請求;
[0013]所述第二端根據(jù)所述OPT1NS請求確定相應(yīng)的文件分片信息,并將所述分片信息向所述第一端發(fā)送,所述文件分片信息至少包括多個分片內(nèi)容范圍的待傳輸列表;
[0014]所述第二端根據(jù)接收的所述第一端發(fā)送的包括文件分片信息的多個異步上傳請求,執(zhí)行文件的異步上傳;
[0015]所述第二端統(tǒng)計異步上傳期間上傳成功的分片內(nèi)容范圍的數(shù)量和上傳失敗的分片內(nèi)容范圍的數(shù)量,并在所述待傳輸列表中刪除上傳成功的分片內(nèi)容范圍的記錄,生成更新的文件分片信息,并向所述第一端反饋更新的文件分片信息;
[0016]當收到所述第一端重新提交的用于所述待傳輸文件的所述多個異步上傳請求時,所述第二端只接收與所述更新的文件分片信息中的待傳輸列表中包含的分片內(nèi)容范圍對應(yīng)的異步上傳請求,執(zhí)行文件的續(xù)傳。
[0017]本發(fā)明實施例還提供了一種異步傳輸文件的系統(tǒng)。該系統(tǒng)用于傳輸包含多個分片的文件。該系統(tǒng)包括:第一端,所述第一端包括:
[0018]OPT1NS請求單元,配置為向第二端發(fā)送至少與待傳輸文件大小和分片大小有關(guān)的OPT1NS請求;
[0019]信息接收單元,配置為接收所述第二端根據(jù)所述OPT1NS請求確定的相應(yīng)的文件分片信息,所述文件分片信息至少包括多個分片內(nèi)容范圍的待傳輸列表;
[0020]上傳請求單元,配置為向所述第二端發(fā)送用于所述待傳輸文件的多個異步上傳請求,每一異步上傳請求中至少包含各自的分片內(nèi)容范圍;
[0021]上傳選擇單元,配置為根據(jù)接收到所述第二端的反饋的更新的文件分片信息確定結(jié)束異步上傳或者重新提交用于所述待傳輸文件的所述多個異步上傳請求,所述更新的文件分片信息為:所述第二端統(tǒng)計異步上傳期間上傳成功的分片內(nèi)容范圍的數(shù)量和上傳失敗的分片內(nèi)容范圍的數(shù)量,并在所述待傳輸列表中刪除上傳成功的分片內(nèi)容范圍的記錄,生成更新的文件分片信息。本發(fā)明實施例還提供了另一種異步傳輸文件的系統(tǒng)。所述系統(tǒng)用于傳輸包含多個分片的文件。所述系統(tǒng)包括:第二端,所述第二端包括:
[0022]OPT1NS請求接收單元,配置為接收第一端發(fā)送的至少與待傳輸文件大小和分片大小有關(guān)的OPT1NS請求;
[0023]信息生成/反饋單元,配置為根據(jù)所述OPT1NS請求確定相應(yīng)的文件分片信息,并將所述分片信息向所述第一端發(fā)送,所述文件分片信息至少包括多個分片內(nèi)容范圍的待傳輸列表;
[0024]上傳執(zhí)行單元,配置為根據(jù)接收的所述第一端發(fā)送的包括文件分片信息的多個異步上傳請求,執(zhí)行文件的異步上傳;
[0025]信息記錄/反饋單元,配置為統(tǒng)計異步上傳期間上傳成功的分片內(nèi)容范圍的數(shù)量和上傳失敗的分片內(nèi)容范圍的數(shù)量,并在所述待傳輸列表中刪除上傳成功的分片內(nèi)容范圍的記錄,生成更新的文件分片信息,并向所述第一端反饋更新的文件分片信息;
[0026]上傳接收選擇單元,配置為當收到所述第一端重新提交的用于所述待傳輸文件的所述多個異步上傳請求時,只接收與所述更新的文件分片信息中的待傳輸列表中包含的分片內(nèi)容范圍對應(yīng)的異步上傳請求,執(zhí)行文件的續(xù)傳。
[0027]—來,本實施方式可以在文件上傳之后,查找到上傳失敗的分片文件,并對其進行續(xù)傳,保證了文件傳輸?shù)臏蚀_性和可靠性;
[0028]二來,本實施方式僅將上傳失敗的分片文件進行續(xù)傳,而無需將所有的分片文件重新上傳,提高了文件上傳的速度;
[0029]三來,本實施方式通過文件分片的多線程上傳文件的方式,最大限度地利用了帶寬,節(jié)省了網(wǎng)絡(luò)資源;
[0030]四來,本實施方式通過待傳輸列表,可以檢驗上傳文件的進度和完整性。
【附圖說明】
[0031]為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0032]圖1為本發(fā)明異步傳輸文件的方法第一實施例流程示意圖;
[0033]圖2為本發(fā)明續(xù)傳優(yōu)化步驟第一實施例示意圖;
[0034]圖3為本發(fā)明異步傳輸文件的方法第二實施例流程示意圖;
[0035]圖4為本發(fā)明續(xù)傳優(yōu)化步驟第二實施例示意圖;
[0036]圖5為本發(fā)明一實施方式的待傳輸列表不意圖;
[0037]圖6為本發(fā)明異步傳輸文件的系統(tǒng)第一實施例結(jié)構(gòu)示意圖;
[0038]圖7為本發(fā)明異步傳輸文件的系統(tǒng)第二實施例結(jié)構(gòu)示意圖;
[0039]圖8為本發(fā)明一實施方式的異步傳輸文件的傳輸示意圖。
【具體實施方式】
[0040]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0041]圖1為本發(fā)明異步傳輸文件的方法第一實施例流程示意圖。如圖1所示,該方法包括以下步驟:
[0042]SlOl:第一端向第二端發(fā)送至少與待傳輸文件大小和分片大小有關(guān)的OPT1NS請求。
[0043]在本實施方式中,第一端向第二端發(fā)送至少與待傳輸文件大小FileSize和分片大小PartSize有關(guān)的OPT1NS請求。
[0044]S102第一端接收所述第二端根據(jù)所述OPT1NS請求確定的相應(yīng)的文件分片信息。
[0045]在本實施方式中,文件分片信息至少包括多個分片內(nèi)容范圍(例如范圍1、范圍2、范圍3……)的待傳輸列表(此部分內(nèi)容將在下文進行詳細描述)。
[0046]S103:第一端向所述第二端發(fā)送用于所述待傳輸文件的多個異步上傳請求。
[0047]在本實施方式中,每一異步上傳請求中至少包含各自的分片內(nèi)容范圍。
[0048]S104:第一端根據(jù)接收到第二端的反饋的上傳失敗的分片內(nèi)容范圍的信息確定結(jié)束異步上傳或者重新提交用于所述待傳輸文件的所述多個異步上傳請求。
[0049]在本實施方式中,可以當上傳失敗的分片內(nèi)容范圍的數(shù)量為O時,第一端結(jié)束異步上傳;也可以當上傳失敗的分片內(nèi)容范圍的數(shù)量不為O時,第一端重新提交用于所述待傳輸文件的所述多個異步上傳請求。
[0050]—來,本實施方式可以在文件上傳之后,查找到上傳失敗的分片文件,并對其進行續(xù)傳,保證了文件傳輸?shù)臏蚀_性和可靠性;
[0051]二來,本實施方式僅將上傳失敗的分片文件進行續(xù)傳,而無需將所有的分片文件重新上傳,提高了文件上傳的速度;
[0052]三來,本實施方式通過文件分片的多線程上傳文件的方式,最大限度地利用了帶寬,節(jié)省了網(wǎng)絡(luò)資源;
[0053]四來,本實施方式通過待傳輸列表,可以檢驗上傳文件的進度和完整性。
[0054]圖2為本發(fā)明續(xù)傳優(yōu)化步驟第一實施例示意圖。該步驟是在圖1文件傳輸?shù)幕A(chǔ)上所執(zhí)行續(xù)傳優(yōu)化步驟。二者相同或者相似之處不再贅述,在此僅描述二者不同之處。如圖2所示,該續(xù)傳優(yōu)化步驟包括以下步驟:
[0055]S201:所述第一端接收所述第二端反饋的再次更新的文件分片信息。
[0056]在本實施方式中,所述再次更新的文件分片信息為:所述第二端在所述續(xù)傳期間統(tǒng)計的續(xù)傳成功的分片內(nèi)容范圍的數(shù)量和續(xù)傳失敗的分片內(nèi)容范圍的數(shù)量,并在所述更新的待傳輸列表中刪除續(xù)傳成功的分片內(nèi)容范圍的記錄生成的信息。
[0057]S202:所述第一端根據(jù)接收的所述第二端反饋的再次更新的文件分片信息確定重新提交用于所述待傳輸文件的所述多個異步上傳請求。
[0058]S203:所述第一端至少執(zhí)行一次所述續(xù)傳優(yōu)化步驟,直到所述續(xù)傳失敗的分片內(nèi)容范圍的數(shù)量為O。
[0059]在本實施方式中,可以是當所述續(xù)傳失敗的分片內(nèi)容范圍的數(shù)量為O時,第一端結(jié)束續(xù)傳;當所述續(xù)傳失敗的分片內(nèi)容范圍的數(shù)量不為O時,第一端重新提交用于所述待傳輸文件的所述多個異步上傳請求,第二端只接收與所述再次更新的文件分片信息中的待傳輸列表中包含的分片內(nèi)容范圍對應(yīng)的異步上傳請求,執(zhí)行文件的續(xù)傳。
[0060]本實施方式通過續(xù)傳優(yōu)化步驟優(yōu)化了續(xù)傳過程,提高了續(xù)傳的文件成功率。進一步提高了包括了文件異步上傳過程和續(xù)傳過程的整體文件上傳過程的準確性和可靠性。
[0061]圖3為本發(fā)明異步傳輸文件的方法第二實施例流程示意圖。如圖3所示,該方法包括以下步驟:
[0062]S301:第二端接收第一端發(fā)送的至少與待傳輸文件大小和分片大小有關(guān)的OPT1NS 請求。
[0063]S302:第二端根據(jù)所述OPT1NS請求確定相應(yīng)的文件分片信息,并將所述分片信息向所述第一端發(fā)送。
[0064]在本實施方式中,所述文件分片信息至少包括多個分片內(nèi)容范圍的待傳輸列表。
[0065]S303:所述第二端根據(jù)接收的所述第一端發(fā)送的包括文件分片信息的多個異步上傳請求,執(zhí)行文件的異步上傳。
[0066]S304:所述第二端統(tǒng)計異步上傳期間上傳成功的分片內(nèi)容范圍的數(shù)量和上傳失敗的分片內(nèi)容范圍的數(shù)量,并在所述待傳輸列表中刪除上傳成功的分片內(nèi)容范圍的記錄,生成更新的文件分片信息,并向所述第一端反饋更新的文件分片信息。
[0067]S305:當收到所述第一端重新提交的用于所述待傳輸文件的所述多個異步上傳請求時,所述第二端只接收與所述更新的文件分片信息中的待傳輸列表中包含的分片內(nèi)容范圍對應(yīng)的異步上傳請求,執(zhí)行文件的續(xù)傳。
[0068]圖4為本發(fā)明續(xù)傳優(yōu)化步驟第二實施例示意圖。如圖4所示,該續(xù)傳優(yōu)化步驟包括以下步驟:
[0069]S401:所述第二端統(tǒng)計所述續(xù)傳期間續(xù)傳成功的分片內(nèi)容范圍的數(shù)量和續(xù)傳失敗的分片內(nèi)容范圍的數(shù)量,并在所述更新的待傳輸列表中刪除續(xù)傳成功的分片內(nèi)容范圍的記錄,生成再次更新的文件分片信息,并向所述第一端反饋再次更新的文件分片信息;
[0070]S402:當接收到所述第一端重新提交的用于所述待傳輸文件的所述多個異步上傳請求時,所述第二端只接收與所述再次更新的文件分片信息中的待傳輸列表中包含的分片內(nèi)容范圍對應(yīng)的異步上傳請求,執(zhí)行文件的續(xù)傳;
[0071]S403:所述第二端至少執(zhí)行一次所述續(xù)傳優(yōu)化步驟,直到所述續(xù)傳失敗的分片內(nèi)容范圍的數(shù)量為O。
[0072]本實施方式通過續(xù)傳優(yōu)化步驟優(yōu)化了續(xù)傳過程,提高了續(xù)傳的文件成功率。進一步提高了包括了文件異步上傳過程和續(xù)傳過程的整體文件上傳過程的準確性和可靠性。
[0073]在本實施方式中,該方法還可以包括:
[0074]在第一端結(jié)束異步上傳之后,所述第二端將拼接后的文件大小與所述待傳輸文件大小相比較,
[0075]當二者不一致時,所述第一端將不一致的結(jié)果反饋給所述第二端;
[0076]所述第一端根據(jù)反饋的不一致的結(jié)果執(zhí)行所述續(xù)傳優(yōu)化步驟。
[0077]本實施方式通過再次驗證文件的完整性,進一步提高了文件傳輸?shù)臏蚀_性。
[0078]在本實施方式中,第一端向第二端發(fā)送的OPT1NS請求包括:待傳輸文件名、待傳輸文件大小、分片大小、以及相應(yīng)的令牌;
[0079]所述第二端根據(jù)所述OPT1NS請求確定相應(yīng)的文件分片信息,所述文件分片信息至少包括多個分片內(nèi)容范圍的待傳輸列表包括:
[0080]所述第二端收到所述OPT1NS請求后,首先判斷緩存中是否存在所述OPT1NS請求中的令牌;
[0081 ]若不存在,則所述第二端根據(jù)OPT1NS請求確定并緩存相應(yīng)的文件分片信息,所述文件分片信息包括令牌和多個分片內(nèi)容范圍的待傳輸列表,所述多個分片內(nèi)容范圍由所述待傳輸文件大小和分片大小確定;
[0082]若存在,則所述第二端根據(jù)所述令牌確定曾緩存的相應(yīng)的最新狀態(tài)的文件分片信息。
[0083]本實施方式在續(xù)傳文件期間,優(yōu)先利用曾緩存的相應(yīng)的最新狀態(tài)的文件分片信息,減少了數(shù)據(jù)運算,提高了文件傳輸?shù)乃俣取?br>[0084]圖5為本發(fā)明一實施方式的待傳輸列表不意圖。如圖5所不,待傳輸列表可以包括:包括由密鑰信息和對應(yīng)的數(shù)據(jù)信息組成的第一記錄、第二記錄和第三記錄。密鑰信息包括令牌,令牌由與待傳輸文件和分片有關(guān)的內(nèi)容(例如賬戶和范圍)確定,其中:
[0085]第一記錄的密鑰信息可以包括所述令牌。第一記錄的數(shù)據(jù)信息可以包括分片元數(shù)據(jù)信息。分片元數(shù)據(jù)信息可以包括:文件大小、分片數(shù)量等。
[0086]第二記錄的密鑰信息可以包括:所述令牌和賬戶。第二記錄的數(shù)據(jù)信息可以包括:完成數(shù)量和錯誤數(shù)量和總數(shù)量。其中,完成數(shù)量+錯誤數(shù)量=總數(shù)量。
[0087]第三記錄的密鑰信息可以包括:所述令牌和不同分片內(nèi)容范圍的多個密鑰信息。第三記錄的數(shù)據(jù)信息可以包括:與所述多個密鑰信息相對應(yīng)的不同分片內(nèi)容范圍(例如范圍1、沮圍2、沮圍3......)的上傳完成情況。
[0088]在本實施方式中,可以設(shè)置第三記錄的數(shù)據(jù)信息的數(shù)值默認為O。當某一分片內(nèi)容成功傳輸時,將成功傳輸?shù)姆制瑑?nèi)容對應(yīng)的第三記錄的數(shù)據(jù)信息的數(shù)值變更為1,將完成數(shù)量增加I,并刪除第三記錄中對應(yīng)的密鑰信息和數(shù)據(jù)信息;當分片內(nèi)容傳輸失敗時,將傳輸失敗的分片內(nèi)容對應(yīng)的失敗數(shù)量增加I。
[0089]—來,本實施方式通過待傳輸列表,可以快速準確的記錄文件傳輸?shù)臓顟B(tài),提高了文件傳輸?shù)乃俣龋?br>[0090]二來,本實施方式通過設(shè)置由令牌確定的密鑰,進一步提升了數(shù)據(jù)傳輸?shù)陌踩浴?br>[0091]在本實施方式中,當所述上傳失敗的分片內(nèi)容范圍的數(shù)量為O或所述續(xù)傳失敗的分片內(nèi)容范圍的數(shù)量為O時,所述第二端刪除文件分片信息。
[0092]—來,本實施方式通過將接收的數(shù)據(jù)進行存儲(例如緩存),待處理完畢后再刪除緩存的數(shù)據(jù),能夠防止無效數(shù)據(jù)占用內(nèi)存資源,提高了資源利用率;
[0093]二來,本實施方式可以防止無效數(shù)據(jù)加入有效數(shù)據(jù)進行運算等帶來的運算錯誤的風險;
[0094]三來,本實施方式減少了數(shù)據(jù)處理量,提高了數(shù)據(jù)運算速度,進而提高了文件傳輸?shù)男省?br>[0095]圖6為本發(fā)明異步傳輸文件的系統(tǒng)第一實施例結(jié)構(gòu)示意圖。如圖6所示,
[0096]所述系統(tǒng)包括:第一端,所述第一端包括:
[0097]OPT1NS請求單元,配置為向第二端發(fā)送至少與待傳輸文件大小和分片大小有關(guān)的OPT1NS請求;
[0098]信息接收單元,配置為收所述第二端根據(jù)所述OPT1NS請求確定的相應(yīng)的文件分片信息,所述文件分片信息至少包括多個分片內(nèi)容范圍的待傳輸列表;
[0099]上傳請求單元,配置為向所述第二端發(fā)送用于所述待傳輸文件的多個異步上傳請求,每一異步上傳請求中至少包含各自的分片內(nèi)容范圍;
[0100]上傳選擇單元,配置為根據(jù)接收到所述第二端的反饋的上傳失敗的分片內(nèi)容范圍的數(shù)量確定結(jié)束異步上傳或者重新提交用于所述待傳輸文件的所述多個異步上傳請求。
[0101]在本實施方式中,所述第一端還包括:
[0102]續(xù)傳選擇單元,配置為根據(jù)接收的所述第二端反饋的再次更新的文件分片信息確定重新提交用于所述待傳輸文件的所述多個異步上傳請求,所述再次更新的文件分片信息為:所述第二端在所述續(xù)傳期間統(tǒng)計的續(xù)傳成功的分片內(nèi)容范圍的數(shù)量和續(xù)傳失敗的分片內(nèi)容范圍的數(shù)量,并在所述更新的待傳輸列表中刪除續(xù)傳成功的分片內(nèi)容范圍的記錄生成的信息。
[0103]—來,本實施方式可以在文件上傳之后,查找到上傳失敗的分片文件,并對其進行續(xù)傳,保證了文件傳輸?shù)臏蚀_性和可靠性;
[0104]二來,本實施方式僅將上傳失敗的分片文件進行續(xù)傳,而無需將所有的分片文件重新上傳,提高了文件上傳的速度;
[0105]三來,本實施方式通過文件分片的多線程上傳文件的方式,最大限度地利用了帶寬,節(jié)省了網(wǎng)絡(luò)資源;
[0106]四來,本實施方式通過待傳輸列表,可以檢驗上傳文件的進度和完整性。
[0107]圖7為本發(fā)明異步傳輸文件的系統(tǒng)第二實施例結(jié)構(gòu)示意圖。如圖7所示,
[0108]所述系統(tǒng)包括:第二端,所述第二端包括:
[0109]OPT1NS請求接收單元,配置為接收第一端發(fā)送的至少與待傳輸文件大小和分片大小有關(guān)的OPT1NS請求;
[0110]信息生成/反饋單元,配置為根據(jù)所述OPT1NS請求確定相應(yīng)的文件分片信息,并將所述分片信息向所述第一端發(fā)送,所述文件分片信息至少包括多個分片內(nèi)容范圍的待傳輸列表;
[0111]上傳執(zhí)行單元,配置為根據(jù)接收的所述第一端發(fā)送的包括文件分片信息的多個異步上傳請求,執(zhí)行文件的異步上傳;
[0112]信息記錄/反饋單元,配置為統(tǒng)計異步上傳期間上傳成功的分片內(nèi)容范圍的數(shù)量和上傳失敗的分片內(nèi)容范圍的數(shù)量,并在所述待傳輸列表中刪除上傳成功的分片內(nèi)容范圍的記錄,生成更新的文件分片信息,并向所述第一端反饋更新的文件分片信息;
[0113]上傳接收選擇單元,配置為當收到所述第一端重新提交的用于所述待傳輸文件的所述多個異步上傳請求時,只接收與所述更新的文件分片信息中的待傳輸列表中包含的分片內(nèi)容范圍對應(yīng)的異步上傳請求,執(zhí)行文件的續(xù)傳。
[0114]在本實施方式中,所述第二端還包括:
[0115]記錄更新/反饋單元,配置為統(tǒng)計所述續(xù)傳期間續(xù)傳成功的分片內(nèi)容范圍的數(shù)量和續(xù)傳失敗的分片內(nèi)容范圍的數(shù)量,并在所述更新的待傳輸列表中刪除續(xù)傳成功的分片內(nèi)容范圍的記錄,生成再次更新的文件分片信息,并向所述第一端反饋再次更新的文件分片信息;
[0116]續(xù)傳接收選擇單元,配置為當接收到所述第一端重新提交用于所述待傳輸文件的所述多個異步上傳請求時,只接收與所述再次更新的文件分片信息中的待傳輸列表中包含的分片內(nèi)容范圍對應(yīng)的異步上傳請求,執(zhí)行文件的續(xù)傳。
[0117]本實施方式通過增加記錄更新/反饋單元和續(xù)傳接收選擇單元來執(zhí)行續(xù)傳優(yōu)化步驟,優(yōu)化了續(xù)傳過程,提高了續(xù)傳的文件成功率。進一步提高了包括了文件異步上傳過程和續(xù)傳過程的整體文件上傳過程的準確性和可靠性。
[0118]在本實施方式中,第二端還可以包括刪除單元(圖中未進行標識)。刪除單元配置為當上傳失敗的分片內(nèi)容范圍的數(shù)量為O或所述續(xù)傳失敗的分片內(nèi)容范圍的數(shù)量為O時,刪除文件分片信息。
[0119]—來,本實施方式通過將接收的數(shù)據(jù)進行存儲(例如緩存),待處理完畢后再刪除緩存的數(shù)據(jù),能夠防止無效數(shù)據(jù)占用內(nèi)存資源,提高了資源利用率;
[0120]二來,本實施方式可以防止無效數(shù)據(jù)加入有效數(shù)據(jù)進行運算等帶來的運算錯誤的風險;
[0121]三來,本實施方式減少了數(shù)據(jù)處理量,提高了數(shù)據(jù)運算速度,進而提高了文件傳輸?shù)男省?br>[0122]在各個實施方式中,第一端可以為客戶端,第二端可以為服務(wù)器。
[0123]本實施方式在續(xù)傳文件期間,優(yōu)先利用曾緩存的相應(yīng)的最新狀態(tài)的文件分片信息,減少了數(shù)據(jù)運算,提高了文件傳輸?shù)乃俣取?br>[0124]圖8為本發(fā)明一實施方式的異步傳輸文件的傳輸示意圖。如圖8所示,異步傳輸文件的系統(tǒng)可以包括客戶端、服務(wù)器和緩存器(可以設(shè)置在服務(wù)器內(nèi),也可以設(shè)置在其它的具有存儲或者運算功能的設(shè)備內(nèi))。
[0125]下面具體說明本實施方式中的異步傳輸文件的方法其實現(xiàn)方式。參照圖6,其包括如下步驟:
[0126]第一步,客戶端向服務(wù)器發(fā)起OPT1NS請求。
[0127]在本實施方式中,該請求中可以包括文件名、文件大小、線程數(shù)以及分片大小信息,并且根據(jù)上述信息形成與之對應(yīng)的Token (例如令牌)信息。
[0128]第二步,服務(wù)器計算文件分片信息
[0129]在本實施方式中,服務(wù)器接收到OPT1NS請求后,根據(jù)文件大小、線程數(shù)以及分片大小信息計算出每一個包含Content-Range (例如內(nèi)容范圍)信息的分片。
[0130]第三步,服務(wù)器將分片元數(shù)據(jù)信息、計數(shù)信息以及分片寫入緩存器。
[0131 ]其中,分片元數(shù)據(jù)信息的Key (例如密鑰)為Token,Value為文件大小、分片數(shù)量的Json字符串;計數(shù)信息的Key為Token+Account,Value包括完成數(shù)量FinishCount、錯誤數(shù)量ErrorCount和總數(shù)量Al ICount ;分片的Key為Token+RangeN,Value值為O或I, O代表上傳成功,I代表上傳失敗。
[0132]第四步,客戶端執(zhí)行多線程異步傳輸。
[0133]第五步,服務(wù)器解析文件分片信息
[0134]在本實施方式中,傳輸時,服務(wù)器根據(jù)Token+RangeN查詢緩存,如果該Token+RangeN存在于分片的Key中,則開始上傳,否則斷開連接。上傳至服務(wù)器的分片的名稱記為Token.part[l---N]。
[0135]第六步,服務(wù)器更新文件分片信息
[0136]在本實施方式中,如果分片上傳成功并且分片的大小也驗證成功,則修改緩存中的數(shù)據(jù),將緩存中的該分片的Token+RangeN數(shù)據(jù)釋放,并且技術(shù)信息的Token+Account中的FinishCount 的數(shù)值加 I。
[ΟΙ37] 如果分片上傳失敗,則該分片的Token+RangeN的Value值由O變?yōu)镮 ,Token+Account 中的ErrorCount 值加 I。
[0138]當FinishCount+ErrorCount = AllCount時,代表本次上傳請求完成,但是存在傳輸失敗的分片;
[0139]當FinishCount= AllCount時,則本次異步傳輸全部完成,所有分片傳輸成功,將得到的N個Token.part [I...Ν]文件進行合并。
[0140]當?shù)谒牟接猩蟼魇〉姆制?,即Err or Count值不為0(或者FinishCount在AllCount),則客戶端向服務(wù)器發(fā)起續(xù)傳請求,并且在請求頭中加入Old-Token數(shù)據(jù),此時,在緩存中查找之前的分片元數(shù)據(jù)信息的Token數(shù)據(jù)。當該Token數(shù)據(jù)與在請求頭中加入的Old-Token數(shù)據(jù)一致時,則服務(wù)器根據(jù)分片元數(shù)據(jù)信息再次計算出相應(yīng)的Token+RangeN。
[0141]開始后續(xù)的異步傳輸,將ErrorCount的數(shù)值重新設(shè)置為0,并且只進行未完成的分片的上傳工作,重復步驟四,直至FinishCount=AlICount,所有分片傳輸完成。
[0142]第七步,合并分片文件。
[0143]在本實施方式中,將分片文件按文件的分配范圍進行拼接,也可以按時間戳等方式進行拼接,以保證準確還原待傳輸?shù)奈募?br>[0144]在本實施方式中,由分片元數(shù)據(jù)信息、計數(shù)信息以及分片寫入緩存的待傳輸列表與圖5列表類似,再此不再贅述。
[0145]本發(fā)明各個實施例中可以通過硬件處理器(hardware processor)和各單元來實現(xiàn)相關(guān)功能模塊的各項功能。
[0146]以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。
[0147]通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件。基于這樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。
[0148]最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
【主權(quán)項】
1.一種異步傳輸文件的方法,用于第一端和第二端之間的包含多個分片的文件的傳輸,其特征在于,包括: 第一端向第二端發(fā)送請求,所述請求包括待傳輸文件大小和分片大??; 所述第一端接收所述第二端根據(jù)所述請求確定的相應(yīng)的文件分片信息,所述文件分片信息至少包括多個分片內(nèi)容范圍的待傳輸列表; 所述第一端向所述第二端發(fā)送用于所述待傳輸文件的多個異步上傳請求,每一異步上傳請求中至少包含各自的分片內(nèi)容范圍; 所述第一端根據(jù)接收到所述第二端的反饋的更新的文件分片信息確定結(jié)束異步上傳或者重新提交用于所述待傳輸文件續(xù)傳的所述多個異步上傳請求,所述更新的文件分片信息為:所述第二端統(tǒng)計的異步上傳期間上傳成功的分片內(nèi)容范圍的數(shù)量和上傳失敗的分片內(nèi)容范圍的數(shù)量,并在所述待傳輸列表中刪除上傳成功的分片內(nèi)容范圍的記錄,生成更新的文件分片信息。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在執(zhí)行文件的續(xù)傳之后,還包括續(xù)傳優(yōu)化步驟: 所述第一端接收所述第二端反饋的再次更新的文件分片信息,所述再次更新的文件分片信息為:所述第二端統(tǒng)計的在所述續(xù)傳期間續(xù)傳成功的分片內(nèi)容范圍的數(shù)量和續(xù)傳失敗的分片內(nèi)容范圍的數(shù)量,并在所述更新的待傳輸列表中刪除續(xù)傳成功的分片內(nèi)容范圍的記錄生成的信息; 所述第一端根據(jù)接收的所述第二端反饋的再次更新的文件分片信息確定重新提交用于所述待傳輸文件的所述多個異步上傳請求; 所述第一端至少執(zhí)行一次所述續(xù)傳優(yōu)化步驟,直到所述續(xù)傳失敗的分片內(nèi)容范圍的數(shù)量為O。3.—種異步傳輸文件的方法,用于第一端和第二端之間的包含多個分片的文件的傳輸,其特征在于,包括: 第二端接收第一端發(fā)送的請求,所述請求包括待傳輸文件大小和分片大??; 所述第二端根據(jù)所述請求確定相應(yīng)的文件分片信息,并將所述分片信息向所述第一端發(fā)送,所述文件分片信息至少包括多個分片內(nèi)容范圍的待傳輸列表; 所述第二端根據(jù)接收的所述第一端發(fā)送的包括文件分片信息的多個異步上傳請求,執(zhí)行文件的異步上傳; 所述第二端統(tǒng)計異步上傳期間上傳成功的分片內(nèi)容范圍的數(shù)量和上傳失敗的分片內(nèi)容范圍的數(shù)量,并在所述待傳輸列表中刪除上傳成功的分片內(nèi)容范圍的記錄,生成更新的文件分片信息,并向所述第一端反饋更新的文件分片信息; 當收到所述第一端重新提交的用于所述待傳輸文件的所述多個異步上傳請求時,所述第二端接收與所述更新的文件分片信息中的待傳輸列表中包含的分片內(nèi)容范圍對應(yīng)的異步上傳請求,執(zhí)行文件的續(xù)傳。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在執(zhí)行文件的續(xù)傳之后,還包括續(xù)傳優(yōu)化步驟: 所述第二端統(tǒng)計所述續(xù)傳期間續(xù)傳成功的分片內(nèi)容范圍的數(shù)量和續(xù)傳失敗的分片內(nèi)容范圍的數(shù)量,并在所述更新的待傳輸列表中刪除續(xù)傳成功的分片內(nèi)容范圍的記錄,生成再次更新的文件分片信息,并向所述第一端反饋再次更新的文件分片信息; 當接收到所述第一端重新提交的用于所述待傳輸文件的所述多個異步上傳請求時,所述第二端只接收與所述再次更新的文件分片信息中的待傳輸列表中包含的分片內(nèi)容范圍對應(yīng)的異步上傳請求,執(zhí)行文件的續(xù)傳; 所述第二端至少執(zhí)行一次所述續(xù)傳優(yōu)化步驟,直到所述續(xù)傳失敗的分片內(nèi)容范圍的數(shù)量為O。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,當所述上傳失敗的分片內(nèi)容范圍的數(shù)量為O或所述續(xù)傳失敗的分片內(nèi)容范圍的數(shù)量為O時,所述第二端刪除文件分片信息。6.根據(jù)權(quán)利要求3-5中任一項所述的方法,其特征在于,所述第二端接收所述第一端發(fā)送的請求包括:待傳輸文件名、待傳輸文件大小、分片大小、以及相應(yīng)的令牌; 所述第二端根據(jù)所述請求確定相應(yīng)的文件分片信息,并將所述分片信息向所述第一端發(fā)送,所述文件分片信息至少包括多個分片內(nèi)容范圍的待傳輸列表包括: 所述第二端收到所述請求后,首先判斷緩存中是否存在所述請求中的令牌; 若不存在,則所述第二端根據(jù)請求確定并緩存相應(yīng)的文件分片信息,所述文件分片信息包括令牌和多個分片內(nèi)容范圍的待傳輸列表,所述多個分片內(nèi)容范圍由所述待傳輸文件大小和分片大小確定; 若存在,則所述第二端根據(jù)所述令牌確定曾緩存的相應(yīng)的最新狀態(tài)的文件分片信息。7.一種異步傳輸文件的系統(tǒng),其特征在于,所述系統(tǒng)包括: 請求單元,用于為向第二端發(fā)送請求,所述請求包括待傳輸文件大小和分片大?。恍畔⒔邮諉卧?,用于為接收所述第二端根據(jù)所述請求確定的相應(yīng)的文件分片信息,所述文件分片信息至少包括多個分片內(nèi)容范圍的待傳輸列表; 上傳請求單元,用于為向所述第二端發(fā)送用于所述待傳輸文件的多個異步上傳請求,每一異步上傳請求中至少包含各自的分片內(nèi)容范圍; 上傳選擇單元,用于為根據(jù)接收到所述第二端的反饋的更新的文件分片信息確定結(jié)束異步上傳或者重新提交用于所述待傳輸文件的所述多個異步上傳請求,所述更新的文件分片信息為:所述第二端統(tǒng)計異步上傳期間上傳成功的分片內(nèi)容范圍的數(shù)量和上傳失敗的分片內(nèi)容范圍的數(shù)量,并在所述待傳輸列表中刪除上傳成功的分片內(nèi)容范圍的記錄,生成更新的文件分片信息。8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,還包括: 續(xù)傳選擇單元,用于為根據(jù)接收的所述第二端反饋的再次更新的文件分片信息確定重新提交用于所述待傳輸文件的所述多個異步上傳請求,所述再次更新的文件分片信息為:所述第二端統(tǒng)計的所述續(xù)傳期間續(xù)傳成功的分片內(nèi)容范圍的數(shù)量和續(xù)傳失敗的分片內(nèi)容范圍的數(shù)量,并在所述更新的待傳輸列表中刪除續(xù)傳成功的分片內(nèi)容范圍的記錄生成的信息。9.一種異步傳輸文件的系統(tǒng),其特征在于,所述系統(tǒng)包括: 請求接收單元,用于為接收第一端發(fā)送的請求,所述請求包括待傳輸文件大小和分片大?。?信息生成/反饋單元,用于為根據(jù)所述請求確定相應(yīng)的文件分片信息,并將所述分片信息向所述第一端發(fā)送,所述文件分片信息至少包括多個分片內(nèi)容范圍的待傳輸列表; 上傳執(zhí)行單元,用于為根據(jù)接收的所述第一端發(fā)送的包括文件分片信息的多個異步上傳請求,執(zhí)行文件的異步上傳; 信息記錄/反饋單元,用于為統(tǒng)計異步上傳期間上傳成功的分片內(nèi)容范圍的數(shù)量和上傳失敗的分片內(nèi)容范圍的數(shù)量,并在所述待傳輸列表中刪除上傳成功的分片內(nèi)容范圍的記錄,生成更新的文件分片信息,并向所述第一端反饋更新的文件分片信息; 上傳接收選擇單元,用于為當收到所述第一端重新提交的用于所述待傳輸文件的所述多個異步上傳請求時,只接收與所述更新的文件分片信息中的待傳輸列表中包含的分片內(nèi)容范圍對應(yīng)的異步上傳請求,執(zhí)行文件的續(xù)傳。10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,還包括: 記錄更新/反饋單元,用于為統(tǒng)計所述續(xù)傳期間續(xù)傳成功的分片內(nèi)容范圍的數(shù)量和續(xù)傳失敗的分片內(nèi)容范圍的數(shù)量,并在所述更新的待傳輸列表中刪除續(xù)傳成功的分片內(nèi)容范圍的記錄,生成再次更新的文件分片信息,并向所述第一端反饋再次更新的文件分片信息;續(xù)傳接收選擇單元,用于為當接收到所述第一端重新提交用于所述待傳輸文件的所述多個異步上傳請求時,接收與所述再次更新的文件分片信息中的待傳輸列表中包含的分片內(nèi)容范圍對應(yīng)的異步上傳請求,執(zhí)行文件的續(xù)傳。
【文檔編號】H04L29/08GK105897825SQ201510809846
【公開日】2016年8月24日
【申請日】2015年11月20日
【發(fā)明人】崔嘯天
【申請人】樂視云計算有限公司