Чтение файла с удаленного компьютера без веб-сервера - PullRequest
0 голосов
/ 07 октября 2019

У меня есть программа Spring Boot, которая запускается на сервере, и ей нужно читать файл с другого компьютера (на обоих компьютерах установлена ​​ОС Windows). На удаленной машине я не использую какой-либо веб-сервер, такой как apache / nginx - и не хочу. Я хочу напрямую читать файлы с диска.

Я хочу предоставить необходимые параметры (вероятно, IP, имя пользователя и пароль удаленного хоста) и путь в файловой системе - для прямого доступа к файлам без веб-сервера.

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

Как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 07 октября 2019

Вы можете сделать что-то вроде

  1. , активировать протокол FTP на другом компьютере и использовать реализации java ftp
  2. создать общий сетевой диск и предоставить доступ определенным пользователям Windows в вашем домене,вам просто нужно знать URL-адрес сетевого диска и обращаться к файлу, как если бы он был локально
  3. , выполнить отдельную задачу powershell / ssh / scp / ... из вашего кода Java, чтобы открыть удаленный сеанс иперенесите файл
  4. напишите свое собственное приложение http-сервера в java, запустите его на другом компьютере и подключитесь к нему как клиент
  5. ...
1 голос
/ 07 октября 2019

Вам нужно сделать 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
...