在Heroku上部署 – 上传后图像消失

我在Heroku上部署了一个应用程序,我在Ruby on Rails上编写了这个应用程序。 这是一个电影评论应用程序。

我可以将计算机上传的图像上传到网络应用程序。 其他一切都按照我的期望运作。

一天后图像消失。 我的要求是让图像继续渲染。

我正在使用来自rails的Paperclip gem。 这仅发生在已部署的版本上,而不是在localhost上。

在此处输入图像描述

Heroku上的默认上传位置是临时存储。 这是因为每次部署时都会获得不同的Web工作者。

您需要使用S3或其他位置来存储文件。 幸运的是,Heroku上的Paperclipcertificate了这一点。

主要配置不同之处在于此。 将gem’aws gem 'aws-sdk'添加到Gemfile中,然后在config/environments/production.rb调整配置文件:

 config.paperclip_defaults = { :storage => :s3, :s3_credentials => { :bucket => ENV['S3_BUCKET_NAME'], :access_key_id => ENV['AWS_ACCESS_KEY_ID'], :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'] } }