0

我有一个部署到 Heroku 的 rails 应用程序。它有图像上传。再次部署到 heroku 后,我无法看到上传的旧图像。

重新部署应用程序时,heroku 是否会重置图像文件夹?请告诉我背后的原因。

4

1 回答 1

2

背景

Heroku 使用“临时文件系统”,从应用程序架构的角度来看,它应该被视为只读 - 一旦停止或重新启动 dyno(与其他情况一起,在每次推送后发生),它就会被丢弃,并且也不在多个测功机之间共享。

这对于从中执行代码很好,因为大多数应用程序数据都存储在独立于测功机的数据库中。但是,对于文件上传,这会带来问题,因此任何上传都不应该直接存储在 dyno 文件系统中。

解决方案

最简单的解决方案是使用像 Amazon S3 这样的东西作为文件上传存储解决方案,如果使用像Paperclip这样的 gem,gem 本身就支持这一点。Heroku 开发中心有一篇关于使用 S3 和 Heroku ( https://devcenter.heroku.com/articles/s3 ) 的精彩概述文章,该文章引出了由 Thoughtbot(Paperclip 的开发者)贡献的一篇关于内部实现细节的文章一个 Rails 应用程序(https://devcenter.heroku.com/articles/paperclip-s3

于 2013-05-18T16:14:54.160 回答