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

标签 java spring-boot 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 库的信息,但仍然不确定这是否是我所需要的或如何将其与现有技术充分应用。

最佳答案

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

希望有帮助!

关于java - 如何从 Pivotal Cloud Foundry 中托管的 Java 应用程序访问 Windows NAS 文件共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55387385/

相关文章:

java - 如何使用操作系统的默认文件选择器? java

java - eclipse JDT AST : How to write generated AST to java file?

java - etat HTTP 500 - javax.servlet.ServletException : javax. servlet.jsp.JspException:找不到 ActionMappings 或 ActionFormBeans 集合

spring - 登录Grails:使用Log4j2重新加载外部配置

java - 带有 MultiTenantConnectionProvider 的 Springboot Multi-Tenancy 总是抛出 org.apache.tomcat.jdbc.pool.PoolExhaustedException :

java - Eclipse主程序启动错误

java - 无法使用请求结果类型为具有多个返回的查询创建类型化查询

cloud-foundry - 将 FFMPEG 添加到 Bluemix Node.JS buildpack

java - SAP Cloud Foundry 中的远程调试

java - 在部署到 PaaS (Cloud Foundry) 之前扫描 jar 文件