【发布时间】:2015-12-21 07:06:40
【问题描述】:
我有一个在 Heroku 上运行的带有 Paperclip 的 Rails 4 应用程序。我最近开始遇到一个问题,该问题阻止我更新带有附加图像的任何模型。例如,每当我通过我的站点的 CMS 系统对我的Company 模型进行更改时,这些更改都不会保存。我尝试仅更改图像、图像和各种其他属性,以及仅更改非图像属性。好像@company.save 从未在我的控制器的更新操作中被调用。
我找到this issue report 并尝试了建议的各种解决方案,但没有任何效果。
这是我的Company 模型:
class Company < ActiveRecord::Base
has_attached_file :logo, :styles => { :medium => "300x300>", :thumb => "100x100>" }
validates_attachment_content_type :logo, :content_type => /\Aimage\/.*\Z/
end
在我的日志中,我收到以下错误:
[AWS S3 404 0.022711 0 retries] head_object(:bucket_name=>"myApp",:key=>"companies/profile_photos/000/000/118/original/2015-09-05_19.05.34.jpg") AWS::S3::Errors::NoSuchKey No Such Key
我验证了我的 S3 凭据是使用 heroku config 设置的,并且它们是有效的。
我不确定,但我怀疑这可能与我最近添加的以下构建包有关:
=== myApp Buildpack URLs
1. https://github.com/bobbus/image-optim-buildpack.git
2. https://github.com/heroku/heroku-buildpack-ruby.git
我无法在 localhost 上重现该问题。
更新
我已经在这个问题上打开了issue report。
这是我在production.rd 中的config.paperclip_defaults 块
config.paperclip_defaults = {
:storage => :s3,
:s3_protocol => :https,
:s3_host_name => 's3.amazonaws.com',
:s3_credentials => {
:bucket => ENV['S3_BUCKET_NAME'],
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
}
}
这是我的aws.yml:
development:
access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %>
secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
production:
access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %>
secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
【问题讨论】:
标签: ruby-on-rails heroku amazon-s3 paperclip aws-sdk