feat: 增加sftp工具
parent
c1138109f4
commit
3a499165df
@ -0,0 +1,73 @@
|
||||
package com.xydl.cac.util;
|
||||
|
||||
import com.jcraft.jsch.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.Properties;
|
||||
import java.util.Vector;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class SFTPTool {
|
||||
Session session = null;
|
||||
ChannelSftp sftp = null;
|
||||
|
||||
/**
|
||||
* 1. 第一步:连接sftp服务器
|
||||
*
|
||||
* @param host 主机
|
||||
* @param port 端口
|
||||
* @param username 用户名
|
||||
* @param password 密码
|
||||
* @return
|
||||
*/
|
||||
public void connect(String host, int port, String username, String password) throws JSchException {
|
||||
JSch jsch = new JSch();
|
||||
session = jsch.getSession(username, host, port);
|
||||
session.setPassword(password);
|
||||
Properties sshConfig = new Properties();
|
||||
sshConfig.put("StrictHostKeyChecking", "no");
|
||||
session.setConfig(sshConfig);
|
||||
session.connect();
|
||||
Channel channel = session.openChannel("sftp");
|
||||
channel.connect();
|
||||
sftp = (ChannelSftp) channel;
|
||||
}
|
||||
|
||||
/**
|
||||
* 3.最后一步:关闭 channel和session
|
||||
*/
|
||||
public void disconnect() {
|
||||
try {
|
||||
if (sftp != null && sftp.isConnected()) {
|
||||
sftp.disconnect();
|
||||
}
|
||||
} catch (Exception ignore) {
|
||||
}
|
||||
try {
|
||||
if (session != null && session.isConnected()) {
|
||||
session.disconnect();
|
||||
}
|
||||
} catch (Exception ignore) {
|
||||
}
|
||||
}
|
||||
|
||||
public void upload(String localFilePath, String remoteFilePath) throws Exception {
|
||||
sftp.put(new FileInputStream(localFilePath), remoteFilePath);
|
||||
}
|
||||
|
||||
public void download(String remoteFilePath, String localFilePath) throws Exception {
|
||||
sftp.get(remoteFilePath, new FileOutputStream(localFilePath));
|
||||
}
|
||||
|
||||
public void delete(String remoteFilePath) throws SftpException {
|
||||
sftp.rm(remoteFilePath);
|
||||
}
|
||||
|
||||
public Vector listFiles(String remotePath) throws SftpException {
|
||||
return sftp.ls(remotePath);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue