【问题标题】:How To Access Windows NAS File Share From Java App Hosted In Pivotal Cloud Foundry如何从托管在 Pivotal Cloud Foundry 中的 Java 应用程序访问 Windows NAS 文件共享
【发布时间】:2019-03-27 22:23:37
【问题描述】:

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

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

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

【问题讨论】:

  • 如果您可以在 PCF 中挂载共享,那当然是最简单的了。
  • 这就是我所害怕的(PCF 的新手……这对我来说是一次重要的学习经历……哈哈)。挂载后,我可以使用标准的 java.io 库来访问共享,而不必使用 JCIFS 之类的东西?

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


【解决方案1】:

从 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 需要是可路由的,并且不会被防火墙阻止。如果您无法连接,您可能还需要与您的平台运营商一起检查网络访问,并确保没有任何东西阻止连接(防火墙、应用程序安全组等)。

希望有帮助!

【讨论】:

    猜你喜欢
    • 2021-03-29
    • 2019-10-19
    • 2016-08-17
    • 1970-01-01
    • 2021-08-09
    • 2017-06-27
    • 2012-12-23
    • 1970-01-01
    • 2013-02-23
    相关资源
    最近更新 更多