首页 > 解决方案 > 从没有网络服务器的远程机器读取文件

问题描述

我有一个在服务器上运行的 Spring Boot 程序,它需要从不同的机器读取文件(两台机器都是 Windows 操作系统)。在远程机器上,我不使用任何网络服务器,例如 apache/nginx - 我也不想。我想直接从磁盘读取文件。

我想要的是提供所需的参数(可能是远程主机的 IP、用户名和密码),以及文件系统中的路径——在没有 Web 服务器的情况下直接访问文件。

public void readFile(String ip, String userName, String password, String path);

我怎样才能做到这一点?

标签: javaspring-bootfilesystems

解决方案


您需要scp从 Java 中执行一个(允许从不同机器复制文件)。这个图书馆将帮助

也是一个将文件从远程复制到本地的工作示例

  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

推荐阅读