ScpClinet 多文件远程上传下载
FTPClient 和ScpClinet
ScpClinet速度快,闲话少说,代码给你
package com.zzh.sample.utils;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.SCPClient;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;
import com.jydw.sample.consts.SysInfoDict;
import lombok.extern.slf4j.Slf4j;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/**
* @version 0.0.1
* @program: sample
* @description: 写一个jar架包,在一台Linux服务器上运行,去另一台Linux服务器上下载文件到本服务器,这两台服务器在同一个内网中,
* 先开始使用FTPClient,发现下载速度大约200k/s,都在内网为啥这么慢就不清楚了,请大神指导。最后改用SCPClient,即Linux的scp命令,速度就能达到50M/s
* @author: huangzq
* @create: 2020-08-05 10:06
*/
@Slf4j
public class ScpClinetUtils {
/**
* 文件夹的方式 从服务器上下载文件到本地
*
* @param SysPath 下载到本地的系统位置
* @param bathPath 每次调取该方法的不同路径
* @param fileType 筛选出下载本地的文件格式
*/
public static void ScPClientToLocation(String SysPath, String bathPath,String fileType) {
//建立远程连接
Connection con = new Connection(SysInfoDict.ip);
try {
con.connect();
boolean isAuthed = con.authenticateWithPassword(SysInfoDict.user, SysInfoDict.pass);
System.out.println("isAuthed====" + isAuthed);
File folder = new File(SysPath + bathPath);
if (!folder.exists()) {
folder.mk