一種C/S架構下的文件傳輸方法與流程
2023-07-27 07:59:21 3
本發明屬於計算機數據存儲技術領域,特別涉及一種C/S架構下的文件傳輸方法。
背景技術:
隨著辦公電子化的普及,為了提高企業(單位)員工的工作效率和信息安全,大部分企業(單位)都對員工的辦公文件進行一定的管控,不可避免的會需要將本地終端文件上傳/備份到伺服器,同時在需要的時候,從服務端上下載/恢復下來。
在工作中,經常需要在客戶端和伺服器之間傳輸文件,出於網絡不穩定等原因,在傳輸過程中經常會出現傳輸中斷的情況,此時就需要重新傳輸或繼續傳輸,目前在進行文件重傳時,都是使用資料庫或配置文件等來記錄已上傳或已下載的文件長度信息,實現起來很複雜,有待改進。
技術實現要素:
本發明的目的,在於提供一種C/S架構下的文件傳輸方法,其可減少文件重傳或傳輸中斷後重新上傳的情況,提高文件傳輸效率。
為了達成上述目的,本發明的解決方案是:
一種C/S架構下的文件傳輸方法,用於在發送端與接收端之間的文件傳輸,包括如下步驟:
步驟1,發送端向接收端提供文件名、文件的標識信息、文件的長度和文件保存路徑;
步驟2,接收端根據文件名及文件的標識信息對臨時文件進行命名;
步驟3,接收端計算已接收的臨時文件長度,然後把臨時文件長度通知發送端;
步驟4,發送端繼續向接收端傳輸文件,直至傳輸結束;
步驟5,接收端計算已接收的臨時文件的標識信息,若計算得到的標識信息與該臨時文件的文件名相同,則表示傳輸成功。
上述步驟1中,標識信息採用文件的消息摘要或哈希值。
上述步驟2中,接收端根據文件名和文件的標識信息判斷本地是否存在對應的文件,若存在則通知發送端結束文件傳輸。
上述步驟2中,接收端根據文件名和文件的標識信息判斷本地是否存在對應的文件,若不存在該文件,則繼續判斷臨時文件的大小是否為零,若不為零,則轉步驟3,若為零,則以標識信息命名臨時文件。
上述步驟4中,發送端根據臨時文件長度,通過文件偏移繼續傳輸文件。
上述步驟5中,傳輸完畢後,接收端將臨時文件名改回實際文件名。
採用上述方案後,本發明可以在一定程度上減少文件重傳或傳輸中斷後重新上傳的情況,能夠提高文件的傳輸效率、實現斷點續傳和文件校驗,同時不依賴資料庫去記錄已上傳或已下載的文件長度,使用起來相對簡單。
具體實施方式
以下將結合具體實施例,對本發明的技術方案進行詳細說明。
本發明提供一種C/S架構下的文件傳輸方法,可實現在發送端與接收端之間的文件傳輸,包括如下步驟:
步驟1,發送端向接收端提供文件名、文件的標識信息、文件的長度和文件保存路徑;
所述的標識信息可以採用該文件的消息摘要或哈希值;
步驟2,接收端根據文件名及文件的標識信息對臨時文件進行命名;
步驟3,接收端計算已接收的臨時文件長度,然後把臨時文件長度通知發送端;
步驟4,發送端繼續向接收端傳輸文件,直至傳輸結束;
步驟5,接收端計算已接收的臨時文件的標識信息,若計算得到的標識信息與該臨時文件的文件名相同,則表示傳輸成功。傳輸完畢後,接收端將臨時文件名改回實際文件名。
在具體實施時,本發明可以實現客戶端和文件系統服務端之間的文件(包括目錄)上傳、文件(包括目錄)下載等操作,客戶端和文件系統服務端之間進行文件傳輸時,可以根據具體的情況分別作為發送端和接收端,比如當進行文件或目錄上傳時,客戶端作為發送端,文件系統服務端作為接收端,當進行文件或目錄下載時,文件系統服務端作為發送端,客戶端作為接收端。
下面以文件上傳為例,說明本發明的具體實施過程:
(1)客戶端發起與文件系統服務端的連接;
(2)客戶端向文件系統服務端發送文件上傳請求,並提供文件的長度、文件標識信息及文件保存路徑;
(3)文件系統服務端接收到上傳請求後,首先根據文件名和標識信息判斷本地是否存在該文件,若存在則通知客戶端結束上傳動作,若不存在該文件,則嘗試獲取臨時文件的大小:如果臨時文件大小不等於零,則說明有未完成的文件傳輸,文件系統服務端把已上傳的文件長度通知客戶端,客戶端通過此文件偏移,以已上傳的文件長度為偏移,繼續讀取餘下未發送的文件內容,客戶端繼續完成文件的上傳;如果沒找到該臨時文件,則以標識信息命名該臨時文件,然後開始文件傳輸,傳輸完成後,計算臨時文件的標識信息,如果計算出來的臨時文件標識信息與文件名相同,則判定本次上傳成功。
綜合上述,本發明一種C/S架構下的文件傳輸方法,重點在於採用消息摘要或哈希值等標識信息對臨時文件進行命名,在進行文件傳輸的上傳或下載時,先計算已上傳或已下載的文件長度,然後把臨時文件的長度通知另一端,由另一端繼續做文件傳輸的操作,直到傳輸結束;最後計算臨時文件的消息摘要或哈希值,如果計算出來的臨時文件消息摘要或哈希值與文件名相同,則判定本次傳輸動作成功完成。
以上實施例僅為說明本發明的技術思想,不能以此限定本發明的保護範圍,凡是按照本發明提出的技術思想,在技術方案基礎上所做的任何改動,均落入本發明保護範圍之內。