如何創建文件推送伺服器
㈠ 怎麼組建一個公司的文件共享伺服器
1、打開控制面板所有控制面板項網路和共享中心更改高級共享設置。
㈡ 如何做一台文件伺服器
實驗16 Windows環境下的文件伺服器配置2007年06月12日 星期二 上午 09:001 實驗目的與要求
(1) 學會安裝和配置文件伺服器。
(2) 學會伺服器端共享文件夾的配置和管理。
(3) 學會客戶端訪問共享文件夾的方法。
(4) 學會分布式文件系統的設置方法。
(5) 實驗學時:2
2 實驗相關理論與知識
計算機網路的基本功能是在計算機間共享信息,文件共享可以說是最基本、最普遍的一種網路服務。雖然越來越多的用戶購置專用文件伺服器(如NAS),但是通用操作系統提供的文件伺服器功能也非常實用,完全能滿足一般的文件共享需求,下面主要介紹Windows Server 2003文件伺服器的配置、管理和應用。
文件伺服器負責共享資源的管理和傳送接收,管理存儲設備(硬碟、光碟、磁帶)中的文件,為網路用戶提供文件共享服務,也稱文件共享伺服器。除了文件管理功能之外,文件伺服器還要提供配套的磁碟緩存、訪問控制、容錯等功能。部署文件伺服器,主要要考慮以下3個因素。
·存取速度:快速存取伺服器上的文件,例如可提供磁碟緩存加速文件讀取。
·存儲容量:要有足夠的存儲空間以容納眾多網路用戶的文件,可使用磁碟陣列。
·安全措施:實現網路用戶訪問控制,確保文件共享安全。
文件伺服器主要有兩類解決方案,一類是專用文件伺服器,另一類是使用PC伺服器或PC計算機組建的通用文件伺服器。
專用文件伺服器是專門設計成文件伺服器的專用計算機,以前主要是運行操作系統、提供網路文件系統的大型機、小型機,現在的專用文件伺服器則主要指具有文件伺服器的網路存儲系統,如NAS和 SAN。NAS獨立於操作系統平台,可支持多種操作系統和網路文件系統,提供集中化的網路文件伺服器和存儲環境,比一般的文件伺服器的功能更強大,可看作是專用存儲伺服器,可為那些訪問和共享大量文件系統數據的用戶提供高效、性能價格比優異的解決方案。SAN全稱存儲區域網路,是一種用戶存儲服務的特殊網路,通常由磁碟陣列、光碟庫、磁帶庫和光纖交換機組成。NAS可作為獨立的文件伺服器,提供文件級的數據訪問功能,更適合文件共享。而SAN提供數據塊級的數據訪問功能,更適合資料庫和海量數據。
目前一般用戶使用PC伺服器或PC計算機,通過網路操作系統來提供文件服務,UNIX、Linux、Novell、 Windows等操作系統都可提供文件共享服務。Windows網路操作系統,如Windows NT Server、Windows2000 Server和最新的Windows Server 2003由於操作管理簡單、功能強大,在中小用戶群中的普及率非常高,許多文件伺服器都運行Windows網路操作系統。下面將重點以Windows Server 2003為例介紹文件伺服器的配置、管理和應用。
3 實驗環境與設備
C/S模式的網路環境,包括一台Windows XP客戶機和一台Windows Server 2003伺服器。
兩種可選的物理拓撲(交叉線連接或通過集線器/交換機用直連線連接)。
4 實驗內容與步驟
4.0 伺服器的基本網路配置,包括IP地址為「192.168.105.XX」、網關為「192.168.105.254」等。(註:「XX」代表你配置機器的主機編號,「nXX」代表你的伺服器主機名,例如你坐在5號機上則「XX」代表「05」,「1XX」代表「105」,配置此機的IP地址為「192.168.105.5」、主機名為「n05」,下同)。
4.1 安裝和配置文件伺服器
文件伺服器提供網路上的中心位置,可供存儲文件並通過網路與用戶共享文件。當用戶需要重要文件時,可以訪問文件伺服器上的文件,而不必在各自獨立的計算機之間傳送文件。如果網路用戶需要對相同文件和可通過網路訪問的應用程序的訪問許可權,就要將該計算機配置為文件伺服器。默認情況下,在安裝Windows Server 2003系統時,將自動安裝「Microsoft網路的文件和列印共享」網路組件。如果沒有該組件,可通過網路連接屬性對話框安裝。
1.准備工作
在部署文件伺服器之前,應當做好以下准備工作。
·劃出專門的硬碟分區(卷)用於提供文件共享服務,而且要保證足夠的存儲空間,必要時使用磁碟陣列。
·磁碟分區(卷)使用NTFS文件系統,因為FAT32缺乏安全性,而且不支持文件和文件夾壓縮、磁碟配額、文件加密或單個文件許可權等重要特性。
提示:使用Windows Server 2003自帶的工具即可將FAT32轉換成NTFS格式。該工具名為Convert.exe,位於Windows安裝目錄下的System32目錄中。在命令行狀態運行該工具即可,如Convert E:/FS:NTFS。
·確定是否要啟用磁碟配額,以限制用戶使用的磁碟存儲空間。
·確定是否要使用索引服務,以提供更快速、更便捷的搜索服務。
2.配置文件伺服器
只要將Windows Server 2003計算機上的某個文件夾共享出來,就會自動安裝文件伺服器,也可通過「配置您的伺服器向導」工具來安裝文件伺服器角色。這兩種方法的差別是,第二種方法提供更多的選項,並在程序菜單中提供文件伺服器管理台工具。這里介紹採用第二種方法的基本步驟。
(1) 啟動「配置您的伺服器向導」工具。默認情況下,登錄Windows Server 2003時將自動啟動「管理您的伺服器」(也可從控制面板中選擇【管理工具】→【管理您的伺服器】),單擊【添加或刪除角色】。另一種方法是直接從控制面板中選擇【管理工具】→【管理您的伺服器】→【配置您的伺服器向導】。單擊【下一步】按鈕。
(2) 在【配置選項】界面中選擇【自定義配置】,單擊【下一步】按鈕。
(3) 在【伺服器角色】界面中,如果【文件伺服器】的【已配置】狀態為「否」,就單擊【文件伺服器】,然後單擊【下一步】。
注意:如果【文件伺服器】的【已配置】狀態為「是」,就單擊【文件伺服器】,再單擊【下一步】按鈕打開【角色刪除確認】界面,並選擇【刪除文件伺服器角色】復選框,即可刪除文件伺服器角色,這樣該伺服器上的文件和文件夾就不再共享,依賴於這些共享資源的網路用戶、程序或宿主都將無法與它們連接。
(4) 出現【文件伺服器磁碟配額】對話框中,為伺服器上所有NTFS分區設置默認的磁碟配額。勾選【為此伺服器的新用戶設置默認磁碟空間配額】和【拒絕將磁碟空間給超過配額限制的用戶】。單擊【下一步】按鈕。默認情況下是沒有啟用磁碟配額。
(5) 出現【文件伺服器索引服務】對話框,確定是否要使用索引服務。單擊【下一步】按鈕。一般情況下不需索引服務,只有在用戶要經常搜索該伺服器上的文件內容時才啟用它。
(6) 出現【選擇總結】對話框,查看和確認已經選擇的選項,單擊【下一步】按鈕。
本例中有「設置默認磁碟配額」、「安裝文件伺服器管理」和「運行共享文件夾向導來添加一個新的共享文件夾或共享已有文件夾」等選項。
(7) 自動完成相關配置後,出現共享文件夾向導,根據提示配置共享文件夾以供其他用戶共享。只有配置了共享文件夾之後,文件伺服器才能建立。
(8) 單擊【下一步】按鈕,出現【文件夾路徑】對話框,指定要共享的文件夾路徑。可通過【瀏覽】在C盤目錄下新建一個【FileShare】作為共享目錄,此時【文件夾路徑】輸入框中將出現【C:\FileShare】(如果C盤中已經建立過此文件夾,才可以在此輸入框中直接輸入)。
(9)單擊【下一步】按鈕,出現【名稱、描述和設置】對話框,指定共享名。
(10) 單擊【下一步】按鈕,出現【許可權】對話框,指定共享許可權為【管理員有完全訪
問許可權;其他用戶有隻讀訪問許可權】,單擊【完成】按鈕。這里提供了幾種預置的許可權,也可以自定義許可權。
(11)【共享成功】對話框中顯示共享成功,給出新建共享文件夾的信息。如果要繼續設置其他共享文件夾,則選中下面的復選框。單擊【關閉】按鈕,【完成】。
至此文件伺服器配置就完成了。接下來可執行各項文件管理任務。
3.文件伺服器管理工具(以下方法至少掌握一種)
Windows Server 2003提供了用於文件伺服器配置管理的多種工具。
·文件伺服器管理控制台:打開「管理您的伺服器」工具,在【文件伺服器】區域單擊【管理此文件伺服器】,打開該控制台。要使用「配置您的伺服器向導」工具安裝文件伺服器,可從程序菜單中選擇【管理工具】→【文件伺服器管理】命令打開該控制台。
·「共享文件夾」管理工具:也可通過「計算機管理」工具中的「共享文件夾」管理工具來執行共享文件夾的配置管理,從程序菜單中選擇【管理工具】→【計算機管理】,展開【共享文件夾】節點即可。
·Windows資源管理器:可直接將文件夾配置為共享文件夾。
·命令行工具:如net share可顯示有關本地計算機上全部共享資源的信息。
㈢ 如何建立ftp伺服器
1、首先,我們創建一個用於登錄FTP以進行操作的用戶帳戶。右鍵單擊我的桌面並選擇「管理選項」,轉到「管理」界面,然後打開「本地用戶和組」選項。我們可以在列表中看到用戶選項。
㈣ 如何將本地文件上傳到windows伺服器
有兩種方法上傳程序到伺服器裡面。
如果是win系統伺服器,那麼打開遠程桌面,從本地電腦復制文件,到遠程桌面伺服器裡面,粘貼文件,就可以了。
如果有ip地址,ftp賬號密碼,也可以用 ftp軟體上傳。
這類的ftp軟體有很多,上網搜索一款用就是了。
㈤ vscode如何增量推送代碼到svn伺服器
1、安裝svn客戶端TortoiseSVN。2、創建存放自己項目的文件夾,把本地創建好的vue項目代碼提交到svn伺服器上,不提交nodemoles。3、在本地要存放項目的地方右鍵svncheckout,填入上一步提交的路徑,下載後用vscode打開此文件夾。4、在終端中執行命令npminstall,安裝項目依賴。5、輸入npmrundev運行項目。6、修改文件後直接在vscode左側右鍵svnCommit就會顯示需要提交的文件。
還沒有納入svn控制的文件才可以納入忽略文件列表,已經被svn控制的文件是無法納入到忽略文件列表的。若你的文件已廳枝經納入svn控制,可以將導出另存到其他位置,然後將原工作區和友的文件夾刪除,commit一下,再把剛才另存的文件夾復制回來,這樣此文扮棚敏件夾就脫離svn控制啦。
㈥ java中如何實現從客戶端發送文件到伺服器端
伺服器端源碼:x0dx0aimport java.io.BufferedReader;x0dx0aimport java.io.File;x0dx0aimport java.io.FileNotFoundException;x0dx0aimport java.io.FileOutputStream;x0dx0aimport java.io.IOException;x0dx0aimport java.io.InputStream;x0dx0aimport java.io.InputStreamReader;x0dx0aimport java.net.ServerSocket;x0dx0aimport java.net.Socket;x0dx0ax0dx0a/**x0dx0a *x0dx0a * 文件名:ServerReceive.javax0dx0a * 實現功能:作為伺服器接收客戶端發送的文件x0dx0a *x0dx0a * 具體實現過程:x0dx0a * 1、建立SocketServer,等待客戶端的連接x0dx0a * 2、當有客戶端虛鍵毀連接的時候,按照雙方的約定,這時要讀取一行數據x0dx0a * 其中保存客戶端要發送的文件名和文件大小信息x0dx0a * 3、根據文件名在本地創建文件,並建立好流通信x0dx0a * 4、循環接收數據包,將數據包寫入文件x0dx0a * 5、當接收數據的長度等於提前文件發過來的文件長亮伏度,即表示文件接收完畢,關閉文件差備x0dx0a * 6、文件接收工作結束x0dx0ax0dx0apublic class ServerReceive {x0dx0a x0dx0a public static void main(String[] args) {x0dx0a x0dx0a /**與伺服器建立連接的通信句柄*/x0dx0a ServerSocket ss = null;x0dx0a Socket s = null;x0dx0a x0dx0a /**定義用於在接收後在本地創建的文件對象和文件輸出流對象*/x0dx0a File file = null;x0dx0a FileOutputStream fos = null;x0dx0a x0dx0a /**定義輸入流,使用socket的inputStream對數據包進行輸入*/x0dx0a InputStream is = null;x0dx0a x0dx0a /**定義byte數組來作為數據包的存儲數據包*/x0dx0a byte[] buffer = new byte[4096 * 5];x0dx0a x0dx0a /**用來接收文件發送請求的字元串*/x0dx0a String comm = null;x0dx0ax0dx0a/**建立socekt通信,等待伺服器進行連接*/x0dx0a try {x0dx0a ss = new ServerSocket(4004);x0dx0a s = ss.accept();x0dx0a } catch (IOException e) {x0dx0a e.printStackTrace();x0dx0a }x0dx0ax0dx0a/**讀取一行客戶端發送過來的約定信息*/x0dx0a try {x0dx0a InputStreamReader isr = new InputStreamReader(s.getInputStream());x0dx0a BufferedReader br = new BufferedReader(isr);x0dx0a comm = br.readLine();x0dx0a } catch (IOException e) {x0dx0a System.out.println("伺服器與客戶端斷開連接");x0dx0a }x0dx0a x0dx0a /**開始解析客戶端發送過來的請求命令*/x0dx0a int index = comm.indexOf("/#");x0dx0a x0dx0a /**判斷協議是否為發送文件的協議*/x0dx0a String xieyi = comm.substring(0, index);x0dx0a if(!xieyi.equals("111")){x0dx0a System.out.println("伺服器收到的協議碼不正確");x0dx0a return;x0dx0a }x0dx0a x0dx0a /**解析出文件的名字和大小*/x0dx0a comm = comm.substring(index + 2);x0dx0a index = comm.indexOf("/#");x0dx0a String filename = comm.substring(0, index).trim();x0dx0a String filesize = comm.substring(index + 2).trim();x0dx0ax0dx0a/**創建空文件,用來進行接收文件*/x0dx0a file = new File(filename);x0dx0a if(!file.exists()){x0dx0a try {x0dx0a file.createNewFile();x0dx0a } catch (IOException e) {x0dx0a System.out.println("伺服器端創建文件失敗");x0dx0a }x0dx0a }else{x0dx0a /**在此也可以詢問是否覆蓋*/x0dx0a System.out.println("本路徑已存在相同文件,進行覆蓋");x0dx0a }x0dx0a x0dx0a /**【以上就是客戶端代碼中寫到的伺服器的准備部分】*/x0dx0ax0dx0a/**x0dx0a * 伺服器接收文件的關鍵代碼*/x0dx0a try {x0dx0a /**將文件包裝到文件輸出流對象中*/x0dx0a fos = new FileOutputStream(file);x0dx0a long file_size = Long.parseLong(filesize);x0dx0a is = s.getInputStream();x0dx0a /**size為每次接收數據包的長度*/x0dx0a int size = 0;x0dx0a /**count用來記錄已接收到文件的長度*/x0dx0a long count = 0;x0dx0a x0dx0a /**使用while循環接收數據包*/x0dx0a while(count < file_size){x0dx0a /**從輸入流中讀取一個數據包*/x0dx0a size = is.read(buffer);x0dx0a x0dx0a /**將剛剛讀取的數據包寫到本地文件中去*/x0dx0a fos.write(buffer, 0, size);x0dx0a fos.flush();x0dx0a x0dx0a /**將已接收到文件的長度+size*/x0dx0a count += size;x0dx0a System.out.println("伺服器端接收到數據包,大小為" + size);x0dx0a }x0dx0a x0dx0a } catch (FileNotFoundException e) {x0dx0a System.out.println("伺服器寫文件失敗");x0dx0a } catch (IOException e) {x0dx0a System.out.println("伺服器:客戶端斷開連接");x0dx0a }finally{x0dx0a /**x0dx0a * 將打開的文件關閉x0dx0a * 如有需要,也可以在此關閉socket連接x0dx0a * */x0dx0a try {x0dx0a if(fos != null)x0dx0a fos.close();x0dx0a } catch (IOException e) {x0dx0a e.printStackTrace();x0dx0a }//catch (IOException e)x0dx0a }//finallyx0dx0a x0dx0a }//public static void main(String[] args)x0dx0a}//public class ServerReceivex0dx0ax0dx0a客戶端源碼:x0dx0ax0dx0aimport java.io.File;x0dx0aimport java.io.FileInputStream;x0dx0aimport java.io.FileNotFoundException;x0dx0aimport java.io.IOException;x0dx0aimport java.io.OutputStream;x0dx0aimport java.io.PrintStream;x0dx0aimport java.net.Socket;x0dx0ax0dx0a/**x0dx0a *x0dx0a * 文件名:ClientSend.javax0dx0a * 實現功能:作為客戶端向伺服器發送一個文件x0dx0a *x0dx0a * 具體實現過程:x0dx0a * 1、建立與伺服器端的連接,IP:127.0.0.1, port:4004x0dx0a * 2、將文件的名字和大小通過自定義的文件傳輸協議,發送到伺服器x0dx0a * 3、循環讀取本地文件,將文件打包發送到數據輸出流中x0dx0a * 4、關閉文件,結束傳輸x0dx0a *x0dx0a * */x0dx0a x0dx0apublic class ClientSend {x0dx0a x0dx0a public static void main(String[] args) {x0dx0a x0dx0a /**與伺服器建立連接的通信句柄*/x0dx0a Socket s = null;x0dx0a x0dx0a /**定義文件對象,即為要發送的文件x0dx0a * 如果使用絕對路徑,不要忘記使用'/'和'\'的區別x0dx0a * 具體區別,請讀者自行查詢x0dx0a * */x0dx0a File sendfile = new File("API.CHM");x0dx0a /**定義文件輸入流,用來打開、讀取即將要發送的文件*/x0dx0a FileInputStream fis = null;x0dx0a /**定義byte數組來作為數據包的存儲數據包*/x0dx0a byte[] buffer = new byte[4096 * 5];x0dx0a x0dx0a /**定義輸出流,使用socket的outputStream對數據包進行輸出*/x0dx0a OutputStream os = null;x0dx0ax0dx0a/**檢查要發送的文件是否存在*/x0dx0a if(!sendfile.exists()){x0dx0a System.out.println("客戶端:要發送的文件不存在");x0dx0a return;x0dx0a }x0dx0ax0dx0a/**與伺服器建立連接*/x0dx0a try {x0dx0a s = new Socket("127.0.0.1", 4004);x0dx0a }catch (IOException e) {x0dx0a System.out.println("未連接到伺服器");x0dx0a }x0dx0a x0dx0a /**用文件對象初始化fis對象x0dx0a * 以便於可以提取出文件的大小x0dx0a * */x0dx0a try {x0dx0a fis = new FileInputStream(sendfile);x0dx0a } catch (FileNotFoundException e1) {x0dx0a e1.printStackTrace();x0dx0a }x0dx0ax0dx0a/**首先先向伺服器發送關於文件的信息,以便於伺服器進行接收的相關准備工作x0dx0a * 具體的准備工作,請查看伺服器代碼。x0dx0a *x0dx0a * 發送的內容包括:發送文件協議碼(此處為111)/#文件名(帶後綴名)/#文件大小x0dx0a * */x0dx0a try {x0dx0a PrintStream ps = new PrintStream(s.getOutputStream());x0dx0a ps.println("111/#" + sendfile.getName() + "/#" + fis.available());x0dx0a ps.flush();x0dx0a } catch (IOException e) {x0dx0a System.out.println("伺服器連接中斷");x0dx0a }x0dx0ax0dx0a/**x0dx0a * 此處睡眠2s,等待伺服器把相關的工作準備好x0dx0a * 也是為了保證網路的延遲x0dx0a * 讀者可自行選擇添加此代碼x0dx0a * */x0dx0a try {x0dx0a Thread.sleep(2000);x0dx0a } catch (InterruptedException e1) {x0dx0a e1.printStackTrace();x0dx0a }x0dx0ax0dx0a/**之前的准備工作結束之後x0dx0a * 下面就是文件傳輸的關鍵代碼x0dx0a * */x0dx0a try {x0dx0a x0dx0a /**獲取socket的OutputStream,以便向其中寫入數據包*/x0dx0a os = s.getOutputStream();x0dx0a x0dx0a /** size 用來記錄每次讀取文件的大小*/x0dx0a int size = 0;x0dx0a x0dx0a /**使用while循環讀取文件,直到文件讀取結束*/x0dx0a while((size = fis.read(buffer)) != -1){x0dx0a System.out.println("客戶端發送數據包,大小為" + size);x0dx0a /**向輸出流中寫入剛剛讀到的數據包*/x0dx0a os.write(buffer, 0, size);x0dx0a /**刷新一下*/x0dx0a os.flush();x0dx0a }x0dx0a } catch (FileNotFoundException e) {x0dx0a System.out.println("客戶端讀取文件出錯");x0dx0a } catch (IOException e) {x0dx0a System.out.println("客戶端輸出文件出錯");x0dx0a }finally{x0dx0a x0dx0a /**x0dx0a * 將打開的文件關閉x0dx0a * 如有需要,也可以在此關閉socket連接x0dx0a * */x0dx0a try {x0dx0a if(fis != null)x0dx0a fis.close();x0dx0a } catch (IOException e) {x0dx0a System.out.println("客戶端文件關閉出錯");x0dx0a }//catch (IOException e)x0dx0a }//finallyx0dx0a x0dx0a }//public static void main(String[] args)x0dx0a}//public class ClientSend