在 Heroku 上部署 - 图片在上传后消失
Deploying on Heroku - Images disappears after upload
我在 Heroku 上部署了一个我在 Ruby 和 Rails 上编写的应用程序。这是一个影评应用。
我可以从我的电脑上传图片到在线网络应用程序。其他一切都按照我的期望工作。
图像在一天后消失。我的要求是让图像继续渲染。
我正在使用来自 rails 的回形针 gem。这只发生在已部署的版本上,而不是在本地主机上。
Heroku 上的默认上传位置是临时存储。这是因为每次部署时都会得到不同的网络工作者。
您需要使用 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']
}
}
我在 Heroku 上部署了一个我在 Ruby 和 Rails 上编写的应用程序。这是一个影评应用。
我可以从我的电脑上传图片到在线网络应用程序。其他一切都按照我的期望工作。
图像在一天后消失。我的要求是让图像继续渲染。
我正在使用来自 rails 的回形针 gem。这只发生在已部署的版本上,而不是在本地主机上。
Heroku 上的默认上传位置是临时存储。这是因为每次部署时都会得到不同的网络工作者。
您需要使用 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']
}
}