0

我们有一个带有 JPEG 的 Windows 文件共享,我试图通过 Java Spring Boot REST API 从 Pivotal Cloud Foundry 访问它。PCF 和 Java 本身都需要哪些步骤来实现这一点?

我是否必须先在 PCF 中安装驱动器,然后才能以某种方式使用标准 java.io 库来访问该文件?到目前为止,我们只是想将 JPEG 文件读入 BufferedImage 并在经过一些图形操作(我知道该怎么做)后将它们作为 Base64 返回,但我一直在思考如何在PCF领域。显然,它在我的 Windows 开发机器上工作得很好,我的登录用户也有文件共享的凭据,不需要挂载它或做任何特殊的事情。

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

4

1 回答 1

1

从 Pivotal Cloud Foundry 2.4 开始,您可以启用 SMB 卷服务。这允许您使用cf create-service指向您的 SMB 服务器的卷服务。然后,您可以将其绑定到您的应用程序,当您的应用程序启动时,平台会将 SMB 卷安装到您指定的安装点。那时,您的应用程序只需要知道挂载点,例如/smbor /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 需要是可路由的,并且不会被防火墙阻止。如果您无法连接,您可能还想与您的平台运营商一起检查网络访问,并确保没有任何东西阻止连接(防火墙、应用程序安全组等)。

希望有帮助!

于 2019-04-08T15:09:10.370 回答