SFTP客户端连接
来源:互联网 发布:标准误的算法 编辑:程序博客网 时间:2024/06/02 05:03
最近项目使用SFTP很多,在使用过程中遇到很多问题,把自己用到的和同事指导后的代码整理出发,记录一下:
需要引用的jar:
jsch-0.1.53.jar
SFTPClient类:
public class SFTPClient { private static final Logger logger = Logger.getLogger(SFTPClient.class); private static int timeoutSecond = 20; private Session session; private ChannelSftp channel; private SFTPClient(Session session, ChannelSftp channel) { this.session = session; this.channel = channel; } public static final SFTPClient connect(String ip, int port, String userName, String password) throws Exception { if (StringUtils.isEmpty(ip)||StringUtils.isEmpty(userName)||StringUtils.isEmpty(password)) {throw new Exception("连接SFTP参数异常");} Session session = null; Channel channel = null; try { JSch jsch = new JSch(); session = jsch.getSession(userName, ip, port); session.setPassword(password); Properties sshConfig = new Properties(); sshConfig.put("StrictHostKeyChecking", "no"); session.setConfig(sshConfig); session.connect(); channel = session.openChannel("sftp"); channel.connect(timeoutSecond * 1000); logger.info(" Sftp connect success"); return new SFTPClient(session, (ChannelSftp) channel); } catch (JSchException e) { logger.error(" Sftp connect error : ", e); IOUtils.closeQuietly(channel); IOUtils.closeQuietly(session); throw new Exception(" Sftp connect error : "+e.getMessage()); } } public void close() { IOUtils.closeQuietly(channel); IOUtils.closeQuietly(session); } }
StringUtils工具类:
public class StringUtils {/** * 判断字符串是否为空,为空返回true */public static boolean isEmpty(String str) {return (str == null || "".equals(str.trim()) || "null".equals(str.trim()));}}
IOUtils工具类:
public class IOUtils extends org.apache.commons.io.IOUtils{ public static void closeQuietly(Session session){ if (session != null) {session.disconnect();} } public static void closeQuietly(Channel channel){ if (channel != null) {channel.disconnect();} }}
SFTP使用过程完要记得关闭相应的会话session和通道channel,避免连接过多导致不能创建新的SFTP连接,代码仅供参考,
有不对的请包涵和指正
阅读全文
0 0
- SFTP客户端连接
- webmethods SFTP客户端实现
- SFTP客户端代码示例
- SFTP客户端代码示例
- SFTP连接工具类
- Java连接SFTP服务器
- sftp连接--文件下载
- sftp 连接 下载
- 关于sftp连接的问题.
- SFTP连接SAP HANA 服务器
- Sftp实现连接的方法
- subime安装和连接sftp
- ftp与sftp连接实例
- phpstorm sftp无法连接服务器
- linux sftp远程连接命令
- Sublime Text 连接 FTP/SFTP
- ftp与sftp连接实例
- linux sftp远程连接命令
- 【dubbo】入门小demo
- spring的配置文件出现红叉的问题
- 20.IDA-修改二进制文件、显示修改点
- scanf和gets的几个区别
- wordpress 后台添加样式表
- SFTP客户端连接
- Error running app: This version of Android Studio is incompatible with the Gradle Plugin used. Try d
- FastDFS安装和配置,整合Nginx-1.13.3
- Python的shutil模块
- Maven学习 (六) 搭建多模块企业级项目
- Android/安卓开发之WIFI通讯(下)--与搜索到的设备进行通讯
- 数据结构之图
- 数组指针和指针数组区别图解
- HDU 6078 Wavel Sequence