@[TOC]code学习(一):java的sftp类
希望这次我能坚持写下去吧!
任务目的:将本地文件传输到远程的linux服务器上
将本地电脑上的文件传到git上
首先,为了增加可用性,我需要将文件上传git内,而不能存放到自己的本地电脑里,这个简单。
在代码目录下新增tools文件夹,将我的包保存在此文件夹下,再上传到远程的git上,这样之后的人再用我的代码的时候,就会自然把这些包下载下来。
选择传输文件的命令
将对应目录下的文件传输至远程的linux机器的命令,我百度到的如下:
- scp
优点:发送端和接收端机器都有此命令,无需重新安装
缺点:需要弹出后输入密码,不能将密码写在命令里,我看到的解决方法有三个
- 使用sshpass命令,但是这个命令接收端机器没有安装,还需要下载安装,麻烦,pass;
- 使用shell脚本,使用expect命令,但是需要安装expect,麻烦,pass;
- 使用密钥登录,但是我每次接收端和发送端的机器都是变化的,而且我只存贮了密码,没在代码里使用过密钥,pass - ftp
优点:可以将密码写在命令里
缺点:接收端的linux系统没有这个命令,需要安装,麻烦 - sftp
发送端和接收端机器都有此命令,无需重新安装,而且java有个maven库有命令包,可以直接使用,nice~就是他了
安装并使用
本地文件使用的是maven依赖安装,具体如下:(网上这种文章很多啦,就不再复制粘贴啦)
Java SFTP 上传、下载等操作
使用心得:很好用,但是上传中有好多的put函数,我都不知道该选哪一个了,还是最基本的最好用,下面的代码中src就是本地要上传的文件,dst就是远程要存在哪个目录下。
public void put(String src, String dst) throws SftpException {
this.put((String)src, dst, (SftpProgressMonitor)null, 0);
}