【实用技巧篇】JSch使用介绍,实用JSch实现文件传输
文章目录
- JSch使用介绍
- 1. jar包下载
- 2. 引入依赖
- 3. 代码实现
- 4. 验证
JSch使用介绍
JSch 是SSH2的一个纯Java实现。它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等。你可以将它的功能集成到你自己的程序中。
1. jar包下载
maven仓库:https://mvnrepository.com/artifact/com.jcraft/jsch/0.1.55
官网:http://www.jcraft.com/jsch/
2. 引入依赖
<dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.55</version>
</dependency>
3. 代码实现
public class SFTPChannelUtils {Session session = null;Channel channel = null;public ChannelSftp getChannelSftp() throws JSchException {// ssh服务器的IP、用户名、密码和端口String sftpHost = "101.200.149.*";String sftpUsername = "root";String sftpPassword = "******";int sftpPort = 22;JSch jsch = new JSch(); // 创建JSch对象session = jsch.getSession(sftpUsername, sftpHost, sftpPort);// 获取sesson对象session.setPassword(sftpPassword);// 设置sftp访问密码Properties config = new Properties();config.put("StrictHostKeyChecking", "no");session.setConfig(config);// 为session重新设置参数session.setTimeout(30000);// 设置超时session.connect();// 建立连接channel = session.openChannel("sftp"); // 打开sftp通道channel.connect();// 建立sftp通道连接return (ChannelSftp) channel;}public static void main(String[] args) {/*JSch支持三种文件传输模式:OVERWRITE 完全覆盖模式,这是JSch的 默认文件传输模式,即如果目标文件已经存在,传输的文件将完全覆盖目标文件,产生新的文件。RESUME 恢复模式,如果文件已经传输一部分,这时由于网络或其他任何原因导致文件传输中断,如果下一次传输相同的文件,则会从上一次中断的地方续传。APPEND 追加模式,如果目标文件已存在,传输的文件将在目标文件后追加。*/String srcFile = "E:\\picture.png";String destFile = "/root/data/picture/picture.png";try {SFTPChannelUtils sftpChannel = new SFTPChannelUtils();ChannelSftp channel = sftpChannel.getChannelSftp();OutputStream out = channel.put(destFile, ChannelSftp.OVERWRITE); // 这里使用OVERWRITE模式// 默认使用OVERWRITE模式byte[] buff = new byte[1024 * 256]; // 设定每次传输的数据块大小为256KBint read;if (out != null) {System.out.println("Start to read input stream");InputStream is = new FileInputStream(srcFile);do {read = is.read(buff, 0, buff.length);if (read > 0) {out.write(buff, 0, read);}out.flush();} while (read >= 0);}System.out.println("传输完成");channel.quit();sftpChannel.closeChannel();} catch (Exception e) {e.printStackTrace();}}public void closeChannel() {if (channel != null) {channel.disconnect();}if (session != null) {session.disconnect();}System.out.println("关闭");}
}
4. 验证
从代码中可以看出我们将E:\\picture.png
传输到了/root/data/picture/picture.png
成功!
备注:JSch还能实现文件夹的传输,大家可以自行测试。
微信公众号先已开通,搜索 “江小南和他的小伙伴们” 就能找到我哦,各位小伙伴们可以关注一下,文章会进行同步更新,方便查看哦。
【实用技巧篇】JSch使用介绍,实用JSch实现文件传输相关推荐
- 软件测试中python实用技巧,精选22个Python实用技巧,秀技能必备这份技术列表!...
被人工智能捧红的 Python 已是一种发展完善且非常多样化的语言,其中肯定有一些你尚未发现的功能.那么今天或许我能够让你学到一些新技巧. Python的发展: "人生苦短,我用 Pytho ...
- WinRAR实用技巧:一个设置,可能让多文件压缩变得更小!
前言 WinRAR是非常常用的压缩软件,后缀名 .rar 的文件,就是它压缩之后的文件 但是,大多数人都是使用它默认的设置,最多也就在"压缩方式"那里选择一下"最好&qu ...
- 实用技巧分享——用Python解压复杂zip文件
使用过Python中的标准库zipfile解压过zip格式压缩包的朋友们,可能遇到过,当压缩文件中的目录或文件名中包含中文等常见unicode字符时,典型如下面的例子: 使用zipfile的extra ...
- python实用技巧(四)
Python实用技巧(一) python实用技巧(二) python实用技巧(三) python实用技巧(四) 排序后,最后k个元素,以逆序输出 >>> l = range(1, 6 ...
- python实用技巧(二)
Python实用技巧(一) python实用技巧(二) python实用技巧(三) python实用技巧(四) code 解释 补充 list.reverse() 返回值类型为NoneType l.r ...
- python实用技巧(一)
Python实用技巧(一) python实用技巧(二) python实用技巧(三) python实用技巧(四) 已知X是多维数组类型,则: X[:, v],表示的是truncate X中的一些列(对应 ...
- Spine 实用技巧大全
Spine 实用技巧大全 文章目录 Spine 实用技巧大全 1.账号登出 log Out 2.Spine 如何调整帧速率 3.Spine 如何导出(透明度有问题,图片有黑边的,看这个) 4.Spin ...
- SFTP例子2----使用JSch实现SFTP文件传输
1.JSch开发包下载 http://www.jcraft.com/jsch/ 目前最新版本为:jsch-0.1.51 2.简单例子,列出指定目录下的文件列表 import java.util.Pro ...
- sftp api java_SFTP例子2----使用JSch实现SFTP文件传输
1.JSch开发包下载 目前最新版本为:jsch-0.1.51 2.简单例子,列出指定目录下的文件列表import java.util.Properties; import java.util.Vec ...
最新文章
- Spark机器学习(8):LDA主题模型算法
- python中语法错误-Python3 错误和异常
- CORE ANIMATION的学习备忘录
- 有关logistic(sigmoid)函数回归
- js php调用webservice,js跨域调用WebService的使用方法
- 系统带你学习 WebAPIs 第四讲
- c语言按照姓名查询员工信息,输入10个职工信息,按号码大小排序,再使用查找函数找职工的姓…...
- shell函数可接受不同参数
- 虚拟化桌面初始化配置处理
- 【kafka】google提供的一些好用的并发工具类
- java(16) - 泛型
- MongoDB查询及索引优化
- mysql开发与运维_专业的MySQL开发规范
- ASUS TUF Gaming B460M PLUS+RX570+BCM94360CD黑苹果EFI引导文件
- python和前端哪个好_web前端和python学哪个出来工资高?
- Matlab画图,坐标轴范围设置和间隔设置
- 虚拟示波器-开天斧-STC8H8K64U核心功能实验板测试
- backgroundLinearGradient线性渐变制作折角效果
- 塔罗牌第五张是什么牌_塔罗占卜你是一个什么样的人?
- d盘不见了 计算机打不开,d盘不见了怎么办 d盘不见了原因及解决方法
热门文章
- 衡山德华盛星源高中2021高考成绩查询,十年磨砺树凌云壮志, 今朝亮剑必蟾宫折桂——德华盛星源高中召开2021届平安高考暨考前动员大会...
- 东莞1号线汽车总站至滨江体育馆站右线盾构始发
- 其实 家用计算机与普通计算机,拆解服务器,看看与普通计算机到底有什么区别?...
- 西部数码的合作伙伴~~
- 突破重围,攻“新”为上!凯里亚德与郁锦香酒店以创新势能获投资者青睐
- segmentation fault (SIGSEGV) 定位方法
- linux进程收到sigsegv,Linux上的Ada程序:由于缺少文件而导致SIGSEGV?
- HDFS文件读取流程
- pcieport 0000:00:1.0:AER: PCIe Bus Error: severity=Corrected--解决ubuntu磁盘爆满导致无法开机问题
- PHP联系人表格,基本的PHP联系人表格,仅接收电子邮件但无消息