Как прочитать файл в общей папке Windows из Springboot?

Я в замешательстве, все гуглил, но ответа нет:

У меня есть файл Excel, хранящийся где-то вроде этого в Windows, это общий файл в разделе «Сеть»:

\\[имя_сервера]\[имя_папки]\[имя_папки]\[имя_папки]\[имя_папки]\ZNAC.XLSX

Обязательно, чтобы я мог только читать/загружать файл здесь. Все работает нормально, когда я читаю его локально, он отлично работает, используя SMB или объявляя путь к файлу непосредственно как входной поток.

Но когда я выполняю развертывание в SAP Cloud Foundry, оно всегда заканчивается FileNotFoundException, и я испробовал множество способов, но никаких изменений.

Мне интересно, находит ли облачный экземпляр файл внутри, а не снаружи. Но я пробовал и SMB, не работает. Я обнаружил, что в облачной литейной есть что-то под названием «Объемная служба», но ее нельзя использовать в SAP Cloud Foundry.

Любая помощь, чтобы мое приложение могло читать внешний файл из SAP Cloud Foundry?


person liu baijun    schedule 20.04.2021    source источник
comment
очевидно, Cloud Foundry не сможет прочитать файл из вашего общего ресурса SMB, не знаю, почему это для вас сюрприз   -  person Suncatcher    schedule 20.04.2021
comment
@Suncatcher, я впервые пробую это. хорошо, есть ли способ прочитать внешний файл? Кстати, у Sap CF нет службы NFS/Volume....   -  person liu baijun    schedule 21.04.2021


Ответы (2)


Чтобы прочитать файл с внешнего общего ресурса, вы должны сначала создать службу томов для соответствующего общего ресурса (NFS или SMB) и запустить его.

Затем вы должны привязать экземпляр службы к приложению CF следующим образом:

cf bind-service YOUR-APP SERVICE-NAME -c '{"uid":"UID","gid":"GID","mount":"OPTIONAL-MOUNT-PATH","readonly":true}'

Подробное руководство здесь

https://docs.cloudfoundry.org/devguide/services/using-vol-services.html#smb

person Suncatcher    schedule 21.04.2021
comment
Что недоступно на SAP Cloud Platform. SCP управляется не его организацией, а SAP. - person breadcrumb42; 22.04.2021
comment
он не указал, где он размещает свой CF, локально или в облаке - person Suncatcher; 22.04.2021
comment
Which is not available on SAP Cloud Platform неверно . Службы файловой системы, доступные локально и в Cloud Foundry, являются реализациями корпоративной службы. Как в XS advanced, так и в Cloud Foundry вы можете создать экземпляр службы, используя службу fs-storage с тарифным планом «бесплатно». - person Suncatcher; 22.04.2021
comment
Ну ладно, он не сказал, что такое CF. Справедливо. Тем не менее, если он попытается использовать SAP Cloud Platform, я все равно думаю, что это замечание верно. Я не знаю, почему вы ссылаетесь на 2.0 SPS 02, в то время как в более поздних версиях справки четко указано, что служба файловой системы недоступна на SAP Cloud Platform. - person breadcrumb42; 22.04.2021
comment
@Suncatcher О, позвольте мне попробовать это здесь, не уверен, что все сделаю правильно ... - person liu baijun; 23.04.2021
comment
@breadcrumb42 да, это на SAP CF, немного отличается от других .. - person liu baijun; 23.04.2021

SAP Cloud Platform / SAP BTP не имеет службы, позволяющей получить доступ к дискам SMB. Одной из возможностей может быть использование клиентской библиотеки SMB/SAMBA Java с соответствующей настройкой Firewall/SAP Cloud Connector. Мы когда-то реализовывали что-то подобное, но есть некоторые проблемы на пути.

Другая, более простая возможность — создать локальную службу (например, REST), которая позволит вам получить доступ к файлам. Эта служба также должна быть доступна для SCP, например, через SAP API Management.

person breadcrumb42    schedule 22.04.2021