• java之Jsch实现Linux的文件上传与下载


      一、JSch是Java Secure Channel的缩写。JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序。

      本文只介绍如何使用JSch实现的SFTP功能。
      SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。SFTP 为 SSH的一部份,是一种传输文件到服务器的安全方式。SFTP是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。
      二、需要的依赖包pom.xml
            <dependency>
                <groupId>jsch</groupId>
                <artifactId>jsch</artifactId>
                <version>0.1.8</version>
            </dependency>

      三、sftp的访问,以及实现方式

    import com.jcraft.jsch.ChannelSftp;
    import com.jcraft.jsch.JSch;
    import com.jcraft.jsch.Session;
    
    import java.io.*;
    import java.util.Properties;
    
    public class SftpFile {
    
        public static void main(String[] args) throws Exception {
    
            //声明JSCH对象
            JSch jSch = new JSch();
            //获取一个Linux会话
            Session session = jSch.getSession("root", "10.0.40.98", 22);
            //设置登录密码
            session.setPassword("密码");
            //关闭key的检验
            Properties sshConfig = new Properties();
            sshConfig.put("StrictHostKeyChecking", "no");
            session.setConfig(sshConfig);
            //连接Linux
            session.connect();
            //通过sftp的方式连接
            ChannelSftp channel = (ChannelSftp) session.openChannel("sftp");
            channel.connect();
            //上传文件
            File file = new File("d:\1.txt");
            InputStream inputStream = new FileInputStream(file);
            channel.put(inputStream, "/root/file/2.txt");
            //下载文件
            OutputStream out = new FileOutputStream("d:\4.txt");
            channel.get("/root/file/1.txt", out);
            //关闭流
            inputStream.close();
            out.close();
        }
    }

      注意:这里是弄成sftp的方式,其他方式也可以通过这样的方式来实现。  

      四、Jsch中sftp提供的一些api

    put():      文件上传
    get():      文件下载
    cd():       进入指定目录
    ls():       得到指定目录下的文件列表
    rename():   重命名指定文件或目录
    rm():       删除指定文件
    mkdir():    创建目录
    rmdir():    删除目录
  • 相关阅读:
    帮助智力障碍的可怜儿童
    PE556
    ZJOIDay2T1 BB题解
    CTSC2016游记
    再次被老爸钦点退役
    欧拉筛
    考据
    51nod 1020 逆序排列(动态规划)
    51nod 1186 质数检测(Miller-Rabin算法)
    大整数类模板
  • 原文地址:https://www.cnblogs.com/ll409546297/p/8250475.html
Copyright © 2020-2023  润新知