我有一个在服务器上运行的Spring Boot程序,它需要从其他机器(两个机器都是Windows操作系统)读取文件。在远程计算机上,我不使用任何Web服务器,例如apache / nginx-我也不想这样做。我想直接从磁盘读取文件。
我想要提供所需的参数(可能是远程主机的IP,用户名和密码),以及文件系统中的路径-无需Web服务器即可直接访问文件。
public void readFile(String ip, String userName, String password, String path);
我该如何实现?
您需要从Java执行scp
(允许从不同的计算机复制文件)。 This库会帮助
还有一个可以正常工作的example,它将文件从远程复制到本地
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, 22);
...
String command = "scp -f "+rfile;
Channel channel = session.openChannel("exec");
((ChannelExec)channel).setCommand(command);
InputStream in = channel.getInputStream();
channel.connect();
// "in" contains the input stream of the file
您可以执行类似操作