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