推送Bluemix应用程序擦除公用文件夹中的文件

时间:2015-07-16 19:02:02

标签: node.js upload push ibm-cloud

我有一个Bluemix应用程序(带有Node.js后端),我上传了一些文件(在cursor_begin() const文件夹中)。

每当我更改服务器代码和public/uploads应用程序时,都会删除uploads文件夹中的文件。如何在不触及我不想触摸的文件和文件夹的情况下发布我的应用程序?

提前致谢。

3 个答案:

答案 0 :(得分:4)

这种情况正在发生,因为Cloud Foundry的工作方式。 Bluemix在Cloud Foundry上运行。造成这种情况的原因是文件系统是短暂的。文件系统不应用于存储上传的文件。

当应用重新启动,崩溃,缩放或上传新版本时,文件系统将被删除。

此外,如果您将应用扩展到例如5个实例,则应用的每个实例都会有不同的uploads

我强烈建议您查看12 Factor App。其中一个租户没有将文件存储在磁盘上。

我建议您使用OpenStack Swift等共享文件系统。它在Bluemix中可用,称为对象存储。

答案 1 :(得分:2)

Restaging将擦除Cloud Foundry上的文件,因为没有可用的永久本地存储。尝试使用Bluemix Live Sync即时编辑代码 - 无需重新分配。您可以下载Bluemix Live cli,也可以使用IBM Dev Ops Services来利用Live Edit。文档遍历所有options

有关更多永久存储解决方案,请查看Bluemix目录以获取Cloudant和Redis等服务。

答案 2 :(得分:0)

云代工厂应用程序的文件系统是短暂的。每次推送,重启,缩放,您都会获得一个新的文件系统。您的应用程序不应将文件存储到光盘(缓存/临时文件除外)。您的应用程序应将上载的文件存储在某种数据库或blob存储中。查看Cloudant服务。

docs on making queries