如何从Pivotal Cloud Foundry中托管的Java应用访问Windows NAS文件共享

时间:2019-03-27 22:23:37

标签: java spring-boot pivotal-cloud-foundry pivotal-web-services

我们有一个与JPEG共享的Windows文件,我正尝试通过Java Spring Boot REST API从Pivotal Cloud Foundry访问该文件。 PCF和Java本身需要采取哪些步骤来实现这一目标?

是否必须先将驱动器安装在PCF中,然后才能以某种方式使用标准的java.io库访问此文件?到目前为止,我们只是想将JPEG文件读入BufferedImage并在进行一些图形操作(我知道该怎么做)后以Base64的形式返回它们,但是我一直坚持不懈地努力解决这个问题。 PCF领域。显然,它在Windows开发计算机上可以正常工作,在该计算机上,我的登录用户也具有文件共享的凭据,无需挂载它或执行任何特殊操作。

我一直在网上阅读有关SMB和JCIFS库的信息,但仍然不确定这是我所需要的还是如何充分利用手头的技术来应用它。

1 个答案:

答案 0 :(得分:0)

从Pivotal Cloud Foundry 2.4开始,您可以启用SMB卷服务。这使您可以cf create-service指向您的SMB服务器的卷服务。然后,您可以将其绑定到您的应用程序,并且当您的应用程序启动时,平台会将SMB卷挂载到您指定的挂载点。那时,您的应用只需要知道挂载点,例如/smb/files,就可以使用标准Java I / O读取文件。

如果您是平台运营商,请在此处启用SMB卷服务的说明。

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

我不能推荐一个特定的产品,因此您需要评估并确定哪个产品适合您。

请记住,无论选择什么,都需要从PCF上运行的应用程序对SMB服务器进行网络访问。这意味着IP需要是可路由的,并且不能被防火墙阻止。如果无法连接,则可能还需要与平台运营商一起查看网络访问权限,并确保没有任何阻塞(防火墙,应用程序安全组等)的连接。

希望有帮助!