今天开发遇到点老项目上的东西,对于我这种新人来说还是比较陌生的,准备记录一下.
领导一直在给我说SFTP接口xxx的 传输xxx的 之前不知道这玩意干啥的,百度搜一下,学习记录一下.
先说一下SFTP吧
SFTP(SSH File Transfer Protocol,也称 Secret File Transfer Protocol)
它是一种安全的文件传输协议,一种通过网络传输文件的安全方法;它确保使用私有和安全的数据流来安全地传输数据。
和他同类还有个FTP,二者的主要区别为
1、安全通道
FTP 不提供任何安全通道来在主机之间传输文件;
而,SFTP协议提供了一个安全通道,用于在网络上的主机之间传输文件。
2、使用的协议
FTP使用 TCP/IP协议。
而,SFTP是SSH协议的一部分,它是一种远程登录信息。
3、链接方式
FTP使用TCP端口21上的控制连接建立连接。
而,SFTP是在客户端和服务器之间通过SSH协议(TCP端口22)建立的安全连接来传输文件。
4、安全性
FTP密码和数据以纯文本格式发送,大多数情况下是不加密的,安全性不高。
而,SFTP会在发送之前加密数据,二进制的形式传递,是无法 "按原样" 阅读的,安全性较高。
以上是概念,简单了解一下
手动分割一下
-------------------------------------------------------------------
java代码实现理论为:
创建对象,设置相关属性(用户,密码,ip,端口等),通过session连接,打开SFTP通道,建立SFTP通道的连接,然后用其api便可以进行文件的上传下载等操作了;
String host:"";
String port:"";
String username:"";
String pwd:"";
//初始化
Session session = null;
Channle channel = null;
JSch jsch = new JSch();
//获取session
session= jsch.getSession(username,host,Integer.value(port));
//设置相关属性
session = setPassword(pwd);
Properties sshConfig = new Properties();
session.setConfig(sshConfig);
//建立连接
session.connect();
channel = session.openChannel("sftp");
//建立sftp连接通道
channel .connect();
通道建立成功后就可以调API接口了,上传,下载,删除,查看文件列表等