前言
项目中需要从一台服务器调取其他Linux服务器上的文件,并上传到其他服务器接口中;用的是通过文件流上传;
主要是用的: session.execCommand(str) 和session.getStdout() 来获取读取到的文件流;
开始一直读取不到文件的实际大小,一直是0字节;
后来在两个方法之间加了休眠,但实际运行中,还有部分文件没有获取到实际大小,还是0字节;
再后来又优化了一下,应该是都读取成功了。
如果读取的文件过大、或者网络不好,建议加大休眠时间试试。
---------------------------------------------------------2020.06.09优化-----------------------------------------------------------
程序运行了数周后,对接方有反馈文件大小不一致,经排查,好像最终上传时文件流中的大小还不是实际文件的大小,可能只读取了一部分就开始上传了;
优化后的方案是:先执行命令获取文件大小,再用命令获取文件流,对比文件的大小还流的大小,一致时再往下执行。
一、依赖
com.trilead
trilead-ssh2
1.0.0-build222
二、代码
/**
* 获取conn
* @param ip
* @param port
* @param user
* @param pwd
* @