2013-04-14 63 views
0

我想知道如何編輯遠程文件,而無需將其下載到本地計算機實際工作的細節。使用谷歌和閱讀一些帖子後,我瞭解到這可以使用FTP或SSH協議。如何編輯遠程文件?

我認爲它是由一個特殊的客戶端應用程序來建立到服務器的TCP/IP套接字連接,但是在完成之後發生了什麼?

誰需要實現該協議以及另一個打開遠程文件的應用程序如何獲取所需的數據?

+0

不知道SSH,但通過FTP,文件只是一遍又一遍發送。你應該閱讀實際的協議規範來找出答案。 –

回答

0

應用程序將本地下載整個文件,打開它,進行更改並重新上傳整個文件。一個典型的例子是WinSCP,您可以在其中編輯遠程文件。應用程序(WinSCP)知道要使用哪種協議(FTP/FTPS/SFTP等)並知道要使用的參數(例如,遠程目錄將文件上傳到,用戶名,密碼,端口等)。即使文件很大,整個文件也必須下載才能修改。

似乎沒有辦法在FTP,SFTP中進行部分文件更新。 HTTP或SCP。事實上,沒有衆所周知的開源協議來做到這一點。如果有一個實現在那裏它必須專有。

+0

謝謝,這對我很有意義。我以爲你會真正編輯服務器上的文件,而不用先寫入文件。 – user2035039

3

通過SSH工作的SFTP協議(不要與FTP/FTPS混合使用)允許按塊訪問遠程文件。它幾乎可以在任何SSH服務器上工作(允許sftp子系統)。

例如,以這種方式運行SFTP Net Drive應用程序,該應用程序將遠程服務器的文件系統安裝爲Windows驅動器。

+0

這是否適用於每個應用程序或每個應用程序需要構建支持? – user2035039

+0

當然,你需要在應用程序中使用支持SFTP的庫。 –

0

關於FTPSFTP的維基百科文章看起來相當不錯,並且提供了到RFC的鏈接,如果您想進一步調查。

誰需要實現該協議以及另一個打開遠程文件的應用程序如何獲取所需的數據?

你不會說你的程序將被寫入哪種語言,但是肯定有適合他們大多數的ftp和sftp庫。

如果您的程序在Linux/OS X /其他BSD上運行,您甚至可以撥打ftp/sftp程序逃脫。

+0

由於缺少部分上傳(即無法在文件中間更改數據塊),FTP對於這樣的操作並不是很好。 –

+0

對不起,我覺得我還不夠具體。我確實懂得如何編寫將編輯遠程文件的應用程序。我很想知道窗口中的網絡驅動器是如何工作的:像Word這樣的應用程序並不真正知道這些是遠程文件,所以我問自己:如何建立到服務器的連接的應用程序知道什麼數據傳輸和何時? – user2035039