一種基于第三方消息中間件的文件傳輸方法
【技術領域】
[0001] 本發明涉及的是一種文件分塊傳輸技術。 (二)
【背景技術】
[0002] 隨著計算機網絡的發展,文件傳輸技術的應用范圍越來越多廣泛。文件傳輸技術 為用戶提供快速、安全、便捷的跨網絡文件傳輸服務。其中,文件傳輸方法是文件傳輸技術 的核心,直接決定著文件傳輸的安全性、可靠性以及服務質量。然而,安全、可靠的網絡傳輸 過程設計與實現較復雜,所以設計一種簡單、快速的文件傳輸方法對文件傳輸系統具有重 要意義。
[0003] 第三方消息中間件通過對SOCKET套接字進行封裝,在數據傳輸雙方之間建立可 靠的數據傳輸通路,避免了基于SOCKET通信過程中的復雜配置。然而,消息中間件單次消 息傳輸的數據量有限,無法直接完成大容量文件的傳輸。將消息中間件對SOCKET封裝的特 性用于文件傳輸系統,可降低文件傳輸系統設計的復雜度。 (三)
【發明內容】
[0004] 本發明提出一種基于第三方消息中間件的文件傳輸方法。將文件數據抽象為文件 消息,發送方將文件切分為文件塊數據和文件塊信息,并把這兩部分合并成的文件消息通 過第三方消息中間件傳輸至文件接收方,文件接收方將接收到的文件消息解析還原為原始 文件。通過該方法能在很大程度上簡化文件傳輸系統的實現過程,從而節省系統開銷。本 方法通過采用多消息傳輸隊列并發傳輸方式,提高了文件的傳輸速度。同時,本方法中采用 加密傳輸的方式,保證了傳輸過程中文件的安全性。
[0005] 本發明的是這樣實現的:
[0006] 首先,利用第三方消息中間件在文件發送方和接收方之間建立多個并發消息傳輸 隊列。發送方根據第三方中間件要求的消息長度把文件切分成若干個文件塊,并為每一個 文件塊添加對應的文件塊信息組成文件消息,然后通過消息傳輸隊列將消息并發發送至接 收方。接收方從接收到的消息解析出文件塊數據和文件塊信息。然后,依據文件塊信息將 文件塊數據合并成完整文件。最后,通過MD5值驗證文件的完整性。
[0007] 文件塊在作為消息進行傳輸過程中涉及到如下參數信息:文件大小為sf,文件塊 消息為M,M中的文件塊數據內容為D,文件塊信息為I,I中包括文件名Fn、文件數據塊默認 大小Sd、文件數據塊序號Fs、文件的MD5值E、文件數據塊總數N、文件塊數據實際大小
[0008] 其發送方具體方法步驟為:
[0009] (1)配置第三方消息中間件,初始化消息傳輸的加密算法;
[0010] ⑵發送方設置Fn、Sd、E、Sr、Sf,計算及=pf,初始化Fs= 0 ;
[0011] (3)計算文件讀取位置1?:1?=匕\5(1,發送方從文件的1?處讀取5 (1大小的文件數 據存入D;
[0012] (4)計算D中文件數據實際大小&=Size(D),并將Fn、Sd、E、&、Sf、N、Fs寫入I 中;
[0013] (5)將D和I合成文件塊消息M,并對M加密;
[0014] (6)選擇當前空閑的消息隊列將M通過消息中間件發送至接收方;
[0015] (7)判斷M中的匕是否小于N,是則令FS=FS+1,并執行步驟(3),否則直接執行 步驟(8);
[0016] (8)等待接收方回復文件接收完畢消息,如果接收到接收方回復消息,執行步驟 (9),否則執行步驟(8);
[0017] (9)根據接收方回復的消息判斷文件接收是否成功,是則報告文件接收完成并執 行步驟(10),否則,報告文件接收存在錯誤并進行文件重傳,執行步驟(2);
[0018] (10)執行完成;
[0019] 其接收方具體方法步驟為:
[0020] (1)配置第三方消息中間件,初始化消息傳輸的解密算法;
[0021] (2)接收方判斷是否接收到文件消息,是則執行步驟(3),否則執行步驟⑵;
[0022] (3)將接收到的消息進行解密后存入M,解析出消息中包含的D和I;
[0023] (4)從I解析出Fn、Sd、E、Sr、Sf、N以及Fs;
[0024] (5)檢測接收方文件存儲目錄下是否存在文件Fn,是則執行步驟(7),否則執行步 驟(6);
[0025] (6)在接收方文件存儲目錄下創建文件Fn;
[0026] (7)根據計算文件塊數據寫入位置W:W=FsXSd,將文件塊數據寫入Fn文件的W 位置;
[0027] (8)判斷匕是否小于N,是則執行步驟(2),否則執行步驟(9);
[0028] (9)計算接收到的Fn文件的MD5值并與原文件的MD5值E是否相等,是則執行步 驟(10),否則執行步驟(11);
[0029] (10)向發送方回復成功消息,表明文件Fn已經接收完畢,繼續執行步驟(2); [0030] (11)向發送方回復失敗消息,表明文件Fn接收失敗;
[0031] (12)刪除接收方文件存儲目錄下的Fn文件,繼續執行步驟(2);
[0032] 本方法的核心在于:把文件的傳輸過程抽象為消息傳輸過程,提出在文件的發送 方將文件數據分塊,并為每一個文件塊數據添加對應的文件塊信息組成文件消息。然后將 文件消息通過消息中間件發送至接收方。在文件的接收方將消息還原為文件數據和文件塊 信息,并根據文件塊信息對文件塊數據進行合并,形成完整的文件。
[0033] 其主要創新點如下:
[0034] 1.將文件傳輸過程轉為為消息傳輸過程。通過將文件傳輸過程轉換成消息的傳輸 過程,可以基于第三方消息中間件對文件傳輸系統進行快速搭建,并能節約系統構建的時 間、人力等開銷。
[0035] 2.采用多消息隊列的并發傳輸方式,并增加MD5驗證。本方法通過采用多消息傳 輸隊列并發傳輸方式,提高了文件的傳輸速度。接收方按照文件塊信息對文件進行合并后, 對合并后的文件進行MD5驗證,保證了傳輸過程中文件的完整性。 (四)
【附圖說明】
[0036] 圖1文件分塊傳輸方法示意圖 (五) 具體的實施方式
[0037] 本發明所述方法的特征在于:
[0038] 將文件數據抽象為文件消息,發送方將文件合理分割為文件塊數據,并為每一塊 文件塊數據添加對應的文件塊信息組成文件消息,然后通過第三方消息中間件將文件塊消 息快速并發地傳輸至文件接收方,接收方按照文件塊信息合并文件塊數據,形成完整文件。
[0039] 首先,利用第三方消息中間件在文件發送方和接收方之間建立多個并發消息傳輸 隊列。發送方根據第三方中間件要求的消息長度把文件切分成若干個文件塊,并為每一個 文件塊添加對應的文件塊信息組成文件消息,然后通過消息傳輸隊列將消息并發發送至接 收方。接收方從接收到的消息解析出文件塊數據和文件塊信息。然后,依據文件塊信息將 文件塊數據合并成完整文件。最后,通過MD5值驗證文件的完整性。本方法通過多消息傳 輸隊列并發傳輸方式來提高文件的傳輸速度,采用加密傳輸的方式保證傳輸過程中文件的 安全性。
[0040] 本方法的步驟中