示例代码如下:
package com.canggogo.lv.util;
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;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Vector;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
@Component
@Slf4j
public class ChinapayBillDetailJob {
@Value("${china.pay.sftp.host}")
private String host;
@Value("${china.pay.sftp.port}")
private Integer port;
@Value("${china.pay.sftp.userName}")
private String userName;
@Value("${china.pay.sftp.passWord}")
private String passWord;
public void chinapayBillDetailJobHandler(String param) throws Exception {
log.info("任务 开始执行 时间:{}", param);
try {
long start = System.currentTimeMillis();
// 建立链接
JSch jSch = new JSch();
Session session = null;
session = jSch.getSession(userName, host, port);
session.setPassword(passWord);
// 这一行务必要加,不然会因为检测到公钥变化而拒绝连接,除非已经在本地配置好公钥了
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
ChannelSftp channelSftp = (ChannelSftp) session.openChannel("sftp");
channelSftp.connect();
List
此方式返回结果map value为 InputStream
后续流处理可参考
https方式下载压缩文件,直接读取压缩文件内容 ,处理字节流等操作



