java - 从没有网络服务器的远程机器读取文件
问题描述
我有一个在服务器上运行的 Spring Boot 程序,它需要从不同的机器读取文件(两台机器都是 Windows 操作系统)。在远程机器上,我不使用任何网络服务器,例如 apache/nginx - 我也不想。我想直接从磁盘读取文件。
我想要的是提供所需的参数(可能是远程主机的 IP、用户名和密码),以及文件系统中的路径——在没有 Web 服务器的情况下直接访问文件。
public void readFile(String ip, String userName, String password, String path);
我怎样才能做到这一点?
解决方案
您需要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
推荐阅读
- java - Java 8基于多个条件和日期对对象的Arraylist进行排序
- python - PyTorch 相同输入不同输出(非随机)
- serial-port - RX/TX 串行通信
- sql - 查询 eloquent 不能 where id = value
- arrays - 如何从数组的最后一个元素开始迭代循环并按顺序进行到下一个?(不倒车)
- java - 在 Spring Boot 中使用 RestClient 对 Rest API 页面进行反序列化
- java - 使用 Spring Boot 战争启动外部 Tom Cat 时出现错误“无法获取 jdbcUrl 的驱动程序实例”
- angular - 用户注销后 Angular Locked 用户名和密码输入
- c - 为什么条件 x!=15 被评估为真给出输出 1
- javascript - 减少Angular Material标签标签宽度的正确方法?