我想将文件从一台FTP服务器复制到另一台FTP服务器(两台不同的主机)。
Files.copy(
new File(channelSftp.realpath(fileName)).toPath(),
new File(channelSftp2.realpath(fileName)).toPath());
正在提供java.nio.file.NoSuchFileException
有人可以帮我解决这个问题吗。
答案 0 :(得分:1)
通常,如果FTP协议是您可以访问计算机的唯一方式,则无法直接将文件从一个远程FTP服务器传输到另一个远程FTP服务器。
允许这样做FXP protocol,但大多数FTP服务器通常不允许这样做,因为它们通常配置为不接受来自与客户端IP不同的IP地址的数据连接地址。
唯一可靠的解决方案是将文件下载到本地计算机并将其上传到其他FTP服务器。
您基本上可以使用与这些答案中显示的解决方案相同的解决方案,将文件从一个目录复制到同一个FTP服务器上的另一个目录:
(但是你们两个显然需要两个FTPClient
)
如果您有其他服务器的其他访问权限,例如SSH,您当然可以自动登录服务器,然后在其上运行FTP以上传/下载到其他服务器。
尽管你的措辞不对,但你的问题似乎实际上是关于SFTP,而不是FTP。这是两个完全不同的协议。
SFTP根本不支持服务器之间的传输。见
同样,您通常会将文件下载到本地计算机并上传到其他服务器。
再次,使用与此处所示相同的代码将文件从一个SFTP目录复制到另一个SFTP目录,只需使用两个不同的主机:
或者,如果您具有对其中一个服务器的shell访问权限,则可以编程执行某些SFTP客户端以将文件上载/下载到其他服务器或从其他服务器下载文件。但这是一个完全不同的问题。
答案 1 :(得分:1)
我得到了解决方案,感谢您的帮助。
正在使用以下代码:
sftp2.put(sftp.get(文件名),文件名);