2

Paperclip+S3 可以在本地机器上工作,但不能在 Heroku 上工作。它说“AWS::S3::Errors::SignatureDoesNotMatch”

2012-04-20T21:24:37+00:00 app[web.1]: 参数:{"utf8"=>"Γ£ô", "authenticit y_token"=>"MHt20N64y9L24Ga2y6gGj8hX06U+td17XIRdqMadcCQ=", "post" =>{"title"=>"test t", "organisation_id"=>"1", "content"=>"weeqw", "attachments_attributes"=>{"0"=> {"pic"=>#> }}},“提交”=>“创建帖子”} 2012-04-20T21:24:41+00:00 app[web.1]:在 344 6 毫秒内完成 500 内部服务器错误 2012-04-20T21:24: 41+00:00 app[web.1]: 2012-04-20T21:24:41+00:00 app[web.1]: AWS::S3::Errors::SignatureDoesNotMatch(我们计算的请求签名确实与您提供的签名不匹配。请检查您的密钥和签名方法。):

这是我的 attachment.rb 模型:

   has_attached_file :pic, :styles => { :medium => "500x280>",:slide => "180x260>", :thumb => "150x100#" },     
:storage => :s3,
             :bucket => 'sample_bucket',
             :s3_credentials => {
               :access_key_id => 'ASDDSAMPLEKEYDFSDF',
               :secret_access_key => 'Dfsdf887-sample-secret-key-dfdsasd',
             }

这个错误的原因可能是什么?

4

2 回答 2

1

我在 Heroku 遇到了一些类似的问题,发现了这个https://rubygems.org/gems/paperclip-aws

这解决了我的问题。

于 2012-05-07T16:05:30.887 回答
1

我有回形针 2.4.5,这是模型内部的定义:

has_attached_file :logo,
                :path => "assets/:class/:attachment/:id/:style.:extension",
                :storage => :s3,
                :bucket => ENV['S3_BUCKET'],
                :s3_permissions => 'authenticated-read',
                :s3_protocol => "http",
                :s3_credentials => { :access_key_id => ENV['S3_KEY'],
                                     :secret_access_key => ENV['S3_SECRET'] },
                :styles => { :index => "72x72>",
                             :billboard => "120x120>" }
于 2012-04-21T00:44:50.693 回答