与下游联调时遇到的问题, 一般我们会使用ftp来传递文件, 因为sftp的传输效率很低. 所以为了兼容,引用了网上的方法.
步骤
导入所需Jar包
编写工具类
代码中运用
1. 导入 Jsch-0.1.54.jar
直接去maven库中下载即可
2. 编写工具类--SFTPUtil.java
1 /**
2 * @author shansm
3 * @date 2020/3/18 -17:27
4 */
5 public class SFTPUtil {
6
7 private transient Logger log = LoggerFactory.getLogger(this.getClass());
8
9 private ChannelSftp sftp;
10
11 private Session session;
12 /** SFTP 登录用户名*/
13 private String username;
14 /** SFTP 登录密码*/
15 private String password;
16 /** 私钥 */
17 private String privateKey;
18 /** SFTP 服务器地址IP地址*/
19 private String host;
20 /** SFTP 端口*/
21 private int port;
22
23
24 /**
25 * 构造基于密码认证的sftp对象
26 */
27 public SFTPUtil(String username, String password, String host, int port) {
28 this.username = username;
29 this.password = password;
30 this.host = host;
31 this.port = port;
32 }
33
34 /**
35 * 构造基于秘钥认证的sftp对象
36 */
37 public SFTPUtil(String username, String host, int port, String privateKey) {
38 this.username = username;
39 this.host = host;
40 this.port = port;
41 this.privateKey = privateKey;
42 }
43
44 public SFTPUtil(){}
45
46 /**
47 * 初始化ftp参数
48 * @param resultFileURL
49 */
50 public SFTPUtil(String resultFileURL , String keys) throws Exception {
51 Map map = URLUtil.parseSftp(resultFileURL);
52 init(map.get("ipAddress"),map.get("ipPort"),map.get("userName"),map.get("passWord"),keys);
53 log.info("ip: " map.get("ipAddress"));
54 log.info("port: " map.get("ipPort"));
55 log.info("userName: " map.get("userName"));
56 log.info("PassWord: " map.get("passWord"));
57 }
58
59 /**初始化参数**/
60 private voi