我在Heroku上部署了一个应用程序,我在Ruby on Rails上编写了这个应用程序。这是一个电影评论应用程序。
我可以将计算机上传的图像上传到网络应用程序。其他一切都符合我的期望。
一天后图像消失。我的要求是让图像继续呈现。
我正在使用来自rails的Paperclip gem。这仅发生在已部署的版本上,而不是在localhost上。
答案 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']
}
}