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

时间:2015-09-11 15:32:53

标签: ruby-on-rails image heroku deployment paperclip

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

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

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

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

enter image description here

1 个答案:

答案 0 :(得分:4)

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

您需要使用S3或其他位置来存储文件。幸运的是,Paperclip on Heroku已有详细记录。

主要配置不同之处在于此。将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']
  }
}