繁体   English   中英

从没有 web 服务器的远程机器读取文件

[英]Read file from remote machine without web server

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

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

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

我怎样才能做到这一点?

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

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

  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

你可以做类似的事情

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM