如何从Bluemix上的另一个应用程序目录访问文件?

时间:2015-03-05 02:48:52

标签: r directory ibm-cloud

这是我的问题场景:

1.Create 2 apps.
2.App1 continuously pulls tweets and stores the json file in its /data folder.
3.App2  picks up the latest file from the /data folder of App1 and uses it.

我已经使用R及其相应的build-pack在bluemix上部署应用程序。

  

如何从App2访问App1中的/ data / file1,即我可以在App2源文件中执行类似的操作:

     
    

read.csv(" App1 / data / Filename.csv");     bluemix会了解App1文件夹指向的内容吗?

  

3 个答案:

答案 0 :(得分:0)

您无法在bluemix上访问其他应用中的文件。您应该使用像cloudant这样的数据库服务来存储您的json。将相同的服务绑定到两个应用程序。

答案 1 :(得分:0)

Bluemix是一种平台即服务。这实质上意味着传统意义上没有文件系统。是的,你的申请"生活"在某种类型的VM上的文件结构中,但如果您要随时重新部署或重新部署应用程序,则文件系统的更改将会丢失。

"对"处理此数据的方法是将其存储在NoSQL数据库中,并将每个应用程序指向此数据库。 Bluemix提供多种选择,具体取决于您的需求。

MongoDB可能是使用和理解的更简单,更直接的数据库之一。 Cloudant也非常优秀且稳健,但学习曲线略高。

设置此数据库后,您可以定期轮询它以获取新记录,或者更好的方法是,使用WebSockets实时将通知从一个应用推送到另一个应用。

无论哪种方式,请单击Bluemix主导航中的Catalog链接,然后搜索要配置的这些服务中的任何一个并将其绑定到您的应用。然后,您需要通过VCAP_SERVICES环境对象引用它们,您可以了解有关here的更多信息。

答案 2 :(得分:0)

使用像Cloudant或Object Storage服务这样的东西将是在两个应用程序之间共享数据的好方法。您甚至可以将同一服务绑定到2个应用程序。

另一个解决方案是创建一个微服务,它是您的持久层,为您存储数据。然后,您可以在此基础上创建一个API,以便您的两个应用都可以调用。

如上所述,在磁盘上存储信息对云应用来说并不是一个好主意。去看看http://12factor.net,它描述了编写真正的基于云的应用程序的禁忌。