文件傳輸方法和裝置及服務(wù)器系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本申請涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,特別涉及一種文件傳輸方法和裝置及服務(wù)器系 統(tǒng)。
【背景技術(shù)】
[0002] 在網(wǎng)絡(luò)通信技術(shù)領(lǐng)域中,服務(wù)器和用戶終端之間經(jīng)常進(jìn)行文件的上傳和下載。比 如,用戶通過手機(jī)或電腦將圖片、音頻文件、視頻文件或文本資料上傳至服務(wù)器,或者通過 手機(jī)或電腦下載存儲(chǔ)在服務(wù)器中的圖片、音頻文件、視頻文件或文本資料。
[0003] 在用戶終端和服務(wù)器之間上傳或下載文件時(shí),會(huì)利用斷點(diǎn)續(xù)傳技術(shù)?,F(xiàn)有技術(shù)中, 斷點(diǎn)續(xù)傳技術(shù)會(huì)將文件劃分成若干固定大小的數(shù)據(jù)塊。文件傳輸過程中,可以有多個(gè)線程, 每個(gè)線程上傳或下載一個(gè)數(shù)據(jù)塊,當(dāng)一個(gè)文件的全部數(shù)據(jù)塊上傳或下載結(jié)束后,重新再合 成形成文件。在文件進(jìn)行上傳或下載的過程中,可能因網(wǎng)絡(luò)連接問題而出現(xiàn)傳輸失敗的情 況。比如在傳輸過程中網(wǎng)絡(luò)連接中斷,這會(huì)導(dǎo)致正在傳輸?shù)臄?shù)據(jù)塊傳輸失敗,在網(wǎng)絡(luò)恢復(fù)之 后,會(huì)從網(wǎng)絡(luò)中斷時(shí)傳輸失敗的數(shù)據(jù)塊處繼續(xù)傳輸,而無需將文件的全部數(shù)據(jù)塊重新再次 傳輸。
[0004] 請參閱圖1,在此舉例為用戶終端采用Http協(xié)議向服務(wù)器上傳文件,文件的名稱 為"Test, jpg",文件大小為1500字節(jié),將100字節(jié)作為一個(gè)數(shù)據(jù)塊,這樣一共有15個(gè)數(shù)據(jù) 塊。用戶終端向服務(wù)器發(fā)出Request請求,在一個(gè)Request請求中會(huì)包含文件名稱"Test, jpg",內(nèi)容范圍"〇~99/1500"以及當(dāng)前數(shù)據(jù)塊。其中,內(nèi)容范圍中的"0~99"表示"字節(jié) 起始地址~字節(jié)結(jié)束地址"," 1500"表示文件的總字節(jié)數(shù),當(dāng)前數(shù)據(jù)塊的字節(jié)為"字節(jié)起始 地址~字節(jié)結(jié)束地址"對(duì)應(yīng)的字節(jié)。服務(wù)器端接收一個(gè)Request請求后,會(huì)返回給用戶終端 一個(gè)Response,即響應(yīng)信息。在Response中會(huì)包括一個(gè)狀態(tài)碼。如果成功接收Request請 求的內(nèi)容,且當(dāng)前數(shù)據(jù)塊不是所述文件的最后一個(gè)數(shù)據(jù)塊,則狀態(tài)碼為206,表示用戶終端 可以繼續(xù)傳輸;若當(dāng)前數(shù)據(jù)塊是所述文件的最后一個(gè)數(shù)據(jù)塊,則狀態(tài)碼為200,告知用戶終 端的文件上傳成功結(jié)束。
[0005] 現(xiàn)有的斷點(diǎn)續(xù)傳技術(shù),在開始數(shù)據(jù)傳輸之前,按照固定的規(guī)則對(duì)文件劃分?jǐn)?shù)據(jù)塊, 每個(gè)數(shù)據(jù)塊包含的字節(jié)數(shù)量是固定的。對(duì)于用戶終端如手機(jī),存在使用Wifi上網(wǎng)和使用 2G上網(wǎng)的網(wǎng)絡(luò)速度區(qū)別。這樣,若所述數(shù)據(jù)塊包含的字節(jié)數(shù)量較多,則用戶使用2G上網(wǎng)上 傳或下載文件時(shí),由于網(wǎng)絡(luò)速度較慢,使得進(jìn)度條需要較長的時(shí)間才能夠出現(xiàn)變化,用戶無 法及時(shí)了解傳輸進(jìn)度,導(dǎo)致用戶體驗(yàn)較差。如果迎合用戶使用2G上網(wǎng)的需要,將所述數(shù)據(jù) 塊包括較少的字節(jié)數(shù)量,則當(dāng)用戶使用Wif i上網(wǎng)且網(wǎng)絡(luò)速度較快時(shí),網(wǎng)絡(luò)資源又無法得到 充分利用,即用戶終端每次發(fā)送一個(gè)Request請求之后,都需要等待服務(wù)器端的Response。 所述數(shù)據(jù)塊包含的字節(jié)數(shù)越少,則一個(gè)文件劃分的數(shù)據(jù)塊越多,相應(yīng)的,在傳輸一個(gè)文件過 程中,用戶終端需要越多的時(shí)間在等待服務(wù)器的Response。再者,由于使用2G上網(wǎng)和使用 Wifi上網(wǎng),網(wǎng)絡(luò)速度往往相差較大,使得難以確定合適的數(shù)據(jù)塊大小能夠兼顧兩者的需求。
【發(fā)明內(nèi)容】
[0006] 本申請實(shí)施方式的目的是提供一種文件傳輸方法和裝置及服務(wù)器系統(tǒng),以使得傳 輸過程與實(shí)際網(wǎng)絡(luò)速度盡量匹配。
[0007] 為解決上述技術(shù)問題,本申請?zhí)峁┮环N文件傳輸方法,包括:
[0008] 從待傳輸文件分割出一個(gè)或一個(gè)以上第一數(shù)據(jù)塊;
[0009] 依照網(wǎng)絡(luò)協(xié)議將所述一個(gè)或一個(gè)以上第一數(shù)據(jù)塊發(fā)往預(yù)定地址;
[0010] 根據(jù)所述一個(gè)或一個(gè)以上第一數(shù)據(jù)塊發(fā)往所述預(yù)定地址所用的時(shí)間計(jì)算當(dāng)前網(wǎng) 速;
[0011] 從待傳輸文件的剩余部分分割出一個(gè)或一個(gè)以上第二數(shù)據(jù)塊,根據(jù)所述當(dāng)前網(wǎng)速 確定所述第二數(shù)據(jù)塊的字節(jié)數(shù)量;
[0012] 依照網(wǎng)絡(luò)協(xié)議將所述一個(gè)或一個(gè)以上第二數(shù)據(jù)塊發(fā)往所述預(yù)定地址。
[0013] 本申請還提供一種文件傳輸裝置,包括:
[0014] 第一數(shù)據(jù)分塊模塊,用于從待傳輸文件分割出一個(gè)或一個(gè)以上第一數(shù)據(jù)塊;
[0015] 第一發(fā)送模塊,用于依照網(wǎng)絡(luò)協(xié)議將所述一個(gè)或一個(gè)以上第一數(shù)據(jù)塊發(fā)往預(yù)定地 址;
[0016] 速度計(jì)算模塊,用于根據(jù)所述一個(gè)或一個(gè)以上第一數(shù)據(jù)塊發(fā)往所述預(yù)定地址所用 的時(shí)間計(jì)算當(dāng)前網(wǎng)速;
[0017] 分塊確認(rèn)模塊,用于根據(jù)所述當(dāng)前網(wǎng)速確定第二數(shù)據(jù)塊的字節(jié)數(shù)量;
[0018] 第二數(shù)據(jù)分塊模塊,用于從待傳輸文件的剩余部分分割出一個(gè)或一個(gè)以上第二數(shù) 據(jù)塊;
[0019] 第二發(fā)送模塊,用于依照網(wǎng)絡(luò)協(xié)議將所述一個(gè)或一個(gè)以上第二數(shù)據(jù)塊發(fā)往所述預(yù) 定地址。
[0020] 本申請還提供一種服務(wù)器系統(tǒng),包括:
[0021] 第一數(shù)據(jù)分塊模塊,用于從待傳輸文件分割出一個(gè)或一個(gè)以上第一數(shù)據(jù)塊;
[0022] 第一發(fā)送模塊,用于依照網(wǎng)絡(luò)協(xié)議將所述一個(gè)或一個(gè)以上第一數(shù)據(jù)塊發(fā)往預(yù)定地 址;
[0023] 速度計(jì)算模塊,用于根據(jù)所述一個(gè)或一個(gè)以上第一數(shù)據(jù)塊發(fā)往所述預(yù)定地址所用 的時(shí)間計(jì)算當(dāng)前網(wǎng)速;
[0024] 分塊確認(rèn)模塊,用于根據(jù)所述當(dāng)前網(wǎng)速確定第二數(shù)據(jù)塊的字節(jié)數(shù)量;
[0025] 第二數(shù)據(jù)分塊模塊,用于從待傳輸文件的剩余部分分割出一個(gè)或一個(gè)以上第二數(shù) 據(jù)塊;
[0026] 第二發(fā)送模塊,用于依照網(wǎng)絡(luò)協(xié)議將所述一個(gè)或一個(gè)以上第二數(shù)據(jù)塊發(fā)往所述預(yù) 定地址。
[0027] 由以上本申請實(shí)施方式提供的技術(shù)方案可見,本申請實(shí)現(xiàn)動(dòng)態(tài)調(diào)整數(shù)據(jù)塊的大 小,進(jìn)而能夠滿足用戶的使用需求。在網(wǎng)絡(luò)速度較快時(shí),本申請能夠增大數(shù)據(jù)塊包括的字節(jié) 數(shù)量,從而減少了等待預(yù)定地址的響應(yīng)時(shí)間,整體縮短了文件的發(fā)送時(shí)間;在網(wǎng)絡(luò)速度較慢 時(shí),能夠減少數(shù)據(jù)塊包括的字節(jié)數(shù)量,使文件發(fā)送的進(jìn)度條能夠呈現(xiàn)給用戶一個(gè)連續(xù)的進(jìn) 度狀態(tài),提供給用戶較佳的使用體驗(yàn)。綜上,本申請的技術(shù)方案能夠兼顧網(wǎng)速較快的網(wǎng)絡(luò)如 Wifi網(wǎng)絡(luò),和網(wǎng)速較慢的網(wǎng)絡(luò)如2G網(wǎng)絡(luò)的使用需求。
【附圖說明】
[0028] 為了更清楚地說明本申請實(shí)施方式或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施方式 或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅 是本申請中記載的一些實(shí)施方式,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性 的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0029] 圖1為現(xiàn)有技術(shù)中斷點(diǎn)續(xù)傳技術(shù)的示意圖;
[0030] 圖2為本申請一個(gè)實(shí)施方式提供的文件傳輸裝置的模塊圖;
[0031] 圖3為本申請一個(gè)實(shí)施方式提供的文件傳輸方法的流程圖;
[0032] 圖4為本申請一個(gè)實(shí)施方式提供的速度計(jì)算模塊的模塊圖;
[0033] 圖5為本申請一個(gè)實(shí)施方式提供的計(jì)算當(dāng)前網(wǎng)速的流程圖;
[0034] 圖6為本申請一個(gè)實(shí)施方式提供的分塊確認(rèn)模塊的模塊圖;
[0035] 圖7為本申請一個(gè)實(shí)施方式提供的確認(rèn)第二數(shù)據(jù)塊的字節(jié)數(shù)量的流程圖;
[0036] 圖8為本申請一個(gè)實(shí)施方式提供的分塊確認(rèn)模塊的模塊圖;
[0037] 圖9為本申請一個(gè)實(shí)施方式提供的服務(wù)器系統(tǒng)的模塊圖;
[0038] 圖10為本申請一個(gè)實(shí)施方式提供的服務(wù)器系統(tǒng)的流程圖。
【具體實(shí)施方式】
[0039] 本申請實(shí)施方式提供一種文件傳輸方法和裝置及服務(wù)器系統(tǒng)。
[0040] 為了使本技術(shù)領(lǐng)域的人員更好地理解本申請中的技術(shù)方案,下面將結(jié)合本申請實(shí) 施方式中的附圖,對(duì)本申請實(shí)施方式中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的 實(shí)施方式僅僅是本申請一部分實(shí)施方式,而不是全部的實(shí)施方式?;诒旧暾堉械膶?shí)施方 式,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施方式,都應(yīng) 當(dāng)屬于本申請保護(hù)的范圍。
[0041] 請參閱圖2,為本申請的一個(gè)實(shí)施方式提供的文件傳輸裝置100。
[0042] 文件傳輸裝置100可以為任意的用戶終端,也可以為服務(wù)器,還可以為服務(wù)器系 統(tǒng)。用戶終端可以為任意形式的移動(dòng)終端如手機(jī)、平板電腦或筆記本電腦,也可以為臺(tái)式電 腦。服務(wù)器可以為實(shí)現(xiàn)本申請功能的硬件,也可以為記錄在硬件上的邏輯體。服務(wù)器系統(tǒng) 可以由若干的服務(wù)器組成。
[0043] 在場景為用戶通過用戶終端向服務(wù)器上傳文件時(shí),用戶終端為文件傳輸裝置100, 文件傳輸裝置100向服務(wù)器發(fā)送文件的過程,即為向服務(wù)器上傳文件的過程。在場景為用 戶通過用戶終端從服務(wù)器下載文件時(shí),服務(wù)器為文件傳輸裝置100,文