一種傳輸文件方法、裝置及系統的製作方法
2023-12-03 23:40:06 5
一種傳輸文件方法、裝置及系統的製作方法
【專利摘要】本發明實施例公開了一種文件傳輸方法,包括:選取至少兩個伺服器,將源存儲位置中的待傳輸文件發送至其中一個伺服器的接收盤,如果發送失敗,則依次發送所述待傳輸文件至其他伺服器的接收盤直至成功為止,其中,所述至少兩個伺服器與所述源存儲位置位於同一工作區域,成功接收所述待傳輸文件的伺服器為主伺服器;將所述主伺服器的接收盤中的待傳輸文件分散成分散文件,將所述分散文件分配到所述主伺服器的至少兩個同步盤中;將所述主伺服器的至少兩個同步盤中的分散文件發送至目標存儲位置。本發明實施例還公開了一種文件傳輸裝置及系統。採用本發明,可提高文件傳輸的速率及可靠性,容錯能力強。
【專利說明】一種傳輸文件方法、裝置及系統
【技術領域】
[0001]本發明涉及通信【技術領域】,尤其涉及一種文件傳輸方法、裝置及系統。
【背景技術】
[0002]隨著信息化社會的快速發展,數據呈指數級增長,因而存儲數據的文件所佔用的空間越來越大,當需要對這些文件進行傳輸移動時,耗費的時間也越來越長,且傳輸過程中容易出錯,導致文件傳輸失敗。
[0003]在現有技術一中,採用了並發上傳的處理方法來對多文件進行同時上傳,此方法雖然提高了多文件同時上傳的速率,但是在上傳單個較大的文件時,速率仍然較慢,且此方法並沒有提出避免上傳出錯的處理機制;在現有技術二中,採用了對文件進行切片後並發上傳的方法,可以提高單個較大文件的上傳速率,但是仍然沒有提出避免上傳出錯的處理機制,容錯性較差。
【發明內容】
[0004]本發明實施例所要解決的技術問題在於,提供一種文件傳輸方法、裝置及系統。可提高文件傳輸的速率及可靠性,容錯能力強。
[0005]本發明第一方面提供了一種文件傳輸方法,可包括:
選取至少兩個伺服器,將源存儲位置中的待傳輸文件發送至其中一個伺服器的接收盤,如果發送失敗,則依次發送所述待傳輸文件至其他伺服器的接收盤直至成功為止,其中,所述至少兩個伺服器與所述源存儲位置位於同一工作區域,成功接收所述待傳輸文件的伺服器為主伺服器;
將所述主伺服器的接收盤中的待傳輸文件分散成分散文件,將所述分散文件分配到所述主伺服器的至少兩個同步盤中;
將所述主伺服器的至少兩個同步盤中的分散文件發送至目標存儲位置。
[0006]本發明第二方面提供了一種文件傳輸裝置,可包括:
選取及傳輸模塊,用於選取至少兩個伺服器,將源存儲位置中的待傳輸文件發送至其中一個伺服器的接收盤,如果發送失敗,則依次發送所述待傳輸文件至其他伺服器的接收盤直至成功為止,其中,所述至少兩個伺服器與所述源存儲位置位於同一工作區域,成功接收所述待傳輸文件的伺服器為主伺服器;
計算分散模塊,用於將所述主伺服器的接收盤中的待傳輸文件分散成分散文件,將所述分散文件分配到所述主伺服器的至少兩個同步盤中;
文件傳輸模塊,用於將所述主伺服器的至少兩個同步盤中的分散文件發送至目標存儲位置。
[0007]本發明第三方面提出了一種文件傳輸系統,可包括:
中轉單元,用於接收源存儲位置中的待傳輸文件,將所述待傳輸文件發送至目標存儲位置,所述中轉單元至少包括兩個伺服器 '及 如上所述的裝置。
[0008]實施本發明實施例,具有如下有益效果:
通過選取與源存儲位置位於同一工作區域的兩個伺服器進行文件傳輸,距離近,傳輸速度快,且兩個伺服器可以實現雙機互備,避免某一伺服器出錯時無法完成文件傳輸的情況,具有較強的容錯性;在單伺服器內使用至少兩個同步盤並發傳輸,可實現快速異步傳輸,提升了文件傳輸的速率,且一個同步盤出現故障並不影響文件傳輸的完成,同樣具有較強的容錯性。
【專利附圖】
【附圖說明】
[0009]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0010]圖1是本發明文件傳輸方法的第一實施例流程示意圖;
圖2是本發明文件傳輸方法的第二實施例流程示意圖;
圖3是本發明文件傳輸方法的第三實施例流程示意圖;
圖4是本發明文件傳輸裝置的第一實施例組成示意圖;
圖5是本發明文件傳輸裝置的第二實施例組成示意圖;
圖6是本發明實施例一種文件傳輸系統的組成示意圖。
【具體實施方式】
[0011]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
[0012]請參照圖1,為本發明文件傳輸方法的第一實施例流程示意圖;在本實施例中,所述方法包括以下步驟:
S101,選取至少兩個伺服器,將源存儲位置中的待傳輸文件發送至其中一個伺服器的接收盤,如果發送失敗,則執行步驟S102-S104,如果發送成功,則直接執行步驟S103-S104。
[0013]其中,所述至少兩個伺服器與所述源存儲位置位於同一工作區域,成功接收所述待傳輸文件的伺服器為主伺服器。更具體地,所述至少兩個伺服器可以與所述源存儲位置部署在同一個機房,便於伺服器可以就近接收待傳輸文件。由於位置很近,所以傳輸速度快,且待傳輸文件傳輸到伺服器後無需等待後續操作,可立即返回準備下一輪的傳輸。而通過選取的至少兩個伺服器可以互為主備伺服器,提高了傳輸的容錯性。
[0014]S102,依次發送所述待傳輸文件至其他伺服器的接收盤直至成功為止。
[0015]需要說明的是,嘗試發送所述待傳輸文件的順序可以根據各個伺服器的空間距離、傳輸速度、伺服器處理能力等因素預先排序,當然,若每個伺服器的情況差不多,也可以隨機發送,只要確保最後能完成所述待傳輸文件的傳輸即可。為了確保完成文件傳輸,本發明實施例中採用的伺服器可以是兩臺,也可以是三臺甚至更多。例如,可以默認先傳輸到第一伺服器,如果第一伺服器沒有問題,則第一伺服器成為主伺服器,直接執行後續的分散傳輸流程;如果第一伺服器出現故障,則可以嘗試傳輸至第二伺服器,如果傳輸成功,則第二伺服器成為主伺服器,執行後續的分散傳輸流程,如果第二伺服器出現故障,則可以嘗試傳輸至第三伺服器,依次類推,直至待傳輸文件成功地傳輸至某伺服器的接收盤,因此,本方法具有良好的容錯性。
[0016]S103,將所述主伺服器的接收盤中的待傳輸文件分散成分散文件,將所述分散文件分配到所述主伺服器的至少兩個同步盤中。
[0017]一般地,伺服器具有多塊磁碟,當源存儲位置中的待傳輸文件發送至伺服器的接收盤後,可以將接收盤中的待傳輸文件分散成分散文件,然後分配到伺服器內兩個以上的同步盤當中,這樣可以避免接收盤的磁碟空間過滿,影響傳輸的連續性,同時,兩個以上的同步盤可以並列工作,這樣可以降低磁碟傳輸速率的瓶頸對傳輸速度的影響,而且兩個以上的同步盤並列工作,即使某個同步盤出現故障,待傳輸文件仍可以成功地進行傳輸,提高了這種傳輸方法的容錯性。
[0018]優選地,可以將分散文件平均分配至至少兩個同步盤中,這樣可以平均同步盤的傳輸壓力,確保同一批待傳輸文件可以在相近的時間點完成傳輸。
[0019]S104,將所述主伺服器的至少兩個同步盤中的分散文件發送至目標存儲位置。
[0020]相對於步驟SlOl中將待傳輸文件發送至伺服器的近端傳輸,步驟S104中的傳輸一般屬於遠端傳輸,同步盤與目標存儲位置的距離一般不在同一工作區域如同機房等情況。但是由於步驟SlOl中將待傳輸文件發送至伺服器可立即返回,因此減少了系統資源的佔用,不會對步驟S104中的遠端傳輸造成影響。
[0021]在本實施例中,給出了一種雙伺服器互備,與源存儲位置就近傳輸,多個同步盤同時完成遠端傳輸的文件傳輸方法,因為距離近,傳輸速度快,且兩個伺服器可以實現雙機互備,避免某一伺服器出錯時無法完成文件傳輸的情況,具有較強的容錯性;在單伺服器內使用至少兩個同步盤並發傳輸,可實現快速異步傳輸,提升了文件傳輸的速率,且一個同步盤出現故障並不影響文件傳輸的完成,同樣具有較強的容錯性。
[0022]圖2是本發明文件傳輸方法的第二實施例流程示意圖;在本實施例中,所述方法包括以下步驟:
S201,選取至少兩個伺服器,將源存儲位置中的待傳輸文件發送至其中一個伺服器的接收盤,如果發送失敗,則執行步驟S202-S206,如果發送成功,則直接執行步驟S202-S206。
[0023]其中,所述至少兩個伺服器與所述源存儲位置位於同一工作區域,成功接收所述待傳輸文件的伺服器為主伺服器。
[0024]S202,依次發送所述待傳輸文件至其他伺服器的接收盤直至成功為止。
[0025]S203,將所述主伺服器的接收盤中的待傳輸文件分散成分散文件,將所述分散文件分配到主伺服器的至少兩個同步盤中。
[0026]S204,將所述主伺服器的至少兩個同步盤中的分散文件發送至目標存儲位置。
[0027]S205,判斷所述目標存儲位置中的分散文件是否與所述同步盤中的分散文件相同。若是,則執行步驟S206,否則執行步驟S204直至所述目標存儲位置中的分散文件與所述同步盤中的分散文件相同。
[0028]優選地,可以將目標存儲位置的信息包含於所述待傳輸文件的文件名中,所述待傳輸文件的文件名至少包括所述目標存儲位置的第一級目錄名、第二級目錄名。在傳輸之前可以對待傳輸文件的文件名作規範定義,使文件名中直接體現目標存儲位置的信息,並且為伺服器開通寫權限,文件名中的格式可以進行如下定義:
#
例如一批待傳輸文件的目標存儲位置如下:
第一級目錄名:data 第二級目錄名:personal
各級目錄名以#為分隔符,連接後則形成了待傳輸文件的文件名: data#personal
則待傳輸文件最終將傳輸至目標存儲位置的/data/personal/目錄下。
[0029]當然,還可能存在第η級目錄名及關於待傳輸文件的一些其他信息。
[0030]如〈第一級目錄名>#〈第二級目錄名>#〈第η級目錄名>#
例如一批待傳輸文件的目標存儲位置如下:
第一級目錄名:data 第二級目錄名:personal 第三級目錄名:jacky 其他信息:mem0.txt
各級目錄名以#為分隔符,連接後則形成了待傳輸文件的文件名: data#personal# jacky# memo, txt
則待傳輸文件最終將傳輸至目標存儲位置的/data/personal/jacky目錄下。
[0031]最終待傳輸文件的全路徑名為:
/data/personal/jacky/ data#personal# jacky# memo, txt
S206,刪除所述同步盤中的分散文件。
[0032]當同步盤中的分散文件已經成功傳輸至目標存儲位置之後,即可以刪除同步盤中的分散文件,為下一輪的文件傳輸清理出空間。
[0033]在本實施例中,增加了對目標存儲位置接收的分散文件進行完整性驗證的流程,進一步提高了文件傳輸的可靠性,對於同步盤中已成功傳輸的分散文件進行刪除,為後續的文件傳輸清理出了空間,此外本實施例中還給出了定義待傳輸文件文件名的方法,通過該方法,可以明確目標存儲位置的相關位置信息。
[0034]圖3是本發明文件傳輸方法的第三實施例流程示意圖;在本實施例中,所述方法包括以下步驟:
S301,選取至少兩個伺服器,將源存儲位置中的待傳輸文件發送至其中一個伺服器的接收盤,如果發送失敗,則執行步驟S302-S308,如果發送成功,則直接執行步驟S303-S308。
[0035]S302,依次發送所 述待傳輸文件至其他伺服器的接收盤直至成功為止。
[0036]S303,將所述主伺服器的接收盤中的待傳輸文件分散成分散文件,將所述分散文件分配到主伺服器的至少兩個同步盤中。[0037]S304,根據所述待傳輸文件的文件名對所述待傳輸文件進行哈希計算得到分散文件數目。
[0038]S305,將所述分散文件按數目平均分配至所述同步盤中,如果不能平均分配,則根據分散文件數目對所述同步盤數目進行取模運算,將剩餘的分散文件分配至不同的同步盤中。
[0039]S306,將所述主伺服器的至少兩個同步盤中的分散文件發送至目標存儲位置。
[0040]S307,判斷所述目標存儲位置中的分散文件是否與所述同步盤中的分散文件相同。若是,則執行步驟S308,否則執行步驟S306直至所述目標存儲位置中的分散文件與所述同步盤中的分散文件相同。
[0041 ] S308,刪除所述同步盤中的分散文件。
[0042]通過哈希計算獲得分散文件的數目,平均分配這些分散文件至同步盤中或通過取模運算儘量達到平均分配的效果,可以使得各個同步盤的傳輸任務量比較平均,每個同步盤完成傳輸的時間接近,無需花費太多時間等待其他同步盤的傳輸完成,因此節省了傳輸的時間,提聞了傳輸的效率。
[0043]圖4是本發明文件傳輸裝置的第一實施例組成示意圖;在本實施例中,所述裝置包括:選取及傳輸模塊100、計算分散模塊200及文件傳輸模塊300。
[0044]所述選取及傳輸模塊100用於選取至少兩個伺服器,將源存儲位置中的待傳輸文件發送至其中一個伺服器的接收盤,如果發送失敗,則依次發送所述待傳輸文件至其他伺服器的接收盤直至成功為止,其中,所述至少兩個伺服器與所述源存儲位置位於同一工作區域,成功接收所述待傳輸文件的伺服器為主伺服器;
計算分散模塊,用於將所述主伺服器的接收盤中的待傳輸文件分散成分散文件,將所述分散文件分配到所述主伺服器的至少兩個同步盤中;
文件傳輸模塊,用於將所述主伺服器的至少兩個同步盤中的分散文件發送至目標存儲位置。
[0045]圖5是本發明文件傳輸裝置的第二實施例組成示意圖;在本實施例中,所述裝置包括:選取及傳輸模塊100、計算分散模塊200、文件傳輸模塊300、完整性檢查模塊400及副本刪除模塊500。
[0046]所述完整性檢查模塊400用於判斷所述目標存儲位置中的分散文件是否與所述同步盤中的分散文件相同,若不相同,則指示所述文件傳輸模塊重複發送所述同步盤中的分散文件至所述目標存儲位置直至目標存儲位置中的分散文件與所述同步盤中的分散文件相同;
所述副本刪除模塊500用於如果所述完整性檢查模塊400判斷所述目標存儲位置中的分散文件與所述同步盤中的分散文件相同時,刪除所述同步盤中的分散文件。
[0047]所述目標存儲位置的信息包含於所述待傳輸文件的文件名中,所述待傳輸文件的文件名至少包括所述目標存儲位置的第一級目錄名、第二級目錄名。
[0048]所述計算分散模塊200還用於:
根據所述待傳輸文件的文件名對所述待傳輸文件進行哈希計算得到分散文件數目;將所述分散文件按數目平均分配至所述同步盤中,如果不能平均分配,則根據分散文件數目對所述同步盤數目進行取模運算,將剩餘的分散文件分配至不同的同步盤中。[0049]所述計算分散模塊200進一步用於:將所述分散文件或剩餘的分散文件按順序依次分配至第一同步盤及第二同步盤,如果所述第一同步盤故障,則發送至所述第二同步盤。
[0050]圖6是本發明實施例一種文件傳輸系統的組成示意圖。在本實施例中,所述系統包括:中轉單元600及如上所述的文件傳輸裝置。
[0051]所述中轉單元600用於接收源存儲位置中的待傳輸文件,將所述待傳輸文件發送至目標存儲位置,所述中轉單元600至少包括兩個伺服器。
[0052]所述文件傳輸裝置包括:選取及傳輸模塊100、計算分散模塊200及文件傳輸模塊300。
[0053]可選地,所述文件傳輸裝置還可以包括如圖所示虛線部分中的完整性檢查模塊400及副本刪除模塊500。
[0054]所述選取及傳輸模塊100選定所述中轉單元600後,將源存儲位置中的待傳輸文件發送至所述中轉單元600,所述中轉單元600至少包括兩個伺服器,確保傳輸的完成。
[0055]所述計算分散模塊200將所述中轉單兀600內的待傳輸文件分散成多個分散文件後發送至所述中轉單元600上的至少兩個同步盤中。
[0056]在所述文件傳輸模塊300的指示下,將同步盤中的分散文件發送至目標存儲位置。
[0057]可選地,通過所述完整性檢查模塊400檢查目標存儲位置中的分散文件是否完整,若不完整則指示所述文件傳輸模塊300重複發送同步盤中的分散文件至目標存儲位置直至目標存儲位置中的分散文件與同步盤中的分散文件相同;若完整則指示副本刪除模塊刪除所述中轉單元600上的分散文件。完成本次的文件傳輸。
[0058]通過上述實施例的描述,本發明具有以下優點:
通過選取與源存儲位置位於同一工作區域的兩個伺服器進行文件傳輸,距離近,傳輸速度快,且兩個伺服器可以實現雙機互備,避免某一中轉機出錯時無法完成文件傳輸的情況,具有較強的容錯性;在單伺服器內使用至少兩個同步盤並發傳輸,可實現快速異步傳輸,提升了文件傳輸的速率,且一個同步盤出現故障並不影響文件傳輸的完成,同樣具有較強的容錯性;傳輸完畢後進行完整性驗證,進一步提高了文件傳輸的可靠性;完整性驗證通過後刪除中轉機上的分散文件,為下一次傳輸提供了良好的存儲空間。
[0059]本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過電腦程式來指令相關的硬體來完成,所述的程序可存儲於一計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光碟、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random AccessMemory, RAM)等。
[0060]以上所揭露的僅為本發明較佳實施例而已,當然不能以此來限定本發明之權利範圍,因此依本發明權利要求所作的等同變化,仍屬本發明所涵蓋的範圍。
【權利要求】
1.一種文件傳輸方法,其特徵在於,包括: 選取至少兩個伺服器,將源存儲位置中的待傳輸文件發送至其中一個伺服器的接收盤,如果發送失敗,則依次發送所述待傳輸文件至其他伺服器的接收盤直至成功為止,其中,所述至少兩個伺服器與所述源存儲位置位於同一工作區域,成功接收所述待傳輸文件的伺服器為主伺服器; 將所述主伺服器的接收盤中的待傳輸文件分散成分散文件,將所述分散文件分配到所述主伺服器的至少兩個同步盤中; 將所述主伺服器的至少兩個同步盤中的分散文件發送至目標存儲位置。
2.如權利要求1所述的方法,其特徵在於,將所述主伺服器的至少兩個同步盤中的分散文件發送至目標存儲位置之後,還包括: 判斷所述目標存儲位置中的分散文件是否與所述同步盤中的分散文件相同; 若是,則刪除所述同步盤中的分散文件; 若否,則重複發送所述同步盤中的分散文件至所述目標存儲位置直至所述目標存儲位置中的分散文件與所述同步盤中的分散文件相同。
3.如權利要求1或2所述的方法,其特徵在於,所述目標存儲位置的信息包含於所述待傳輸文件的文件名中,所述待 傳輸文件的文件名至少包括所述目標存儲位置的第一級目錄名、第二級目錄名。
4.如權利要求3所述的方法,其特徵在於,將所述主伺服器的接收盤中的待傳輸文件分散成分散文件,將所述分散文件分配到所述主伺服器的至少兩個同步盤中,包括: 根據所述待傳輸文件的文件名對所述待傳輸文件進行哈希計算得到分散文件數目;將所述分散文件按數目平均分配至所述同步盤中,如果不能平均分配,則根據分散文件數目對所述同步盤數目進行取模運算,將剩餘的分散文件分配至不同的同步盤中。
5.如權利要求4所述的方法,其特徵在於,將所述分散文件或剩餘的分散文件按順序依次分配至第一同步盤及第二同步盤,如果所述第一同步盤故障,則發送至所述第二同步盤。
6.一種文件傳輸裝置,其特徵在於,包括: 選取及傳輸模塊,用於選取至少兩個伺服器,將源存儲位置中的待傳輸文件發送至其中一個伺服器的接收盤,如果發送失敗,則依次發送所述待傳輸文件至其他伺服器的接收盤直至成功為止,其中,所述至少兩個伺服器與所述源存儲位置位於同一工作區域,成功接收所述待傳輸文件的伺服器為主伺服器; 計算分散模塊,用於將所述主伺服器的接收盤中的待傳輸文件分散成分散文件,將所述分散文件分配到所述主伺服器的至少兩個同步盤中; 文件傳輸模塊,用於將所述主伺服器的至少兩個同步盤中的分散文件發送至目標存儲位置。
7.如權利要求6所述的裝置,其特徵在於,所述裝置還包括: 完整性檢查模塊,用於判斷所述目標存儲位置中的分散文件是否與所述同步盤中的分散文件相同,若不相同,則指示所述文件傳輸模塊重複發送所述同步盤中的分散文件至所述目標存儲位置直至目標存儲位置中的分散文件與所述同步盤中的分散文件相同; 副本刪除模塊,用於如果所述完整性檢查模塊判斷所述目標存儲位置中的分散文件與所述同步盤中的分散文件相同時,刪除所述同步盤中的分散文件。
8.如權利要求6或7所述的裝置,其特徵在於,所述目標存儲位置的信息包含於所述待傳輸文件的文件名中,所述待傳輸文件的文件名至少包括所述目標存儲位置的第一級目錄名、第二級目錄名。
9.如權利要求8所述的裝置,其特徵在於,所述計算分散模塊還用於: 根據所述待傳輸文件的文件名對所述待傳輸文件進行哈希計算得到分散文件數目; 將所述分散文件按數目平均分配至所述同步盤中,如果不能平均分配,則根據分散文件數目對所述同步盤數目進行取模運算,將剩餘的分散文件分配至不同的同步盤中。
10.如權利要求9所述的裝置,其特徵在於,所述計算分散模塊進一步用於:將所述分散文件或剩餘的分散文件按順序依次分配至第一同步盤及第二同步盤,如果所述第一同步盤故障,則發送至所述第二同步盤。
11.一種文件傳輸系統,其特徵在於,包括: 中轉單元,用於接收源存儲位置中的待傳輸文件,將所述待傳輸文件發送至目標存儲位置,所述中轉單元至少包括兩個伺服器 '及 如權利要求6-10任一項 所述的裝置。
【文檔編號】H04L29/08GK103812899SQ201210453247
【公開日】2014年5月21日 申請日期:2012年11月13日 優先權日:2012年11月13日
【發明者】覃武權, 趙子軒, 錢程路, 李鶴, 蘆方, 奚少傑, 莊子明, 鄒永, 林松 申請人:深圳市世紀光速信息技術有限公司