Java实现SFTP传输

一、SFTP是什么?

SFTP(SSH File Transfer Protocol)是一种基于SSH(安全外壳)的安全的文件传输协议,使用SFTP协议可以在文件传输过程中提供一种安全的网络的加密算法,从而保证数据的安全传输

SFTP在Linux操作系统中,默认的端口是22,传输提供了密码和密钥验证机制,可以有效防止传输过程的威胁和公技

1.1 SFTP验证连接方式

  • 账户密码验证:使用账户ID和密码进行验证,凭据验证过程中是加密的。

  • SSH密钥验证:通过SSH密码进行验证。

  • 账户密码+SSH密钥混合验证:需要满足两种验证,才可以进行连接

1.2 SFTP文件传输过程


原文链接:什么是SFTP

二、实现步骤

1、建立sftp连接

java 复制代码
   public void initSession(String sHost, int iPort, String sUserName, String sPassword) throws JSchException {

            // JSch库来建立与SFTP服务器的连接
            JSch jSch = new JSch();
            this.session = jSch.getSession(sUserName,sHost,iPort);//getSession()建立与sftp服务器的会话
            this.session.setPassword(sPassword);    
            this.session.connect();// 连接sftp服务器

    }

2、设置传输参数

java 复制代码
    public void initChannelSftp() throws JSchException{
        // 打开一个sftp通道,并将其转化为ChannelSftp对象
        this.sftp = (ChannelSftp) this.session.openChannel("sftp");
        this.session.connect();
    }

3、打开本地文件

java 复制代码
// 将要传输的文件打开为输入流 
    String localFilePath ="文件路径";
    InputStream inputStream = new FileInputStream(localFilePath);
    }

4、创建远程文件

java 复制代码
// 在sftp服务器上创建远程文件
String remoteFilePath = "";
sftp.cd("")// 远程文件所在根目录
sftp.put(localFilePath, remoteFilePath)

5、上传文件

java 复制代码
// 将本地文件写入到远程文件中
sftp.put(localFilePath, remoteFilePath)

6、关闭文件

java 复制代码
inputStream.close()
相关推荐
TeamDev5 小时前
JxBrowser 9.5.2 版本发布啦!
java·前端·windows·chromium·混合应用·jxbrowser·浏览器控件
鬼手点金5 小时前
Claude Code示范案例-进阶学习路径
java·服务器·前端·学习·计算机视觉·前向传播
浪子明X5 小时前
用 CMake Presets 固定跨平台构建:从本地开发到 CI 的依赖一致性实践
java·spring·ci/cd
苏supper5 小时前
记一次Nacos鉴权报错unknown user,403排查|SecurityProxy源码,fastjson2扩展包缺失
java·后端
\光辉岁月/6 小时前
6.mybatisplus学习-BaseMapper、Service、常用注解
java·mybatis·mybatisplus
微信开发api6 小时前
基于WTAPI构建社群运营平台:自动拉群与会话承接链路设计
java·大数据·网络·数据库·微信·自动化
小七在进步6 小时前
类和对象(五)
java·开发语言·算法
驭渊的小故事6 小时前
SpringBoot 配置文件详解:properties 与 yml 从入门到实战
java·开发语言·笔记
Wx-bishekaifayuan6 小时前
Springcloud中学在线学习平台58883-计算机课程设计、毕业设计
java·vue.js·spring boot·学习·spring·spring cloud·课程设计
一嘴一个橘子6 小时前
java 中使用 lua 脚本
java