【问题标题】:Pushing Bluemix app wipes files in the public folder推送 Bluemix 应用程序会擦除公用文件夹中的文件
【发布时间】:2015-10-06 09:13:51
【问题描述】:

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

每当我更改我的服务器代码和cf push 应用程序时,上传文件夹中的文件都会被擦除。如何在不触碰我不想触碰的文件和文件夹的情况下发布我的应用?

提前致谢。

【问题讨论】:

  • 以下解决方案之一是否解决了您的问题?如果可以,请您投票并接受答案吗?

标签: node.js upload push ibm-cloud


【解决方案1】:

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

当应用重新启动、崩溃、扩展或您上传新版本时,文件系统会被擦除。

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

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

我鼓励您使用共享文件系统,例如 OpenStack Swift。它在 Bluemix 中可用,称为 Object Storage。

【讨论】:

    【解决方案2】:

    重新暂存会擦除 Cloud Foundry 上的文件,因为没有可用的永久本地存储。尝试使用 Bluemix Live Sync 即时编辑您的代码—— 无需重新暂存。您可以下载 Bluemix Live cli,或者使用 IBM Dev Ops Services 来利用 Live Edit。该文档涵盖了所有options

    如需更多永久存储解决方案,请查看 Bluemix 目录,了解 Cloudant 和 Redis 等服务。

    【讨论】:

      【解决方案3】:

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

      Considerations for Designing and Running an Application in the Cloud

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-07-22
        • 2018-02-10
        • 1970-01-01
        • 2016-04-11
        • 1970-01-01
        • 1970-01-01
        • 2018-05-01
        相关资源
        最近更新 更多