【问题标题】:Uploaded files disappear during new push?新推送时上传的文件消失了?
【发布时间】:2013-09-06 18:12:31
【问题描述】:

我的回形针工作得很好,我可以将文件上传到我的网站,但是每当我进行更新并推送网站的新版本时,我通过回形针上传的所有文件似乎都消失了(输入的所有信息数据库仍然存在)。

我认为问题在于我没有从网站的实时版本中提取文件,但是每当我执行 git pull 时,它都会告诉我一切都是最新的。无论如何我可以下载我上传的文件。 (目前我宁愿不使用 amazon S3 来存储文件)

【问题讨论】:

    标签: ruby-on-rails git heroku paperclip pull


    【解决方案1】:

    您上传的文件存储在公共文件夹中。并且公用文件夹未部署代码,因此您的文件假定已消失。

    如果您使用亚马逊 S3,那么图像将存储在 s3 中,并且它将提供一个动态 url 来访问图像。然后,您将能够正确访问图像。

    您还可以将图像保存在 Dropbox。在此应用程序中,图像存储在 Dropbox 中并在 heroku 上运行。您可以参考:

    https://github.com/aman199002/Album-App # 用于存储相册的开源应用程序(在保管箱中)。

    http://album-app.herokuapp.com #在heroku上运行的应用程序的Url。

    【讨论】:

    • 那么我没有S3就没有办法找回上传的文件了吗?
    • 您应该将图像永久存储在某个地方,例如 s3 或 Dropbox。
    【解决方案2】:

    当您将应用程序部署到 Heroku 时,您推送的代码会编译成所谓的 slug - 这本质上是运行应用程序所需的所有内容的存档。当您重新启动或扩展您的应用程序时,您的原始 slug 将被复制以运行。但是,它是一个只读的 slug,因此当您上传文件时,它们存在于接收它们的 dyno 上,因此如果您有多个 dyno,您的文件将不会存在于它们之间,并且当您的应用程序重新启动或您推送新代码时它们不会持续存在。有没有办法找回它们。

    在 Heroku 上保存文件的唯一方法是使用外部云存储解决方案,如 Amazon S3、Rackspace 文件等 - 幸运的是,Paperclip 使用 S3 作为其存储机制非常简单 - https://devcenter.heroku.com/articles/paperclip-s3 有一个教程@

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-28
      • 1970-01-01
      • 1970-01-01
      • 2015-10-09
      • 1970-01-01
      • 2017-08-22
      • 1970-01-01
      • 2011-02-22
      相关资源
      最近更新 更多