java sftp 证书_Java操作SFTP

importjava.util.Properties;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importcom.jcraft.jsch.Channel;importcom.jcraft.jsch.ChannelSftp;importcom.jcraft.jsch.JSch;importcom.jcraft.jsch.Session;/*** @description SFTP工具

*@authorLuxh*/

public classSFTPUtils {private static final Logger Log = LoggerFactory.getLogger(SFTPUtils.class);/**FTP协议*/

private static final String FTP_PROTOCOL = "sftp";/*** 获取session

*@paramhost

*@paramport

*@paramusername

*@parampassword

*@return

*/

public static Session getSession(String host, intport, String username, String password) {

Session session= null;try{

Log.info("init session...");

JSch jsch= newJSch();

session=jsch.getSession(username, host, port);

session.setPassword(password);

Properties config= newProperties();

config.put("StrictHostKeyChecking", "no");

session.setConfig(config);

session.connect();

Log.info("init session successful");

}catch(Exception e) {

Log.error("init session failed");

}returnsession;

}/*** 获取 ChannelSftp

*@paramsession

*@return

*/

public staticChannelSftp getChannelSftp(Session session){

ChannelSftp sftp= null;try{

Log.info("init ChannelSftp...");

Channel channel=session.openChannel(FTP_PROTOCOL);

channel.connect();

sftp=(ChannelSftp) channel;

Log.info("init ChannelSftp successful");

}catch(Exception e) {

Log.error("init ChannelSftp failed");

}returnsftp;

}/*** 上传

*@paramsrc 源文件路径

*@paramdst 目标文件路径

*@paramsftp*/

public static voidupload(String src, String dst, ChannelSftp sftp) {try{

Log.info("begin upload...");

Log.info("src file is:{}", src);

Log.info("dst file is:{}", dst);

sftp.put(src, dst);

Log.info("upload successful");

}catch(Exception e) {

Log.error("upload failed");

}

}/*** 下载

*@paramsrc 要下载的文件

*@paramdst 存放路径

*@paramsftp*/

public static voiddownload(String src, String dst, ChannelSftp sftp) {try{

Log.info("begin download...");

Log.info("src file is:{} ", src);

Log.info("dst file is:{} ", dst);

sftp.get(src, dst);

Log.info("download successful");

}catch(Exception e) {

Log.error("download failed");

}

}/*** 删除

*@parampath 要删除的文件路径

*@paramsftp*/

public static voiddelete(String path, ChannelSftp sftp) {try{

Log.info("begin delete...");

Log.info("dst file is: {}", path);

sftp.rm(path);

Log.info("delete successful");

}catch(Exception e) {

Log.error("delete failed");

}

}/*** 关闭连接

*@paramsession

*@paramsftp*/

public static voidclose(Session session, ChannelSftp sftp){if(sftp != null) {

sftp.disconnect();

Log.info("ChannelSftp disconnect");

}if(session != null) {

session.disconnect();

Log.info("Session disconnect");

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值