sftp的介绍及上传 下载案例

sftp是Secure File TransferProtocol的缩写,即安全文件传送协议。可以为传输文件提供一种安全的加密方法。
    一.连接方式
    常用的方式有两种,一种直接采用sftp连接远端服务器IP
    另一种先登录远程服务器,在开启sftp功能
    1.sftp[remotehost  IP]
    通过sftp连接[host],端口默认的22,用户为Linux当前登录用户。
    2.sftp-oPort=[port][remotehost IP]
    通过sftp连接远程服务器,指定端口[port],用户为Linux当前登录用户。
    3.sftp[user]@[remotehost IP]
    通过sftp连接远程服务器,端口默认的22,指定用户[user]
    4.sftp-oPort=[port][user]@[remotehost IP]
    通过sftp连接[remotehost IP],端口为[port],用户为[user]
    5.通过Xshell5与linux建立连接后,在图形用户面板上  窗口-》传输新建文件,打开xftp的字符界面,直接关闭即可       打开一个sftp窗口
二.用法
1.基本用法
cd       更改远程服务器工作目录
clear    清屏
      explore  导入本地目录
      get      下载
      Icd      切换本地当前目录
      lls      列出本地当前目录的内容
      lpwd     打印当前工作目录
      ls       列出远程服务器目录内容
      mkdir    在远程服务器上创建一个目录
      mv       搬移或重命名一个的远程服务器文件
      put   将本机的文件上传到远程服务器
      pwd      打印远程服务器工作路径
      quit   退出
      rename  搬移或重命名一个的远程服务器文件
      rm      删除一个文件
      rmdir    在远程服务器上删除一个目录删除一个目录
三.案例
通过SFTP,连接远程服务器,并从服务器上下载文件。

下载后可以打印,也可以保存到数据库。

用户需要自己手动下载 jsch包。
SFTP工具类

package com.huchi.common.utils.jsch;  
  
import java.io.File;  
import java.io.FileInputStream;  
import java.io.FileOutputStream;  
import java.util.Map;  
import java.util.Properties;  
import java.util.Vector;  
  
import org.apache.log4j.Logger;  
  
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;  
  
/** 
 * @Comments : 通过SFTP,读取数据 
 * @Version : 1.0.0 
 */  
public class SFTPChannel {  
  
    Session session = null;  
    Channel channel = null;  
  
    private static final Logger LOG = Logger.getLogger(SFTPChannel.class);  
  
    /** 
     * @MethodName : getChannel 
     * @Description : 得到Channel 
     * @param sftpDetails 
     * @param timeout 
     *            超时时间 
     * @return 
     * @throws JSchException 
     */  
    public ChannelSftp getChannel(Map<String, String> sftpDetails, int timeout)  
            throws JSchException {  
  
        String ftpHost = sftpDetails.get(SFTPConstants.SFTP_REQ_HOST);  
        String port = sftpDetails.get(SFTPConstants.SFTP_REQ_PORT);  
        String ftpUserName = sftpDetails.get(SFTPConstants.SFTP_REQ_USERNAME);  
        String ftpPassword = sftpDetails.get(SFTPConstants.SFTP_REQ_PASSWORD);  
  
        JSch jsch = new JSch(); // 创建JSch对象  
        session = jsch.getSession(ftpUserName, ftpHost, Integer.parseInt(port)); // 根据用户名,主机ip,端口获取一个Session对象  
        LOG.debug("Session created.");  
        if (ftpPassword != null) {  
            session.setPassword(ftpPassword); // 设置密码  
        }  
        Properties config = new Properties();  
        config.put("StrictHostKeyChecking", "no");  
        session.setConfig(config); // 为Session对象设置properties  
        session.setTimeout(timeout); // 设置timeout时间  
        session.connect(); // 通过Session建立链接  
        LOG.debug("Session connected.");  
  
        LOG.debug("Opening Channel.");  
        channel = session.openChannel("sftp"); // 打开SFTP通道  
        channel
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值