專利名稱::分布式文件上傳、下載方法及其裝置和系統(tǒng)的制作方法
技術領域:
:本發(fā)明涉及一種文件上傳、下載方法及其裝置和系統(tǒng)。技術背景目前的在線傳輸系統(tǒng)有兩種方式1、單點上傳單點下載方式;2、單點上傳P2P下載方式。圖l所示的ftp文件傳輸系統(tǒng)(可以用ftp或者http協(xié)議來傳輸數(shù)據(jù),本發(fā)明中統(tǒng)稱為ftp)就是一種典型的單點上傳單點下載系統(tǒng)。這種系統(tǒng)目前主要是用于文件下載服務。這樣的服務在互連網(wǎng)上很常見。服務器上的文件由管理員通過專用通道放到服務器上,比如通過本地存儲接口(例如CDR0M、移動硬盤等)、本地局域網(wǎng)或者其它專用上傳通道等。這時上傳文件往往都不是問題。但單點下載模型很難應付大量客戶端的海量數(shù)據(jù)下載。為此人們通常在各個城市部署多個服務器來分流客戶下載流量,如圖1中所示的服務器1和服務器2。通常此類分流是通過給用戶提供多個選擇的鏈接點來實現(xiàn),例如在下載頁面中給出一個鏈接列表,用戶從該鏈接列表中選擇提供下載的服務器。在以下載為主要目的應用中,人們發(fā)明了P2P傳輸方法來取代ftp這類的單點文件下載方式。Bittorrent、Emule和迅雷等下載軟件都是這類下載方式的代表。在這些P2P系統(tǒng)中,要想獲得較快的下載速度,前提就是必需有多個用戶同時下載同一個文件,而這就要求該文件在很大的范圍內全局共享。在新一代互聯(lián)網(wǎng)(又稱"web2.0")中,數(shù)據(jù)的來源發(fā)生了變化,服務器數(shù)據(jù)源不是由服務器管理者提供,而是來自客戶端。人們不只是單純地從互聯(lián)網(wǎng)上尋找下載的文件數(shù)據(jù),而是逐漸開始把他們自己的數(shù)據(jù)上傳到互聯(lián)網(wǎng)上。雖然現(xiàn)在涌現(xiàn)出很多在線存儲服務,如"網(wǎng)絡U盤"、大容量的郵件空間等。這些網(wǎng)絡存儲系統(tǒng)均采用單點上傳的方式讓用戶上傳數(shù)據(jù)。用戶在上傳數(shù)據(jù)時,僅連接到一個服務器上,然后采用ftp或http協(xié)議上傳輸文件,此類在線傳輸系統(tǒng)存在以下技術問題。一、單點上傳本身存在的問題。在用戶較多時,用戶爭奪有限的服務器帶寬資源,使服務器成為嚴重的瓶頸,而客戶端的帶寬卻無法得到充分利用。以下舉一例子簡要說明該問題。假設一個服務器有100Mbps帶寬,如果有1000個用戶在線,每個用戶的接入帶寬為500Kbps,那么每個用戶平均能夠得到的帶寬是100Kbps。在服務器可用帶寬不足時,目前的方法就是增加服務器的數(shù)量或帶寬來提高數(shù)據(jù)傳輸率。如果同等級的服務器的數(shù)量增至3個,以服務器1、2、3表示,每個服務器提供的帶寬仍為100Mbps,則現(xiàn)在總的服務器帶寬為300Mbps。在理想的情況下,如果1000個用戶平均分散到3個服務器上,那么每個用戶能夠得到的帶寬是300Mbps除以1000等于300Kbps。如果服務器2、3上的用戶完成了數(shù)據(jù)傳輸,而服務器1上的用戶還在繼續(xù)進行數(shù)據(jù)傳輸。這時服務器2、3已經(jīng)空閑了,但是服務器1上的用戶卻不能使用服務器2、3的帶寬資源。服務器總帶寬占用率只有1/3,而服務器l已經(jīng)飽和,當前活動的用戶仍然只能使用300Kbps的帶寬。如果從總容量上來看,理論上現(xiàn)在服務器1上的每個用戶應該得到約300Mbps除以三分之一的用戶數(shù)等于900Kbps的可用服務器帶寬。所以剩下的用戶應該能夠以本地最大可用帶寬,即接入帶寬500Kbps的速率上傳數(shù)據(jù),但是單點上傳方式卻無法做到。而且此時如果有新的用戶加入服務器,由于新的用戶并不了解全局服務器的使用狀況,所以新的用戶可能選擇的還是己經(jīng)飽和的服務器l。這是因為在傳統(tǒng)的單點上傳系統(tǒng)中這種選擇是盲目的,很多時候是讓用戶自己選擇。二、單點上傳帶來的下載問題。由于用戶將他的文件傳輸?shù)絾我坏姆掌髦?,所以他只能從這個服務器下載數(shù)據(jù),這顯然不能最大限度地利用服務器和客戶端的資源。在此類在線傳輸系統(tǒng)中,有很多用戶的文件和數(shù)據(jù)并不是在很大的范圍內共享,所以不可能被大量的用戶同時下載,這樣P2P多點下載方法就不能發(fā)揮作用,用戶獲取文件時的下載速度也退縮到單點下載系統(tǒng)的境地。
發(fā)明內容本發(fā)明的主要目的在于,提供一種分布式文件上傳方法及其裝置和系統(tǒng),以方便用戶將數(shù)據(jù)上傳到服務器的在線存儲空間中。本發(fā)明的另一目的在于,提供一種分布式文件下載方法及其裝置和系統(tǒng),為用戶下載提供便利。本發(fā)明的再一目的在于,提供一種分布式文件傳輸系統(tǒng),為用戶上傳和下載提供便利。為達上述目的,本發(fā)明采用如下技術方案一種分布式文件上傳方法,其特征在于包括以下步驟al)服務器獲取步驟,用于與目錄服務器建立連接,獲取可上傳文件的服務器列表;a2)數(shù)據(jù)上傳步驟,將包括文件分片和文件分布表的文件上傳至所述服務器列表中的服務器中;其中,所述文件分布表記錄有文件的各個文件分片的存儲信息。作為本發(fā)明分布式文件上傳方法的一種改進,在所述步驟al)之后步驟a2)之前,還包括權值計算步驟,計算服務器列表中的服務器的權值,在所述步驟a2)根據(jù)權值計算結果,優(yōu)先發(fā)送所述文件分片至權值高的服務器中。作為本發(fā)明分布式文件上傳方法的進一步改進,所述權值計算步驟中,定時計算服務器列表中的服務器的權值。作為本發(fā)明分布式文件上傳方法的再一改進,在所述權值計算步驟之后步驟a2)之前,還包括活動服務器列表建立和更新步驟,根據(jù)定時計算的權值,按權值高低建立和更新所述活動服務器列表,在所述步驟a2)中從該活動服務器列表中優(yōu)選上傳文件分片至權值最大且可用的服務器中。該所述步驟a2)可具體包括以下步驟a21)從活動服務器列表中選擇權值最大且可用的服務器,并從文件中選取一個文件分片上傳至該選擇的服務器中,在該選擇的服務器正在接收同一文件的文件分片時,設定其狀態(tài)為不可用,在該選擇的服務器完成文件分片的接收后,設定其狀態(tài)為可用,更新所述文件分布表;a22)判斷所有文件分片是否傳輸完成,如果是,則執(zhí)行步驟a23),否則,執(zhí)行步驟a21);a23)將文件分布表上傳至所有存儲有文件分片的服務器中。其中,在所述步驟a2)之后,還包括a3)上傳驗證步驟,用于驗證上傳文件的正確性。其中,所述文件分片的上傳可采用平均分布的上傳方式或填鴨分布的上傳方式。一種分布式文件下載方法,包括以下步驟bl)服務器獲取步驟,與目錄服務器建立連接,獲取可下載文件的服務器列表;b2)數(shù)據(jù)下載步驟,從所述服務器列表中的服務器中下載包括文件分片和文件分布表的文件;b3)根據(jù)文件分布表將文件分片重構為文件。作為本發(fā)明分布式文件下載方法的一種改進,在所述步驟b2)中,先測試所述服務器列表中的服務器的下載速度,選擇下載速度快的一個或多個服務器下載所述文件。一種分布式文件上傳裝置,包括服務器獲取模塊,用于與目錄服務器建立連接,獲取可上傳文件的服務器列表;數(shù)據(jù)上傳模塊,用于將包括文件分片和文件分布表的文件上傳至所述服務器列表中的服務器中,其中,所述文件分布表記錄有文件的各個文件分片的存儲信息。作為本發(fā)明分布式文件上傳裝置的一種改進,還包括權值計算模塊,用于定時計算服務器列表中的服務器的權值,所述數(shù)據(jù)上傳模塊獲取該權值的計算結果并優(yōu)先發(fā)送文件至權值高的服務器中。作為本發(fā)明分布式文件上傳裝置的又一改進,還包括活動服務器列表建立模塊,用于根據(jù)權值計算結果,按權值高低建立一活動服務器列表,所述數(shù)據(jù)上傳模塊獲取該活動服務器列表并優(yōu)選發(fā)送所述文件分片至該活動服務器列表中權值高的服務器中。一種分布式文件下載裝置,包括服務器獲取模塊,用于與目錄服務器建立連接,獲取可下載文件的服務器列表;數(shù)據(jù)下載模塊,用于從所述服務器列表中的服務器中下載包括文件分片和文件分布表的文件;文件重構模塊,用于根據(jù)文件分布表將文件分片重構為文件。作為本發(fā)明分布式文件下載裝置的一種改進,還包括下載速度測試模塊,用于測試所述服務器列表中的服務器下載速度,所述數(shù)據(jù)下載模塊選擇一個或多個下載速度快的服務器下載文件。一種分布式文件上傳系統(tǒng),包括-多個服務器,用于接收上傳的文件,所述文件包括文件分片和文件分布表,所述文件分布表記錄有文件的各個文件分片的存儲信息;目錄服務器,存儲有所述多個服務器信息的服務器列表;分布式文件上傳裝置,用于從所述目錄服務器中獲取所述服務器列表,并與服務器列表中的服務器建立連接并上傳所述文件。作為本發(fā)明分布式文件上傳系統(tǒng)的一種改進,所述目錄服務器包括存儲有服務器信息的服務器庫和可用服務器列表管理模塊,所述可用服務器列表管理模塊驗證服務器庫中服務器的狀態(tài),將可以提供上傳文件服務的服務器信息加入所述服務器列表中。一種分布式文件下載系統(tǒng),包括多個服務器,用于存儲上傳的文件;所述文件包括文件分片和文件分布表,所述文件分布表記錄有文件的各個文件分片的存儲信息;目錄服務器,存儲有所述多個服務器信息的服務器列表;分布式文件下載裝置,用于從所述目錄服務器中獲取所述服務器列表,與服務器列表中的服務器建立連接并下載文件。作為本發(fā)明分布式文件下載系統(tǒng)的一種改進,所述目錄服務器包括存儲有所述多個服務器的信息的服務器庫和可用服務器列表管理模塊,所述可用服務器列表管理模塊驗證服務器庫中服務器的狀態(tài),將可以提供下載文件服務的服務器信息加入所述服務器列表中。一種分布式文件傳輸系統(tǒng),包括多個服務器,用于接收和存儲上傳的文件,并提供該文件的下載,所述文件包括文件分片和文件分布表,所述文件分布表記錄有文件的各個文件分片的存儲信息;目錄服務器,存儲有所述多個服務器信息的服務器列表;分布式文件傳輸裝置,用于從所述目錄服務器中獲取所述服務器列表,并與服務器列表中的服務器建立連接,以上傳或下載所述文件。作為本發(fā)明分布式文件傳輸系統(tǒng)的改進,所述目錄服務器包括存儲有服務器信息的服務器庫和可用服務器列表管理模塊,所述可用服務器列表管理模塊驗證服務器庫中服務器的狀態(tài),將可以提供上傳或下載文件服務的服務器信息加入所述服務器列表中。作為本發(fā)明分布式文件傳輸系統(tǒng)的又一改進,所述多個服務器還包括一文件分布表管理模塊,在獲取所述分布式文件傳輸裝置的請求后,判斷該請求類型,如果是上傳文件分布表,則存儲該文件分布表,如果是下載文件分布表,則提取對應的文件分布表以提供下載。本發(fā)明中,用戶通過分布的方式將傳文件上傳到多個服務器上。該方案具有以下優(yōu)點1、服務器總帶寬容量能夠最好地分配給活動的用戶,提高服務器的資源利用率。每個上傳裝置都能感知到服務器環(huán)境的變化,都能最及時地利用被其他上傳裝置釋放的服務器帶寬資源。2、用戶有更多的機會得到高的可用服務器帶寬;理想情況下每個上傳裝置可用的服務器帶寬資源總是(總服務器帶寬)/(總用戶數(shù))。3、服務器為用戶的分布式下載提供了便利。由于用戶上傳的文件很自然地分布在多個服務器上,所以當用戶下載該文件的時候,無論是獨享下載還是共同下載都可以利用多點下載來提高下載速度。4、增加了容錯性?,F(xiàn)有的單點上傳方案中,必然存在單點上傳失敗。用戶的文件所在的服務器上傳失敗后,用戶將不能下載數(shù)據(jù)。而本發(fā)明由于采用分布式上傳方案,其文件被分布在多個服務器上,即使單個的服務器上傳失效,其它的服務器仍能夠繼續(xù)完成文件的接收,從而增加數(shù)據(jù)傳輸?shù)娜蒎e性,不會造成用戶數(shù)據(jù)無法訪問。以下結合附圖及實施例進一步說明本發(fā)明。圖1為現(xiàn)有ftp文件傳輸系統(tǒng)結構示意圖;圖2為本發(fā)明分布式文件上傳裝置結構示意圖;圖3為本發(fā)明分布式文件下載裝置結構示意圖;圖4為本發(fā)明采用平均分布方式的文件分片的分布圖;圖5為本發(fā)明采用填鴨分布方式的文件分片的分布圖;圖6為本發(fā)明分布式文件傳輸系統(tǒng)實施例。具體實施方式實施例一一種分布式文件上傳方法,包括以下步驟-al)服務器獲取步驟,與目錄服務器建立連接,獲取可上傳文件的服務器列表;a2)數(shù)據(jù)上傳步驟,將包括文件分片和文件分布表的文件上傳至所述服務器列表中的服務器中;其中,所述文件分布表記錄有文件的各個文件分片的存儲信息。每個文件通過文件分布表文件來記錄其在每個服務器上的分布情況。文件分布表保存在所有參與分布上傳的服務器上。文件分布表文件記錄文件中各個分片存放的服務器。例如可采用如下格式服務器ID:分片編號;分片編號;分片編號;0000;……;服務器ID:分片編號;分片編號;分片編號;0000;假設共有三個服務器并且用ip地址來定位,其ip地址分別為168.1.1.1,202.1.1.1,155.1.1.1。則對應的文件分布表文件的內容為168.1.1.1:1;7;0000;202.1.1.1:2;5;9;0000;155.1.1.1:3;4;6;8;10;0000;其中,在所述步驟al)之后步驟a2)之前,還包括權值計算步驟,定時計算服務器列表中的服務器的權值,在所述步驟a2)中根據(jù)權值計算結果,優(yōu)先發(fā)送所述文件分片至權值高的服務器中。該權值可以綜合平衡了連接速度、服務器所處的物理位置、網(wǎng)絡實際穩(wěn)定狀態(tài)等中的一個或多個值,以評定該服務器的提供上傳的服務質量。其中,在所述權值計算步驟之后步驟a2)之前,還包括活動服務器列表建立和更新步驟,根據(jù)定時計算的權值,按權值高低建立和更新所述活動服務器列表,在所述步驟a2)中從該活動服務器列表中優(yōu)選上傳文件分片至權值最大且可用的服務器中。其中,所述步驟a2)具體包括以下步驟a21)從活動服務器列表中選擇權值最大且可用的服務器,并從文件中選取一個文件分片上傳至該選擇的服務器中,在該選擇的服務器正在接收同一文件的文件分片時,設定其狀態(tài)為不可用,在該選擇的服務器完成文件分片的接收后,設定其狀態(tài)為可用,更新所述文件分布表;a22)判斷所有文件分片是否傳輸完成,如果是,則執(zhí)行步驟a23),否則,執(zhí)行步驟a21);a23)將文件分布表上傳至所有存儲有文件分片的服務器中。其中,在所述步驟a2)之后,還包括a3)上傳驗證步驟,用于驗證上傳文件的正確性。實施例二一種分布式文件下載方法,包括以下步驟-bl)服務器獲取步驟,與目錄服務器建立連接,獲取可下載文件的服務器列表;b2)數(shù)據(jù)下載步驟,從所述服務器列表中的服務器中下載包括文件分片和文件分布表的文件;b3)根據(jù)文件分布表將文件分片重構為文件。其中,在所述步驟b2)中,先測試所述服務器列表中的服務器的下載速度,選擇下載速度快的一個或多個服務器下載文件。實施例三一種分布式文件上傳裝置,包括服務器獲取模塊,用于與目錄服務器建立連接,獲取可上傳文件的服務器列表;權值計算模塊,用于定時計算服務器列表中的服務器的權值;活動服務器列表建立模塊,用于根據(jù)權值計算結果,按權值高低建立一活動服務器列表;數(shù)據(jù)上傳模塊,獲取該權值的計算結果,并優(yōu)選發(fā)送所述文件分片和文件分布表至該活動服務器列表中權值高的服務器中。其中,所述文件分布表記錄有文件的各個文件分片的存儲信息。實施例四一種分布式文件下載裝置,包括服務器獲取模塊,用于與目錄服務器建立連接,獲取可下載文件的服務器列表;下載速度測試模塊,用于測試所述服務器列表中的服務器下載速度,數(shù)據(jù)下載模塊,用于選擇一個或多個下載速度快的服務器,并從中下載包括文件分片和文件分布表的文件;文件重構模塊,用于根據(jù)文件分布表將文件分片重構為文件。實施例五一種分布式文件上傳系統(tǒng),包括多個服務器,用于接收上傳的文件,所述文件包括文件分片和文件分布表,所述文件分布表記錄有文件的各個文件分片的存儲信息;目錄服務器,存儲所述多個服務器信息的服務器列表;采用實施例三所述的分布式文件上傳裝置,用于從所述目錄服務器中獲取所述服務器列表,并與服務器列表中的服務器建立連接并上傳所述文件。實施例六一種分布式文件下載系統(tǒng),包括多個服務器,用于存儲上傳的文件;所述文件包括文件分片和文件分布表,所述文件分布表記錄有文件的各個文件分片的存儲信息;目錄服務器,存儲有所述多個服務器信息的服務器列表;采用實施例四所述的分布式文件下載裝置,用于從所述目錄服務器中獲取所述服務器列表,與服務器列表中的服務器建立連接并下載文件。實施例七如圖6所示,一種分布式文件傳輸系統(tǒng),包括多個服務器,用于接收和存儲上傳的文件,并提供該文件的下載,所述文件包括文件分片和文件分布表,所述文件分布表記錄有文件的各個文件分片的存儲信息;目錄服務器,存儲有所述多個服務器信息的服務器列表;分布式文件傳輸裝置(圖6中以客戶端表示),該分布式文件傳輸裝置可以是將實施例五與實施例六中的分布式文件上傳、下載裝置合并后形成。用于從所述目錄服務器中獲取所述服務器列表,并與服務器列表中的服務器建立連接,以上傳或下載所述文件。其中,所述目錄服務器包括存儲有服務器信息的服務器庫和可用服務器列表管理模塊,所述可用服務器列表管理模塊驗證服務器庫中服務器的狀態(tài),將可以提供上傳或下載文件服務的服務器信息加入所述服務器列表中。其中,所述多個服務器還包括一文件分布表管理模塊,在獲取所述分布式文件傳輸裝置的請求后,判斷該請求類型,如果是上傳文件分布表,則存儲該文件分布表,如果是下載文件分布表,則提取對應的文件分布表以提供下載。上述實施例中涉及將文件分片上傳至多個服務器中的過程,可采用平均分布和填鴨分布兩種方式,以下分別具體描述其實施方式。1、平均分布方式平均分布方式是將文件分片平均地分散到可用的服務器上,向每個服務器上傳的數(shù)據(jù)量基本相同。假設上傳的文件的為長度L,按照預定義的單元大小P分成N個文件分片。然后將這N個文件分片分布上傳到M個服務器上。則每個服務器上保存的分片最多相差1文件分片,當文件長度L遠大于P時,可以認為每個服務器上的文件分片數(shù)相同。以下用一個實例來進一步說明。假設L=10MB,P=128KB,則N=L/P=10*1024/128=80,假設M=3。則服務器1上面上傳Pn^27個文件分片,服務器2上上傳Pn2:27個文件分片,服務器3上上傳Pn3=26個文件分片。每個服務器上的文件分片分布情況如圖4所示。用戶客戶端依次將固定大小的分片上傳到3個服務器,這樣每個服務器上傳的數(shù)據(jù)量幾乎相同。在用戶客戶端和各個服務器連接速度差別不大的情況下,這種方式很好。但是如果每條鏈路速度差別較大,那么其中的最慢的鏈路就會制約整個上傳過程。假設客戶端到服務器l、服務器2、服務器3的可用帶寬分別為Bl=16KBps、B2=32KBps、B3=64KBps。那么整個文件上傳完成需時max(Pnl*P/Bl,Pn2*P/B2,Pn3*P/B3)=max(27*128/16,27*128/32,26*128/64)=216s。在實際的應用中,每條鏈路的可用帶寬都是動態(tài)變化的,隨著用戶總量的變化,每個用戶在上傳過程中和每個服務器的鏈接上的可用帶寬都是動態(tài)變化的。平均分布模型不能隨著這種變化作任何調整。2、填鴨分布方式為了適應可用帶寬的動態(tài)變化,本發(fā)明提出一種新的分布方式,取名填鴨分布方式。填鴨分布方式中,每個數(shù)據(jù)分片選擇的服務器鏈路沒有規(guī)律可循,采用自適應的方式,完全由上傳時的每條活動鏈路的可用帶寬決定。其基本過程與實施例一、實施例三中的從活動服務器列表中選擇權值最大且可用的服務器進行文件分片上傳過程類似,艮卩-c21)從活動服務器列表中選擇連接速度最快且可用的服務器,從文件中選取一個文件分片上傳至該選擇的服務器中,在該選擇的服務器正在接收同一文件的文件分片時,設定其狀態(tài)為不可用,在該選擇的服務器完成文件分片的接收后,設定其狀態(tài)為可用,更新所述文件分布表;c22)判斷所有文件分片是否傳輸完成,如果是,則結束文件分片上傳,否則,執(zhí)行步驟c21)。以下假設在某個短的時間段內(16秒)中,3條鏈路的帶寬分別穩(wěn)定在8KBps,16KBps,32KBps。每個分片大小P-64KB,總共有10個分片。則采用填鴨分布模型后每個服務器上的分片分布情況如圖5所示。每一文件分片上傳的服務器及耗時如下表所示<table>tableseeoriginaldocumentpage14</column></row><table>整個文件傳輸完成時間max(64*2/8,64*3/16,64*5/32)=16s。如果采用平均分布模型則這個文件傳輸完成時間將是64*4/8=32s。本實施例中,由于文件以文件分片的方式上傳于多個服務器中,文件自然就分布的方式存放。因此,在用戶訪問單個文件時,可從多個服務器中下載文件,從而提高了下載速度。本實施例中提供的兩種不同的分布式上傳方式,對于下載的產(chǎn)生的影響不同。用戶下載數(shù)據(jù)時所處的網(wǎng)絡環(huán)境可能和上傳時的環(huán)境不同,可能在同一個地點,可能在同一個城市的不同位置,也可能在不同的城巿或國家。那么上傳時和各個服務器連接的可用帶寬和下載時沒有必然聯(lián)系。如果上傳的時候采用填鴨分布模型選擇了最佳上傳方案,那么下載的時候可能遇到存放分片最多的服務器的連接的可用帶寬最少的情況,這樣將對下載產(chǎn)生負面影響。而采用平均分布模型上傳,這樣的負面影響就要少一些。所以需要根據(jù)用戶的類型作適當選擇。此外,文件在劃分為文件分片時,可以通過冗余的方式,提高下載的可靠性。例如,對于文件的某一文件分片,可以保存在多個服務器中,用戶下載時,根據(jù)文件分布表獲知該文件分片所在的服務器,并選擇下載速度快的服務器下載該分件分片。上述實施例中,涉及與服務器進行網(wǎng)絡通訊的部分,可采用UDP協(xié)議實現(xiàn)。涉及與數(shù)據(jù)分片和文件分布表文件的上傳和下載的部分可采用TCP協(xié)議實現(xiàn)。在windows平臺下,如果是用戶態(tài)可以采用WinSock接口(WindowsSockets,基于套接字模型的應用程序接口)來開發(fā)。如果是內核態(tài)可以采用傳輸驅動程序接口(TransportDriverInterface,TDI)來開發(fā)。實施例中的其它部分均可以用例如0++語言等一般編程語言和操作系統(tǒng)接口開發(fā)實現(xiàn)。在此需要特別說明的是,本發(fā)明實施例中涉及的目錄服務器和多個服務器,可以通過編程語程序靈活地使所述目錄服務器實現(xiàn)每一所述服務器相同的功能,也可以使任一所述服務器同時也實現(xiàn)所述目錄服務器的功能。同時也可以使實施例中的所述分布式文件上傳裝置、下載裝置、傳輸裝置,采用現(xiàn)有技術中的客戶端通過程序設置靈活實施其中的部分或全部功能。以上所述的僅為本發(fā)明的較佳實施例,并非用來限定本發(fā)明的實施范圍,因此凡依本發(fā)明申請專利范圍所述的構造、特征及精神所作的等同變化與修飾,均應涵蓋在本發(fā)明的保護范圍內。權利要求1.一種分布式文件上傳方法,其特征在于包括以下步驟a1)服務器獲取步驟,用于與目錄服務器建立連接,獲取可上傳文件的服務器列表;a2)數(shù)據(jù)上傳步驟,將包括文件分片和文件分布表的文件上傳至所述服務器列表中的服務器中;其中,所述文件分布表記錄有文件的各個文件分片的存儲信息。2、根據(jù)權利要求1所述的分布式文件上傳方法,其特征在于在所述步驟al)之后步驟a2)之前,還包括權值計算步驟,計算服務器列表中的服務器的權值,在所述步驟a2)根據(jù)權值計算結果,優(yōu)先發(fā)送所述文件分片至權值高的服務器中。3、根據(jù)權利要求2所述的分布式文件上傳方法,其特征在于所述權值計算步驟中,定時計算服務器列表中的服務器的權值。4、根據(jù)權利要求3所述的分布式文件上傳方法,其特征在于在所述權值計算步驟之后步驟a2)之前,還包括活動服務器列表建立和更新步驟,根據(jù)定時計算的權值,按權值高低建立和更新所述活動服務器列表,在所述步驟a2)中從該活動服務器列表中優(yōu)選上傳文件分片至權值最大且可用的服務器中。5、根據(jù)權利要求4所述的分布式文件上傳方法,其特征在于所述步驟a2)具體包括以下步驟a21)從活動服務器列表中選擇權值最大且可用的服務器,并從文件中選取一個文件分片上傳至該選擇的服務器中,在該選擇的服務器正在接收同一文件的文件分片時,設定其狀態(tài)為不可用,在該選擇的服務器完成文件分片的接收后,設定其狀態(tài)為可用,更新所述文件分布表;a22)判斷所有文件分片是否傳輸完成,如果是,則執(zhí)行步驟a23),否則,執(zhí)行步驟a21);a23)將文件分布表上傳至所有存儲有文件分片的服務器中。6、根據(jù)權利要求1所述的分布式文件上傳方法,其特征在于在所述步驟a2)之后,還包括a3)上傳驗證步驟,用于驗證上傳文件的正確性。7、根據(jù)權利要求1至6中任一所述的分布式文件上傳方法,其特征在于所述文件分片的上傳釆用平均分布的上傳方式或填鴨分布的上傳方式。8、一種分布式文件下載方法,其特征在于包括以下步驟bl)服務器獲取步驟,與目錄服務器建立連接,獲取可下載文件的服務器列表;b2)數(shù)據(jù)下載步驟,從所述服務器列表中的服務器中下載包括文件分片和文件分布表的文件;b3)根據(jù)文件分布表將文件分片重構為文件。9、根據(jù)權利要求8所述的分布式文件下載方法,其特征在于在所述步驟b2)中,先測試所述服務器列表中的服務器的下載速度,選擇下載速度快的一個或多個服務器下載所述文件。10、一種分布式文件上傳裝置,其特征在于包括服務器獲取模塊,用于與目錄服務器建立連接,獲取可上傳文件的服務器列表;數(shù)據(jù)上傳模塊,用于將包括文件分片和文件分布表的文件上傳至所述服務器列表中的服務器中,其中,所述文件分布表記錄有文件的各個文件分片的存儲信息。11、根據(jù)權利要求10所述的分布式文件上傳裝置,其特征在于還包括權值計算模塊,用于定時計算服務器列表中的服務器的權值,所述數(shù)據(jù)上傳模塊獲取該權值的計算結果并優(yōu)先發(fā)送文件至權值高的服務器中。12、根據(jù)權利要求ll所述的分布式文件上傳裝置,其特征在于還包括活動服務器列表建立模塊,用于根據(jù)權值計算結果,按權值高低建立一活動服務器列表,所述數(shù)據(jù)上傳模塊獲取該活動服務器列表并優(yōu)選發(fā)送所述文件分片至該活動服務器列表中權值高的服務器中。13、一種分布式文件下載裝置,其特征在于包括服務器獲取模塊,用于與目錄服務器建立連接,獲取可下載文件的服務器列表;數(shù)據(jù)下載模塊,用于從所述服務器列表中的服務器中下載包括文件分片和文件分布表的文件;文件重構模塊,用于根據(jù)文件分布表將文件分片重構為文件。14、根據(jù)權利要求13所述的分布式文件下載裝置,其特征在于還包括下載速度測試模塊,用于測試所述服務器列表中的服務器下載速度,所述數(shù)據(jù)下載模塊選擇一個或多個下載速度快的服務器下載文件。15、一種分布式文件上傳系統(tǒng),其特征在于包括-多個服務器,用于接收上傳的文件,所述文件包括文件分片和文件分布表,所述文件分布表記錄有文件的各個文件分片的存儲信息;目錄服務器,存儲有所述多個服務器信息的服務器列表;分布式文件上傳裝置,用于從所述目錄服務器中獲取所述服務器列表,并與服務器列表中的服務器建立連接并上傳所述文件。16、根據(jù)權利要求15所述的分布式文件上傳系統(tǒng),其特征在于所述目錄服務器包括存儲有服務器信息的服務器庫和可用服務器列表管理模塊,所述可用服務器列表管理模塊驗證服務器庫中服務器的狀態(tài),將可以提供上傳文件服務的服務器信息加入所述服務器列表中。17、一種分布式文件下載系統(tǒng),其特征在于包括多個服務器,用于存儲上傳的文件;所述文件包括文件分片和文件分布表,所述文件分布表記錄有文件的各個文件分片的存儲信息;目錄服務器,存儲有所述多個服務器信息的服務器列表;分布式文件下載裝置,用于從所述目錄服務器中獲取所述服務器列表,與服務器列表中的服務器建立連接并下載文件。18、根據(jù)權利要求17所述的分布式文件下載系統(tǒng),其特征在于所述目錄服務器包括存儲有所述多個服務器的信息的服務器庫和可用服務器列表管理模塊,所述可用服務器列表管理模塊驗證服務器庫中服務器的狀態(tài),將可以提供下載文件服務的服務器信息加入所述服務器列表中。19、一種分布式文件傳輸系統(tǒng),其特征在于包括多個服務器,用于接收和存儲上傳的文件,并提供該文件的下載,所述文件包括文件分片和文件分布表,所述文件分布表記錄有文件的各個文件分片的存儲信息;目錄服務器,存儲有所述多個服務器信息的服務器列表;分布式文件傳輸裝置,用于從所述目錄服務器中獲取所述服務器列表,并與服務器列表中的服務器建立連接,以上傳或下載所述文件。20、根據(jù)權利要求19所述的分布式文件傳輸系統(tǒng),其特征在于所述目錄服務器包括存儲有服務器信息的服務器庫和可用服務器列表管理模塊,所述可用服務器列表管理模塊驗證服務器庫中服務器的狀態(tài),將可以提供上傳或下載文件服務的服務器信息加入所述服務器列表中。21、根據(jù)權利要求20所述的分布式文件傳輸系統(tǒng),其特征在于所述多個服務器還包括一文件分布表管理模塊,在獲取所述分布式文件傳輸裝置的請求后,判斷該請求類型,如果是上傳文件分布表,則存儲該文件分布表,如果是下載文件分布表,則提取對應的文件分布表以提供下載。全文摘要一種分布式文件上傳、下載方法及其裝置和系統(tǒng),分布式文件上傳方法為a1)服務器獲取步驟,用于與目錄服務器建立連接,獲取可上傳文件的服務器列表;a2)數(shù)據(jù)上傳步驟,將包括文件分片和文件分布表的文件上傳至所述服務器列表中的服務器中;其中,所述文件分布表記錄有文件的各個文件分片的存儲信息。分布式文件下載方法為b1)服務器獲取步驟,與目錄服務器建立連接,獲取可下載文件的服務器列表;b2)數(shù)據(jù)下載步驟,從所述服務器列表中的服務器中下載包括文件分片和文件分布表的文件;b3)根據(jù)文件分布表將文件分片重構為文件。用戶通過分布的方式將傳文件上傳到多個服務器上。服務器總帶寬容量能夠最好地分配給用戶,提高了資源的利用率。文檔編號H04L29/06GK101227460SQ20071003665公開日2008年7月23日申請日期2007年1月19日優(yōu)先權日2007年1月19日發(fā)明者晨秦申請人:晨秦