前不久在项目开发中遇上的一个需求:需要在B机器上将A机器某路径下的文件拷贝到B机器上做保存。
简单分析下来,自己的理解就是:一个RPC,主要就是解决跨域传输文件的问题。在提前能拿到A机器的IP、Port、userName、Pwd的情况下还是很好解决的。
参考下Linux下,实现方式:
将本机文件上传到远程服务器
#scp /usr/local/news.txt root@192.168.1.1:/etc/opt
** /usr/local/** 本地文件的绝对路径
news.txt 要复制到服务器上的本地文件
root 通过root用户登录到远程服务器(也可以使用其他拥有同等权限的用户)
192.168.6.129 远程服务器的ip地址(也可以使用域名或机器名)
/etc/opt 将本地文件复制到位于远程服务器上的路径
将远程服务器文件下载到本机
#scp root@192.168.1.1:/usr/local/news.txt /usr/local
root 通过remote用户登录到远程服务器(也可以使用其他拥有同等权限的用户)
192.168.1.1 远程服务器的IP地址(当然也可以使用该服务器域名)
/usr/local/news.txt 欲复制到本机的位于远程服务器上的文件
/usr/local 将远程文件复制到本地的绝对路径
java 实现的方式参照上述就简单了,如下:
需要导入Jar包:
ch.ethz.ganymed
ganymed-ssh2
build210
工具类:
public class Scpclient {