Как получить доступ к файлу Windows NAS с помощью приложения Java, размещенного в Pivotal Cloud Foundry - PullRequest
0 голосов
/ 28 марта 2019

У нас есть общий доступ к файлам Windows с JPEG, к которому я пытаюсь получить доступ из Pivotal Cloud Foundry через API REST Java Spring Boot.Какие шаги необходимы в PCF и самой Java для этого?

Нужно ли сначала монтировать диск в PCF, затем я могу каким-то образом использовать стандартные библиотеки java.io для доступа к этому файлу?На данный момент мы просто хотим прочитать файлы JPEG в BufferedImage и вернуть их как Base64 после некоторых манипуляций с графикой (что я знаю, как это сделать), но я застрял, пытаясь понять, что делать для этого вцарство ПКФ.Очевидно, что он отлично работает на моей машине для разработки Windows, где мой вошедший в систему пользователь также имеет учетные данные для общего файлового ресурса и не нуждается в его монтировании или выполнении каких-либо специальных действий.

Я продолжаю читать о SMB и библиотеке JCIFS онлайн, но все еще не уверен, что это то, что мне нужно, или как полностью применить это с имеющимися технологиями.

1 Ответ

0 голосов
/ 08 апреля 2019

Начиная с Pivotal Cloud Foundry 2.4, вы можете включить многопользовательские сервисы SMB.Это позволяет вам cf create-service сервис тома, который указывает на ваш сервер SMB.Затем вы можете привязать это к своему приложению, и когда ваше приложение запустится, платформа подключит том SMB к указанной вами точке монтирования.На этом этапе вашему приложению просто потребуется знать точку монтирования, например /smb или /files, чтобы оно могло использовать стандартный ввод-вывод Java для чтения в файлах.

Если вы платформаоператор, инструкции по включению сервисов SMB Volume здесь.

https://docs.pivotal.io/pivotalcf/2-4/opsguide/enable-vol-services.html#smb-enable

Если вы разработчик, инструкции по его использованию находятся здесь.

https://docs.pivotal.io/pivotalcf/2-4/devguide/services/using-vol-services.html#smb


Если вы используете более старую версию PCF или ваш оператор не включил эту функцию, вам нужно будет что-то кодировать в своем приложении, чтобы получить прямой доступ к тому SMB.Есть несколько библиотек, способных сделать это (и их может быть больше, чем в этом списке).

  1. https://www.jcifs.org/
  2. https://github.com/hierynomus/smbj
  3. https://github.com/AgNO3/jcifs-ng

Я не могу рекомендовать конкретный, поэтому вам нужно оценить и выяснить, какой из них работает для вас.

Имейте в виду, что независимо от того, что вы выбираетевам необходимо иметь сетевой доступ к серверу SMB из вашего приложения, работающего на PCF.Это означает, что IP-адрес должен быть маршрутизируемым и не блокироваться брандмауэром.Если вы не можете подключиться, вы также можете проверить доступ к сети у оператора вашей платформы и убедиться, что ничто не блокирует соединение (брандмауэр, группы безопасности приложений и т. Д.).

Надеюсь, это поможет!

...