码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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连接

       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服务器
    
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2、设置传输参数

        public void initChannelSftp() throws JSchException{
            // 打开一个sftp通道,并将其转化为ChannelSftp对象
            this.sftp = (ChannelSftp) this.session.openChannel("sftp");
            this.session.connect();
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3、打开本地文件

    // 将要传输的文件打开为输入流 
        String localFilePath ="文件路径";
        InputStream inputStream = new FileInputStream(localFilePath);
        }
    
    • 1
    • 2
    • 3
    • 4

    4、创建远程文件

    // 在sftp服务器上创建远程文件
    String remoteFilePath = "";
    sftp.cd("")// 远程文件所在根目录
    sftp.put(localFilePath, remoteFilePath)
    
    • 1
    • 2
    • 3
    • 4

    5、上传文件

    // 将本地文件写入到远程文件中
    sftp.put(localFilePath, remoteFilePath)
    
    • 1
    • 2

    6、关闭文件

    inputStream.close()
    
    • 1
  • 相关阅读:
    程序员们平时都喜欢逛什么论坛呢?
    从零开始搭建spring boot多模块项目
    Python图形处理
    Acwing:730. 机器人跳跃问题(二分法)
    关键词排名查询-各大搜索引擎批量实时关键词排名查询
    【动手深度学习-笔记】批量规范化(Batch Normalization)
    计算机网络-网络层 (IPV6,IPV4与IPV6对比,IPV6地址类型)
    Node.js开发-path模块
    wordpress获取当前主题文件夹所在的路径
    爬虫模拟用户登录
  • 原文地址:https://blog.csdn.net/Mikon_0703/article/details/132753605
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号