package com.zcloud.util; import java.io.InputStream; import java.io.OutputStream; import java.util.Vector; import org.springframework.beans.factory.annotation.Configurable; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.web.multipart.MultipartFile; 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.SftpATTRS; import com.jcraft.jsch.SftpException; @Configuration public class Smb { public static String host; public static Integer port; public static String user; public static String password; public static String basePath; @Value("${smb.host}") public void setHostPath(String hostProperties){ host = hostProperties; } @Value("${smb.port}") public void setPortPath(Integer portProperties){ port = portProperties; } @Value("${smb.user}") public void setUserPath(String userProperties){ user = userProperties; } @Value("${smb.password}") public void setPasswordPath(String passwordProperties){ password = passwordProperties; } @Value("${smb.basePath}") public void setBasePath(String basePathProperties){ basePath = basePathProperties; } // private static String host = "39.103.224.166"; // // private static Integer port = 22; // // private static String user = "root"; // // private static String password = "Zcloud@zcloud88888"; // // private static String basePath = "/mnt/qgfile/file/"; // private static String host = "192.168.192.201"; // // private static Integer port = Integer.valueOf(22); // // private static String user = "root"; // // private static String password = "SJSKAQHBGLXT@20220311"; // // private static String basePath = "/mnt/qask/file/"; public static final String SMBBAES_PATH = basePath; public static void sshSftp(MultipartFile file, String fileName, String path) throws Exception { Session session = null; Channel channel = null; JSch jsch = new JSch(); if (port <= 0) { // 连接服务器,采用默认端口 session = jsch.getSession(user, host); } else { // 采用指定的端口连接服务器 session = jsch.getSession(user, host, port); } // 如果服务器连接不上,则抛出异常 if (session == null) { throw new Exception("session is null"); } // 设置登陆主机的密码 session.setPassword(password); // 设置第一次登陆的时候提示,可选值:(ask | yes | no) session.setConfig("StrictHostKeyChecking", "no"); // 设置登陆超时时间 session.connect(30000); OutputStream outstream = null; try { // 创建sftp通信通道 channel = (Channel) session.openChannel("sftp"); channel.connect(1000); ChannelSftp sftp = (ChannelSftp) channel; // 进入服务器指定的文件夹 // File dir = new File(basePath+"/"+path); // dir.setWritable(true, false); // if(!dir.exists()){ // dir.mkdirs(); // } createDir(basePath + path, sftp); sftp.cd(basePath + path); // 列出服务器指定的文件列表 // Vector v = sftp.ls("*"); // for(int i=0;i vector = channelSftp.ls(basePath + directoryFile); if (vector.size() == 1) { // 文件,直接删除 channelSftp.rm(basePath + directoryFile); System.out.println("4、" + directoryFile + " 删除的文件....."); } } catch (Exception e) { } // 切断远程连接 channelSftp.exit(); } }