2009-06-06 113 views
1

我有一個Java應用程序,它從一個FTP服務器複製或移動一堆千兆文件到另一個。目前它使用ftp get將第一個fpt服務器中的文件複製到本地計算機(它運行的位置),然後使用ftp put將其複製到第二個ftp服務器。我使用apache的網絡庫。複製或移動一個文件從一個FTP服務器到另一個

是否有可能直接從一臺FTP服務器複製到另一臺繞過本地計算機?一個想法是創建一個java遠程登錄會話併發送一些ftp命令。它會起作用嗎?還有其他建議嗎?

+0

您沒有權限在目標服務器上運行任何操作? – neesh 2009-06-06 21:02:51

回答

2

服務器到服務器的FTP傳輸也稱爲「FXP」。嘗試在谷歌中搜索「fxp java」。

例如:this page可能會有用。

4

這肯定會奏效。但是,如果您可以使用rcp(1)或scp(1),則不需要中間副本或Telnet會話。只需使用

$ scp [email protected]:file [email protected]:file 

如果您使用遠程會話,請考慮使用ssh(1)而不是telnet。

1

Telnet/SSH應該可以工作。找到一個可用的java遠程登錄客戶端庫,並從那裏拿...

Here's an article關於腳本與Java的Telnet會話。

4

是的,理論上這可能是由於FTP工作的有趣方式。實際上,它可能需要一個自定義的FTP「客戶端」,與兩臺服務器一起工作。

服務器到服務器的傳輸方案在FTP RFC (959).的第5.2節中進行了描述和說明。簡而言之,一臺服務器會發送一條PASV命令,該命令將IP地址和端口號返回給中間人。中間人通過PORT命令將其發送到另一臺服務器,並且該服務器直接與第一臺服務器建立數據連接。

相關問題