【问题标题】:Copy files from one FTP server to another FTP server in Java用 Java 将文件从一台 FTP 服务器复制到另一台 FTP 服务器
【发布时间】:2018-07-08 14:20:55
【问题描述】:

我想将文件从一台 FTP 服务器复制到另一台 FTP 服务器(两台不同的主机)。

Files.copy(
    new File(channelSftp.realpath(fileName)).toPath(),
    new File(channelSftp2.realpath(fileName)).toPath());

它正在给java.nio.file.NoSuchFileException

谁能帮帮我。

【问题讨论】:

  • 查看你的问题历史:你真的应该在提问之前做一些研究!
  • 我不想从一个文件夹复制到另一个文件夹,我想将文件从一个 FTP 地址复制到另一个 FTP 地址(我的意思是 2 个不同的主机)

标签: java ftp sftp


【解决方案1】:

FTP

一般来说,如果 FTP 协议是您访问机器的唯一方式,您不能直接将文件从一个远程 FTP 服务器传输到另一个远程 FTP 服务器。

FXP protocol 允许这样做,但大多数 FTP 服务器通常不允许这样做,因为它们通常配置为不接受来自不同于客户端 IP 地址的 IP 地址的数据连接。


唯一可靠的解决方案是将文件下载到本地计算机并上传到其他 FTP 服务器。

您基本上可以使用这些答案中显示的相同解决方案将文件从同一 FTP 服务器上的一个目录复制到另一个目录:

(但显然你需要两个 FTPClient 实例)


如果您对其中一个服务器具有其他访问权限,例如 SSH,您当然可以自动登录到该服务器,然后在其上运行 FTP 以向/从另一台服务器上传/下载。


SFTP

尽管您的措辞,您的问题似乎实际上是关于 SFTP,而不是 FTP。这是两个完全不同的协议。

SFTP 根本不支持服务器之间的传输。见

同样,您通常最终会将文件下载到本地计算机并上传到其他服务器。

再次,使用与此处相同的代码将文件从一个 SFTP 目录复制到另一个目录,只需使用两个不同的主机:

或者,如果您对其中一个服务器具有 shell 访问权限,您可以通过编程方式执行一些 SFTP 客户端来向/从另一台服务器上传/下载文件。但这是一个完全不同的问题。

【讨论】:

    【解决方案2】:

    我得到了解决方案,谢谢你的帮助。

    它正在使用以下代码:

    sftp2.put(sftp.get(fileName),fileName);

    【讨论】:

    • sftp 和 sftp2 是两个不同的 FTP 服务器
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 2016-02-26
    • 2021-06-22
    • 1970-01-01
    • 2020-06-18
    • 2011-02-05
    相关资源
    最近更新 更多