简单写个sftp文件下载的工具类
// 1,SSH 连接
final SSHClient client = new SSHClient();
try {
// 设置连接超时
client.setConnectTimeout("连接超时时间");
// 设置数据超时
client.setTimeout("数据超时时间");
client.addHostKeyVerifier(new PromiscuousVerifier());
client.connect(config.getIp(), config.getPort());
// 2,认证(两种认证方式可选,选其一即可)
// 2.1使用私钥认证
File keyFile = new File(config.getPrivateKeyPath());
FileKeyProvider keyProvider = new PKCS8KeyFile();
keyProvider.init(keyFile, PasswordUtils.createOneOff(config.getPassphrase().toCharArray()));
client.authPublickey(config.getUsername(), keyProvider);
// 2.2 使用密码认证
client.authPassword(config.getUsernameByDecrypt(),
config.getPwdByDecrypt());
// 3,SFTP操作
final SFTPClient sftp = client.newSFTPClient();
try {
// SFTP操作
// 删除
//sftp.rm("你的文件路径");
// 下载
// sftp.get("服务器文件路径", new FileSystemFile("本地存储文件路径"));
// 上传
// sftp.put(new FileSystemFile("本地存储文件路径"), "服务器文件路径");
} finally {
sftp.close();
}
} catch (IOException e) {
logger.error("文件服务发生异常", e);
throw new FileException();
} finally {
try {
client.close();
} catch (IOException e) {
logger.error("关闭连接发生异常", e);
throw new FileException();
}
}