代码之家  ›  专栏  ›  技术社区  ›  Andy

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

  •  0
  • Andy  · 技术社区  · 5 年前

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

    0 回复  |  直到 5 年前
        1
  •  1
  •   Daniel Mikusa    5 年前

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

    希望能有帮助!

    推荐文章