Jsch是否支持第三方scp文件传输操作?
Does Jsch support third party scp file transfer operation?
我需要使用 SCP 在两台远程机器(比如 A 和 B)之间复制文件。假设我的 java 代码 运行 在机器 C 上,我需要将一个文件从 A 移动到 B,我目前所做的是从 A 到 C 的 SCP 文件,然后从 C 到 B 做另一个 SCP . 但我知道 SCP 支持直接使用 "SCP -3 " 选项在两个远程主机之间传输文件。我使用 jsch 库在两台机器之间做 scp 。 jsch是否支持以上操作?如果不是我可以使用的任何其他图书馆?
Jsch 不包含对 SCP 协议的任何直接支持。您可以使用 jsch 连接到远程服务器并与它们交互,但您必须在此基础上实现您自己的 SCP 逻辑。
您可以找到 SCP 协议的描述 here。对于你的用例,你会做这样的事情:
- 打开与源主机的 Jsch 会话。
- 在源主机上打开一个 exec 通道,调用 scp 发送源文件。
- 打开到目标主机的 jsch 会话。
- 在目标主机上打开一个 exec 通道,调用 scp 来接收文件。
- 从源通道读取文件数据并写入目标通道
话虽如此,Jsch 确实 支持 SFTP,而且 SFTP 通常是优于 SCP 的协议。您应该考虑使用 SFTP 而不是 SCP 来执行此操作。
我需要使用 SCP 在两台远程机器(比如 A 和 B)之间复制文件。假设我的 java 代码 运行 在机器 C 上,我需要将一个文件从 A 移动到 B,我目前所做的是从 A 到 C 的 SCP 文件,然后从 C 到 B 做另一个 SCP . 但我知道 SCP 支持直接使用 "SCP -3 " 选项在两个远程主机之间传输文件。我使用 jsch 库在两台机器之间做 scp 。 jsch是否支持以上操作?如果不是我可以使用的任何其他图书馆?
Jsch 不包含对 SCP 协议的任何直接支持。您可以使用 jsch 连接到远程服务器并与它们交互,但您必须在此基础上实现您自己的 SCP 逻辑。
您可以找到 SCP 协议的描述 here。对于你的用例,你会做这样的事情:
- 打开与源主机的 Jsch 会话。
- 在源主机上打开一个 exec 通道,调用 scp 发送源文件。
- 打开到目标主机的 jsch 会话。
- 在目标主机上打开一个 exec 通道,调用 scp 来接收文件。
- 从源通道读取文件数据并写入目标通道
话虽如此,Jsch 确实 支持 SFTP,而且 SFTP 通常是优于 SCP 的协议。您应该考虑使用 SFTP 而不是 SCP 来执行此操作。