SpringBoot整合sftp

84 阅读1分钟
  • 引入依赖

    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>5.6.4</version>
    </dependency>
    <dependency>
        <groupId>com.jcraft</groupId>
        <artifactId>jsch</artifactId>
        <version>0.1.55</version>
    </dependency>
    
  • 代码示例

    public class Main {
        public static void main(String[] args) throws ExecutionException, InterruptedException, ClassNotFoundException {
            Session session = null;
            ChannelSftp sftp = null;
    
            try {
                session = JschUtil.createSession("ip", 22, "username", "password");
                session.connect(100000);
                sftp = (ChannelSftp) session.openChannel("sftp");
                sftp.connect();
    
                sftp.put("本地文件路径", "服务器目录路径");   // 上传
                sftp.get("服务器文件路径", "本地目录路径");   // 下载
                sftp.chmod(755, "/home/ccb/1.jpg");  // 修改权限
                sftp.rename("/home/ccb/1.jpg", "/home/ccb/2.jpg"); // 重命名
                sftp.rm("/home/ccb/2.jpg");  // 删除文件
                sftp.mkdir("/home/ccb/test");  // 创建文件夹
    
            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                if (sftp != null) {
                    sftp.disconnect();
                }
                if (session != null) session.disconnect();
            }
            
        }
    }