gpt4 book ai didi

java - 如何使用 Java 将远程 SFTP 服务器中存储的文件复制到同一远程服务器中的另一个文件夹?

转载 作者:太空宇宙 更新时间:2023-11-04 11:20:12 25 4
gpt4 key购买 nike

我一直在尝试使用以下方法将远程服务器中的一些选定文件(在执行一些检查后)复制到同一远程服务器:

File localFile = new File(srcPath);
sftpChannel.put(localFile.getAbsolutePath(),localFile.getName());

我什至尝试使用 get() 方法将这些选定的文件复制到我的本地计算机。

有人可以帮忙吗?

最佳答案

核心SFTP协议(protocol)不支持复制远程文件。

copy-file/copy-data extensions to the protocol 的草稿。但只有少数 SFTP 服务器支持这些。在最广泛使用的 OpenSSH SFTP 服务器中,只有最新的 version 9.0 支持它。其他服务器例如 ProFTPD mod_sftp 和 Bitvise SFTP 服务器。

JSch 库不支持扩展。

替代方案:

  • 如果您有 shell 访问权限,请打开“exec” channel ,然后使用 shell cp 命令(或适用于您的服务器操作系统的等效命令)。
    请参阅 Exec.java example
  • 否则,您唯一的选择是将文件下载到本地临时位置,然后将其副本上传回其他/目标远程目录。或 use streams ,以避免临时文件。

另请参阅 How can I copy/duplicate a file to another directory using SFTP?

关于java - 如何使用 Java 将远程 SFTP 服务器中存储的文件复制到同一远程服务器中的另一个文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45004008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com