标签:
http://www.byywee.com/page/M0/S755/755589.html
OVERWRITE | 完全覆盖模式,这是JSch的默认文件传输模式,即若是目标文件已经存在,传输的文件将完全覆盖目标文件,产生新的文件。 |
RESUME | 恢复模式,若是文件已经传输一项目组,这时因为收集或其他任何原因导致文件传输中断,若是下一次传输雷同的文件, 则会从上一次中断的处所续传。 |
APPEND | 追加模式,若是目标文件已存在,传输的文件将在目标文件后追加。 |
创建ChannelSftp对象 |
1 package com.longyg.sftp; 2 3 4 5 import java.util.Map; 6 7 import java.util.Properties; 8 9 10 11 import org.apache.log4j.Logger; 12 13 14 15 import com.jcraft.jsch.Channel; 16 17 import com.jcraft.jsch.ChannelSftp; 18 19 import com.jcraft.jsch.JSch; 20 21 import com.jcraft.jsch.JSchException; 22 23 import com.jcraft.jsch.Session; 24 25 26 27 public class SFTPChannel { 28 29 Session session = null; 30 31 Channel channel = null; 32 33 34 35 private static final Logger LOG = Logger.getLogger(SFTPChannel.class.getName()); 36 37 38 39 public ChannelSftp getChannel(Map<String, String> sftpDetails, int timeout) throws JSchException { 40 41 42 43 String ftpHost = sftpDetails.get(SFTPConstants.SFTP_REQ_HOST); 44 45 String port = sftpDetails.get(SFTPConstants.SFTP_REQ_PORT); 46 47 String ftpUserName = sftpDetails.get(SFTPConstants.SFTP_REQ_USERNAME); 48 49 String ftpPassword = sftpDetails.get(SFTPConstants.SFTP_REQ_PASSWORD); 50 51 52 53 int ftpPort = SFTPConstants.SFTP_DEFAULT_PORT; 54 55 if (port != null && !port.equals("")) { 56 57 ftpPort = Integer.valueOf(port); 58 59 } 60 61 62 63 JSch jsch = new JSch(); // 创建JSch对象 64 65 session = jsch.getSession(ftpUserName, ftpHost, ftpPort); // 按照用户名,主机ip,端口获取一个Session对象 66 67 LOG.debug("Session created."); 68 69 if (ftpPassword != null) { 70 71 session.setPassword(ftpPassword); // 设置暗码 72 73 } 74 75 Properties config = new Properties(); 76 77 config.put("StrictHostKeyChecking", "no"); 78 79 session.setConfig(config); // 为Session对象设置properties 80 81 session.setTimeout(timeout); // 设置timeout时候 82 83 session.connect(); // 经由过程Session建树链接 84 85 LOG.debug("Session connected."); 86 87 88 89 LOG.debug("Opening Channel."); 90 91 channel = session.openChannel("sftp"); // 打开SFTP通道 92 93 channel.connect(); // 建树SFTP通道的连接 94 95 LOG.debug("Connected successfully to ftpHost = " + ftpHost + ",as ftpUserName = " + ftpUserName 96 97 + ", returning: " + channel); 98 99 return (ChannelSftp) channel; 100 101 } 102 103 104 105 public void closeChannel() throws Exception { 106 107 if (channel != null) { 108 109 channel.disconnect(); 110 111 } 112 113 if (session != null) { 114 115 session.disconnect(); 116 117 } 118 119 } 120 121 }
标签:
原文地址:http://www.cnblogs.com/lvfeilong/p/ewrw423dgfd.html