2009-06-06 94 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命令将其发送到另一台服务器,并且该服务器直接与第一台服务器建立数据连接。

相关问题