从没有网络服务器的远程机器读取文件
Read file from remote machine without web server
我有一个Spring启动程序运行在一台服务器上,它需要从不同的机器读取文件(两台机器都是WindowsOS)。在远程机器上,我不使用任何网络服务器,例如 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
你可以这样做
- 在另一台机器上激活 FTP 协议并使用 java ftp 实现
- 创建网络共享驱动器并向您域中的特定 windows 用户授予访问权限。您只需要知道网络驱动器 url 就可以像访问本地文件一样访问该文件
- 从您的 java 代码中执行单独的 powershell /ssh / scp / ... 任务以打开远程会话并传输文件
- 在另一台电脑上的 java 和 运行 中编写您自己的 http-server 应用程序并作为客户端连接到它
- ...
我有一个Spring启动程序运行在一台服务器上,它需要从不同的机器读取文件(两台机器都是WindowsOS)。在远程机器上,我不使用任何网络服务器,例如 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
你可以这样做
- 在另一台机器上激活 FTP 协议并使用 java ftp 实现
- 创建网络共享驱动器并向您域中的特定 windows 用户授予访问权限。您只需要知道网络驱动器 url 就可以像访问本地文件一样访问该文件
- 从您的 java 代码中执行单独的 powershell /ssh / scp / ... 任务以打开远程会话并传输文件
- 在另一台电脑上的 java 和 运行 中编写您自己的 http-server 应用程序并作为客户端连接到它
- ...