首页 > 未分类 > java实现在多服务器之间的文件传输(Jsch)

java实现在多服务器之间的文件传输(Jsch)

JSch 是SSH2的一个纯Java实现。它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等。
我主要是今天完成个分布式架构下获取其他服务器文件流的功能,顺便记一下。这个还是很简单的。
我用的是1.54版本,就这个版本用的人最多。这是地址: https://mvnrepository.com/artifact/com.jcraft/jsch/0.1.54 
关于咋用,看下面代码,必要的注释都写了。其实也就是指定好地址、端口号、账户密码,连上然后就可以操作了。
 

package com.skypyb.util;
import com.jcraft.jsch.*;
import java.io.File;
import java.io.InputStream;
import java.util.Properties;
public class JschFTPFile {
    private static Channel channel = null;
    public static String getPath(String filesPath,String fileName) {
        String separator = File.separator;//系统的分割符
        String fileName = new StringBuffer(filesPath)
                .append(separator)
                .append(fileName).toString();
        return fileName;
    }
    public static InputStream getTaskFile(String path) {
        InputStream download = null;
        try {
            Channel channel = getChannel();
            download = download(path, (ChannelSftp) channel);
        } catch (JSchException e) {
            e.printStackTrace();
        } catch (SftpException e) {
            e.printStackTrace();
        }
        return download;
    }
    private static Channel getChannel() throws JSchException {
        if (channel != null) return channel;
        //声明JSCH对象
        JSch jSch = new JSch();
        //获取一个Linux会话
        Session session = jSch.getSession("root", "127.0.0.1", 22);
        //设置登录密码
        session.setPassword("614");
        //关闭key的检验
        Properties sshConfig = new Properties();
        sshConfig.put("StrictHostKeyChecking", "no");
        session.setConfig(sshConfig);
        //连接Linux
        session.connect();
        //通过sftp的方式连接
        ChannelSftp ch = (ChannelSftp) session.openChannel("sftp");
        ch.connect();
        channel = ch;
        return channel;
    }
    public static InputStream download(String downloadFile, ChannelSftp sftp) throws SftpException {
        InputStream inputStream = sftp.get(downloadFile);
        return inputStream;
    }
}

 

           


CAPTCHAis initialing...
EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00