从没有Web服务器的远程计算机中读取文件

问题描述 投票:1回答:2

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

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

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

我该如何实现?

java spring-boot filesystems
2个回答
0
投票

您需要从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

0
投票

您可以执行类似操作

  1. 在另一台机器上激活FTP协议并使用Java ftp实现
  2. 创建网络共享驱动器,并向您域中的特定Windows用户授予访问权限。您只需要知道网络驱动器的URL,就可以像访问本地文件一样访问文件
  3. 在您的Java代码中执行单独的powershell / ssh / scp / ...任务以打开远程会话并传输文件
  4. 用Java编写您自己的http-server应用程序,并在另一台PC上运行它,并作为客户端连接到它
  5. ...
© www.soinside.com 2019 - 2024. All rights reserved.