JSch简介以及jsch实现文件上传下载
一、JSch 简介
JSch 是SSH2的一个纯Java实现。它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等。你可以将它的功能集成到你自己的 程序中。同时该项目也提供一个J2ME版本用来在手机上直连SSHD服务器。
二、java利用jcraft实现文件上传与下载
第一步:这里使用maven管理项目,所以需要引入maven支持,添加maven依赖
<!-- https://mvnrepository.com/artifact/com.jcraft/jsch -->
<dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.54</version>
</dependency>
第二步:写一个类sshconfiguration,作用是存储要登录机器的host,port,username.pwd,其实这里也可以使用一个配置文件来管理
public class SshConfiguration {private String host;private int port;private String userName;private String password;getter AND setter(shenglve不写)
}
第三步:写一个类sshutil,实现上传下载
public class SshUtil {private ChannelSftp channelSftp;private ChannelExec channelExec;private Session session=null;private int timeout=60000;public SshUtil(SshConfiguration conf) throws JSchException {System.out.println("try connect to "+conf.getHost()+",username: "+conf.getUserName()+",password: "+conf.getPassword()+",port: "+conf.getPort());JSch jSch=new JSch(); //创建JSch对象session=jSch.getSession(conf.getUserName(), conf.getHost(), conf.getPort());//根据用户名,主机ip和端口获取一个Session对象session.setPassword(conf.getPassword()); //设置密码Properties config=new Properties();config.put("StrictHostKeyChecking", "no");session.setConfig(config);//为Session对象设置propertiessession.setTimeout(timeout);//设置超时session.connect();//通过Session建立连接}public void download(String src,String dst) throws JSchException, SftpException{//src linux服务器文件地址,dst 本地存放地址channelSftp=(ChannelSftp) session.openChannel("sftp");channelSftp.connect();channelSftp.get(src, dst);channelSftp.quit();}public void upLoad(String src,String dst) throws JSchException,SftpException{//src 本机文件地址。 dst 远程文件地址channelSftp=(ChannelSftp) session.openChannel("sftp");channelSftp.connect();channelSftp.put(src, dst);channelSftp.quit();}public void close(){session.disconnect();}
}
第四,测试
public static void main(String[] args){SshConfiguration configuration=new SshConfiguration();configuration.setHost("172.17.1.232");configuration.setUserName("root");configuration.setPassword("root275858");configuration.setPort(22);try{
// SshUtil sshUtil=new SshUtil(configuration);
// sshUtil.download("/home/cafintech/Logs/metaData/meta.log","D://meta.log");
// sshUtil.close();
// System.out.println("文件下载完成");SshUtil sshUtil=new SshUtil(configuration);sshUtil.upLoad("D://meta.log","/home/cafintech/");sshUtil.close();System.out.println("文件上传完成");}catch(Exception e){e.printStackTrace();}}
}
JSch简介以及jsch实现文件上传下载相关推荐
- JSCH实现文件上传下载
前言 最近项目中经常用的jsch来进行文件上传下载,在业务量大的时候,每次都去获取sftp连接很消耗资源,后面就想着使用连接池来解决. 简述 1)jsch是ssh2的一个纯Java实现.它允许你连接到 ...
- java jsch下载文件,JSch使用sftp协议实现服务器文件上传下载操作
Jsch是什么? JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等.你可以将它的功能集成到你自己的 程序中.同时该项目也提供一个J2 ...
- centos nfs java_CentOS下安装配置NFS并通过Java进行文件上传下载
1:安装NFS (1)安装 yum install nfs-utils rpcbind (2)启动rpcbind服务 systemctl restart rpcbind.service 查看服务状态 ...
- springboot:实现文件上传下载实时进度条功能【附带源码】
0. 引言 记得刚入行的时候,做了一个文件上传的功能,因为上传时间较久,为了用户友好性,想要添加一个实时进度条,显示进度.奈何当时技术有限,查了许久也没用找到解决方案,最后不了了之. 近来偶然想到这个 ...
- FastDFS实现文件上传下载实战
正好,淘淘商城讲这一块的时候,我又想起来当时老徐让我写过一个关于实现FastDFS实现文件上传下载的使用文档,当时结合我们的ITOO的视频系统和毕业论文系统,整理了一下,有根据网上查到的知识,总结了一 ...
- 教你如何实现c#文件上传下载功能
简单介绍一下c#文件上传下载功能实现. NuGet 安装SqlSugar Model文件下新建 DbContext 类 public class DbContext {public DbContext ...
- [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器...
引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...
- SpringMVC整合fastdfs-client-java实现web文件上传下载
为什么80%的码农都做不了架构师?>>> 版权声明:本文为博主原创文章,转载请标明出处(http://blog.csdn.net/wlwlwlwl015)Thanks. 目录( ...
- JavaWeb实现文件上传下载功能实例解析
转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...
- 文件上传 java web_JavaWeb 文件上传下载
1. 文件上传下载概述 1.1. 什么是文件上传下载 所谓文件上传下载就是将本地文件上传到服务器端,从服务器端下载文件到本地的过程.例如目前网站需要上传头像.上传下载图片或网盘等功能都是利用文件上传下 ...
最新文章
- 使用UPnP来穿透NAT使内网接口对外网可见
- angular.element()的用法
- Matlab:成功解决 Inner matrix dimension must agree
- dotnet安装包时找不到依赖关系_孩子总找妈妈,小心单方父母过渡依赖症,4个方法让父母更平等...
- Always keep in mind
- centos安装kvm
- 笔记本电脑销量排名_网友总结京东笔记本销量,联想高居第一,华为表现很出色...
- javascript学习系列(9):原数组发生变化的情况
- python股票网格交易法详解_股票最全“低买高卖”网格交易大法,值得收藏!
- Win32的虚拟内存分配函数
- js 设置style属性
- Spring MVC BindingResult异常
- 铃声截取软件android6,铃声剪辑
- Java开源框架Netty
- Excel设置图片固定在某个单元格内部
- pygame-KidsCanCode系列jumpy-part8-记录历史最高分
- 电磁场与仿真软件(34)
- AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE——ViT全文翻译
- 链表和动态申请内存空间
- RK3308 Linux UAC与ADB 复合同时使用
热门文章
- speechSynthesis强制使用Chrome中的Google小姐中文语音
- SOA架构与微服务架构到底是什么?以及对应的一些常用的框架简介
- 武汉市高新技术企业认定可以享受哪些税收优惠政策?认定条件如何?
- android allow usb debugging,远程调试Android设备 - Chrome 开发者工具中文文档
- c语言教学系统设计报告,C语言课程设计报告-范例Word版
- androidui设计基础ppt,网易的朋友给我这份339页的Android面经
- Linux出现ping不通外网、xshell解决方案
- 一周极客热文:Java开发的10位牛人
- Autodesk 3dsmax 下载!亲测有效!
- (声纳+惯性+视觉)Sonar Visual Inertial SLAM of Underwater Structures