java实现连接sftp服务器并下载⽂件到本地l引⼊jar包
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>
2.连接sftp服务器⽅法
private static Session sshSession;
/**
* 连接sftp服务器
* @param host ftp地址
* @param port 端⼝
* @param userName 账号
* @param password 密码
* @return
*/
public static ChannelSftp sftpConnection(String host,int port, String userName, String password){
JSch jsch = new JSch();
ChannelSftp channelSftp;
try {
connect下载
sshSession = Session(userName, host, port);
sshSession.setPassword(password);
Properties properties = new Properties();
properties.put("StrictHostKeyChecking", "no");
sshSession.setConfig(properties);
Channel channel = sshSession.openChannel("sftp");
channelSftp = (ChannelSftp) channel;
}catch (JSchException e){
e.printStackTrace();
throw new RRException("Sftp服务器登录异常!");
}
return channelSftp;
}
3.断开sftp服务⽅法
/**
*@description 退出Sftp服务器登录
*@return
**/
public static void sftpClose(ChannelSftp channelSftp){
if (channelSftp != null) {
if (channelSftp.isConnected()){
channelSftp.disconnect();
}
}
}
/**
* 关闭session
*/
public static void sessionClose(){
if (sshSession != null) {
if (sshSession.isConnected()){
sshSession.disconnect();
sshSession = null;
}
}
}
4.下载sftp服务器知道路径的⽂件到本地⽅法
/**
* 下载sftp⽂件
* @param sftp
* @param newFileName 新⽂件名称
* @param path ⽂件路径
* @param fileName ⽂件名称
* @param downUrl 下载到本地的路径
* @throws Exception
*/
public static void downSftpFile(ChannelSftp sftp, String newFileName,String path, String fileName, String downUrl) throws Exception {
OutputStream os=null;
try {
File localFile = new File(downUrl + "/" + newFileName);
if (!ParentFile().exists()) {
}
if (path != null && !"".equals(path)) {
sftp.cd(path);//进⼊所在路径
}
os = new FileOutputStream(localFile);
<(path + fileName, os);
os.close();
}catch (Exception e){
e.printStackTrace();
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论