基于SSH协议的sftp协议.doc_第1页
基于SSH协议的sftp协议.doc_第2页
基于SSH协议的sftp协议.doc_第3页
基于SSH协议的sftp协议.doc_第4页
基于SSH协议的sftp协议.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

package .sftp;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.HashMap;import java.util.Map;import java.util.Properties;import java.util.Vector;import com.jcraft.jsch.Channel;import com.jcraft.jsch.ChannelSftp;import com.jcraft.jsch.JSch;import com.jcraft.jsch.JSchException;import com.jcraft.jsch.Session;import com.jcraft.jsch.SftpException;public class SFTPTool private Session session; private Channel channel; private ChannelSftp sftp;/ sftp操作类 / private InputStream in;/ 输入流 / private OutputStream out;/ 输出流 public SFTPTool(String host, int port, String username, String password) throws Exception getConnect(host, port, username, password); /* * 连接sftp服务器 * * param host 主机 * param port 端口 * param uname 用户名 * param username 密码 * return * throws Exception */public ChannelSftp getConnect(String host, int port, String username, String password) throws Exception JSch jsch = new JSch(); this.session = jsch.getSession(username, host, port); session.setPassword(password); Properties config = new Properties(); config.put(StrictHostKeyChecking, no); / 不验证 HostKey session.setConfig(config); try session.connect(); catch (Exception e) if (session.isConnected() session.disconnect(); throw new Exception(连接服务器失败,请检查主机 + host + ,端口 + port + ,用户名 + username + ,端口 + port + 是否正确,以上信息正确的情况下请检查网络连接是否正常或者请求被防火墙拒绝.); channel = session.openChannel(sftp); try channel.connect(); catch (Exception e) if (channel.isConnected() channel.disconnect(); throw new Exception(连接服务器失败,请检查主机 + host + ,端口 + port + ,用户名 + username + ,密码 + password + 是否正确,以上信息正确的情况下请检查网络连接是否正常或者请求被防火墙拒绝.); this.sftp = (ChannelSftp) channel; return sftp;/* * 断开连接 */public void disConn()if(null != this.sftp)this.sftp.disconnect();this.sftp.exit();this.sftp = null;if(null != this.channel)this.channel.disconnect();this.channel = null;if(null != this.session)this.session.disconnect();this.session = null;/* * 上传文件 * * param directory 上传的目录 * param uploadFile 要上传的文件 * param sftp */public void upload(String directory, String uploadFile) /ChannelSftp sftp = map.keySet().iterator().next();/Session session = map.get(sftp);try sftp.cd(directory);File file = new File(uploadFile);sftp.put(new FileInputStream(file), file.getName(); catch (Exception e) e.printStackTrace(); finallydisConn();/* * 下载文件 * * param directory 下载目录 * param downloadFile 下载的文件 * param saveFile 存在本地的路径 * param sftp */public void download(String directory, String downloadFile,String saveFile) /ChannelSftp sftp = map.keySet().iterator().next();try sftp.cd(directory);File file = new File(saveFile);sftp.get(downloadFile, new FileOutputStream(file); catch (Exception e) e.printStackTrace(); finallydisConn();/* * 删除文件 * * param directory 要删除文件所在目录 * param deleteFile 要删除的文件 * param sftp */public void delete(String directory, String deleteFile) /ChannelSftp sftp = map.keySet().iterator().next();try sftp.cd(directory);sftp.rm(deleteFile); catch (Exception e) e.printStackTrace(); finallydisConn();/* * 列出目录下的文件 * * param directory 要列出的目录 * param sftp * return * throws SftpException */public Vector listFiles(String directory)throws SftpException /ChannelSftp sftp = map.keySet().iterator().next();Vector vec = sftp.ls(directory);disConn();return vec;/* * 用于查询某个远程目录下的文件名称 * param directory 远程目录 * param valiStr * param map * return * throws SftpException */public Vector listFileNames(String directory, String valiStr)throws SftpException Vector ret = new Vector();/ChannelSftp sftp = map.keySet().iterator().next();System.out.println(-);for (Object obj : sftp.ls(directory) String curStr = obj.toString();curStr = curStr.substring(curStr.lastIndexOf( )+1);if(curStr.contains(valiStr)ret.add(curStr);/System.out.println(curStr);disConn();return ret;public static void main(String args) String IP = 9;String UNAME = phs;String PWD = 123456;int PORT = 22;String PATH = /u1/phs/RNMS/paramfile;SFTPTool tool = null;Vector vector = null;try tool = new SFTPTool(IP, PORT, UNAME, PWD);/Map map = tool.getConnect(IP, PORT, UNAME, PWD);vec

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论