gpt4 book ai didi

Java SFTP 传输库

转载 作者:IT老高 更新时间:2023-10-28 20:57:02 27 4
gpt4 key购买 nike

我正在寻找一个用于 SFTP 文件传输的简单 Java 库。除此之外,我不需要任何其他功能。

我尝试过 Zehon 的,但它令人难以置信的唠叨,而且我认为 8 个 jar 文件对于我需要的这么少的功能来说有点疯狂。

图书馆必须是免费的(就像免费啤酒一样),并且最好是开源的(不是必需的)。

谢谢。

最佳答案

编辑:我将保留我之前的答案,因为 JSch 仍在许多地方使用,但如果您需要更好的文档库,您可以使用 sshj .如何使用它来做 sftp 的一个例子是:

SSHClient ssh = new SSHClient();
ssh.loadKnownHosts();
ssh.connect("host");
try {
ssh.authPassword("username", "password");
SFTPClient sftp = ssh.newSFTPClient();
try {
sftp.put(new FileSystemFile("/path/of/local/file"), "/path/of/ftp/file");
} finally {
sftp.close();
}
} finally {
ssh.disconnect();
}

使用 JSch (例如,Ant 使用的 java ssh 库),您可以这样做:

Session session = null;
Channel channel = null;
try {
JSch ssh = new JSch();
ssh.setKnownHosts("/path/of/known_hosts/file");
session = ssh.getSession("username", "host", 22);
session.setPassword("password");
session.connect();
channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftp = (ChannelSftp) channel;
sftp.put("/path/of/local/file", "/path/of/ftp/file");
} catch (JSchException e) {
e.printStackTrace();
} catch (SftpException e) {
e.printStackTrace();
} finally {
if (channel != null) {
channel.disconnect();
}
if (session != null) {
session.disconnect();
}
}

你可以通过这种方式直接使用JSch,也可以通过Commons VFS , 但是你必须同时拥有 commons vfs jar 和 jsch jar。

关于Java SFTP 传输库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2346764/

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