java服务器常用文件传输协议_在Java中实现SFTP协议文件传输的两种解决方案

本文介绍了在Java中实现SFTP协议文件传输的两种解决方案,分别是使用JSch库和sshj库。通过示例代码展示了如何利用这两个库进行文件的上传与下载操作,同时对比了它们的特点和使用场景。
摘要由CSDN通过智能技术生成

在Java中实现SFTP协议文件传输的两种解决方案

1.1 背景

1.2 关于 FTP /FTPS

1.3 关于SFTP

解决方案一:使用 JSch 库

解决方案二:使用sshj 库

这篇博文来聊聊在Java中实现SFTP协议文件传输的两种解决方案

1.1 背景

我们知道,XFTP 是一款非常流行的 FTP 文件传输工具。

其中 XFTP 目前支持两种文件传输协议

一种是FTP

9b952a6b1f9345e382f6246c8c306f6d.jpg

另外一种是SFTP

如图所示:

2efcc4fc553c4992bffaece5973bd43b.jpg

当然除此之外还有一种不太常用的FTPS

那么这三种协议有哪些区别呢?

文件传输协议类型

描述

FTP

基础的文件传输

FTPS

基于TLS 加密

SFTP

基于SSH 加密

有时候我们可能会有需求,在我们的项目中使用FTP 文件传输功能。

那么在Java中有哪些解决方案呢?

1.2 关于 FTP /FTPS

Apache Commons Net™库实现了许多基本Internet协议的客户端。

支持的协议如下所示:

FTP/FTPS

FTP over HTTP (experimental)

NNTP

SMTP(S)

POP3(S)

IMAP(S)

Telnet

TFTP

Finger

Whois

rexec/rcmd/rlogin

Time (rdate) and Daytime

Echo

Discard

NTP/SNTP

其中这个类库中有如下三个类:

org.apache.commons.net.tftp.TFTPClient

支持不需要账号密码访问的FTP 协议文件传输,不支持带验证的FTP文件传输

org.apache.commons.net.ftp.FTPClient

支持FTP,不支持FTPS和SFTP

org.apache.commons.net.ftp.FTPSClient

支持FTPS,不支持SFTP

前面两种方式这里不做过多讨论,我们重点看下SFTP 协议文件传输的解决方案。

1.3 关于SFTP

关于在Java中实现SFTP协议文件传输有两个库可供使用。

使用 JSch 库

使用sshj 库

为了便于测试,我这里将账号密码等信息配置成静态工具类

代码如下所示:

/**

* @author qing-feng.zhao

*/

public class MyServerInfoConstant {

/**

* FTP IP 地址

*

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值