没有合适的资源?快使用搜索试试~ 我知道了~
sftp代码通用类,使用此处代码可直接用于平常工作中,用来和sftp服务器进行文件传输
资源推荐
资源详情
资源评论
hope-xu / hope
Public
hope / src / main / java / com / utils / sftp / SftpUtil.java /
Jump to
hope-xu 添加新的文件
Latest commit 9f52931 on 30 Sep 2021 History
1 contributor
Code Issues Pull requests 4 Actions Projects Wiki Security Insights
master
Go to file
423 lines (395 sloc) 17 KB
Raw Blame
1 package com.utils.sftp;
2
3 import com.common.sftp.SftpConfigurationModel;
4 import com.jcraft.jsch.*;
5 import lombok.extern.slf4j.Slf4j;
6
7 import java.io.File;
8 import java.util.ArrayList;
9 import java.util.List;
10 import java.util.Properties;
11 import java.util.Vector;
12
13 /**
14 * SFTP工具类
15 *
16 * @author hope
17 * @date 2020/3/15 12:33
18 */
19 @Slf4j
20 public class SftpUtil {
21
22 private static final String NODE_SEPERATOR = "/";
23
24 /**
25 * 未调用初始化方法 错误码
26 */
27 private static final int DONOT_INIT_ERROR_CODE = 19940205;
28
29 /**
30 * 未调用初始化方法 错误提示信息
31 */
32 private static final String DONOT_INIT_ERROR_MSG = "please invoke init(...) first!";
33
34 private static Session session;
35
36 private static Channel channel;
37
38 private static ChannelSftp channelSftp;
39
40 /**
41 * 下载时, 释放资源的标识, 当其值为 0 时, 则调用close()
42 * 注:当递归下载时,我们希望 递归内部不进行close(),只有最外层的方法才进行close()
43 */
44 private static int recursiveDownloadCloseFlag = 0;
45
46 /**
47 * 初始化sftp连接
48 *
49 * @param configModel 连接参数对象
50 * @throws JSchException JSch异常
51 * @date 2021/9/30
52 */
53 public static void init(SftpConfigurationModel configModel) throws JSchException {
54 init(configModel.getHost(), Integer.getInteger(configModel.getPort()), configModel.getUserName(), configModel.getUserPassword());
55 }
56
57
58 /**
59 * 初始化
60 *
61 * @param ip sftp地址
62 * @param port sftp端口
63 * @param username 用户名
64 * @param password 密码
65 * @throws JSchException JSch异常
66 * @date 2019/3/15 12:41
67 */
68 public static void init(String ip, Integer port, String username, String password) throws JSchException {
69 JSch jsch = new JSch();
70 jsch.getSession(username, ip, port);
71 session = jsch.getSession(username, ip, port);
72 session.setPassword(password);
73 Properties sshConfig = new Properties();
74 sshConfig.put("StrictHostKeyChecking", "no");
75 session.setConfig(sshConfig);
76 session.connect();
77 log.info("Session connected!");
78 channel = session.openChannel("sftp");
79 channel.connect();
80 log.info("Channel connected!");
81 channelSftp = (ChannelSftp) channel;
82 }
83
84 /**
85 * 上传
86 *
87 * @param remoteDir 要上传到sftp上哪一个文件夹 【绝对路径】,如:/files/test/
88 * @param src 要上传的文件的位置 【绝对路径】,如: /var/abc.txt
剩余12页未读,继续阅读
资源评论
笔痕墨影
- 粉丝: 73
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功