【问题标题】:copy or move a file from one ftp server to another将文件从一个 ftp 服务器复制或移动到另一个
【发布时间】:2009-06-06 20:47:17
【问题描述】:

我有一个 java 应用程序,它将一堆千兆文件从一个 ftp 服务器复制或移动到另一个。目前它使用 ftp get 将文件从第一个 fpt 服务器复制到本地计算机(它运行的地方),然后使用 ftp put 将其复制到第二个 ftp 服务器。我使用来自 apache 的网络库。

是否可以绕过本地计算机直接从一台 ftp 服务器复制到另一台服务器?一个想法是创建一个 java telnet 会话并发送几个 ftp 命令。它会起作用吗?还有其他建议吗?

【问题讨论】:

  • 你没有权限在目标服务器上运行任何东西?
  • 是的,我愿意。这就是我考虑使用 telnet 或 ssh 解决方案的原因

标签: java ftp


【解决方案1】:

这肯定会奏效。但是,如果您可以使用 rcp(1) 或 scp(1),则不需要中间副本或 telnet 会话。只需使用

$ scp user@sys1:file user@sys2:file

如果您确实使用远程会话,请考虑使用 ssh(1) 而不是 telnet。

【讨论】:

    【解决方案2】:

    是的,理论上这是可能的,因为 FTP 的工作方式很有趣。在实践中,可能需要在中间使用自定义 FTP“客户端”,与两台服务器一起工作。

    FTP RFC (959). 的第 5.2 节对服务器到服务器的传输场景进行了描述和示意性说明,简而言之,向一台服务器发送 PASV 命令,该命令将 IP 地址和端口号返回给中间人。中间人通过 PORT 命令将其发送到另一台服务器,该服务器直接与第一台服务器建立数据连接。

    【讨论】:

      【解决方案3】:

      服务器到服务器的 FTP 传输也称为“FXP”。尝试在 google 中搜索“fxp java”。

      例如:this page 可能很有用。

      【讨论】:

        【解决方案4】:

        Telnet/SSH 应该可以工作。找到一个可用的 java telnet 客户端库并从那里获取...

        Here's an article 谈如何使用 Java 编写 telnet 会话。

        【讨论】:

          【解决方案5】:

          我知道一个 PHP 脚本。您可以使用它在没有 SSH 访问权限的情况下将文件从服务器移动到服务器。 速度非常快,可以移动多个文件:http://dlvn.net/web-development/move-files-from-server-to-server/

          【讨论】:

            猜你喜欢
            • 2018-07-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-08-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-08-17
            相关资源
            最近更新 更多