0

私は Paperclip と AWS を使用しており、アップロードをローカル ホストで正常に動作させることができます。私が遭遇する問題は、アプリを Heroku にアップロードするときに次のようになることです。

AWS::S3::Errors::SignatureDoesNotMatch (The request signature we calculated does not match the signature you provided. Ch

キーと署名方法を確認してください。)

場所.rb

has_attached_file :photo,
                :styles => { :thumb => "150x150#", :medium => "200x200#", :small => "50x50"},
                :path => ":attachment/:id/:style.:extension",
                :s3_domain_url => "adsimgstore.s3.amazonaws.com",
                :storage => :s3,
                :s3_credentials => S3_CREDENTIALS,
                :bucket => 'adsimgstore',
                :s3_permissions => :public_read,
                :convert_options => { :all => "-auto-orient" }

s3初期化

# initializers/s3.rb
if Rails.env == "production"
 # set credentials from ENV hash
 S3_CREDENTIALS = { :access_key_id => ENV['S3_KEY'], :secret_access_key => ENV['S3_SECRET'],   :bucket => "adsimgstore"}
else
  # get credentials from YML file
  S3_CREDENTIALS = Rails.root.join("config/s3.yml")
end

Heroku チュートリアルhttps://devcenter.heroku.com/articles/s3に従い、すべてのキーを追加しました

助言がありますか?

 AWS::S3::Errors::SignatureDoesNotMatch (The request signature we calculated does not match the     signature you provided. Ch
eck your key and signing method.):
2012-05-01T18:01:02+00:00 app[web.1]: 
2012-05-01T18:01:02+00:00 app[web.1]:   app/controllers/locations_controller.rb:76:in `block in     update'
2012-05-01T18:01:02+00:00 app[web.1]:   app/controllers/locations_controller.rb:75:in `update'
2012-05-01T18:01:02+00:00 app[web.1]: 
4

1 に答える 1

1
  • 環境変数が一致するかどうかを確認します

heroku チュートリアルに従った場合、環境変数はAWS_ACCESS_KEY_IDandになりAWS_SECRET_ACCESS_KEYます。

実行heroku configして環境変数を確認します。

  • いいえ:bucket資格情報

ファイルの-hash に:bucketオプションを入れます。バケットオプションはここには属しません - メソッドですでに設定しています。S3_CREDENTIALSinitializers/s3.rbhas_attached_file

于 2012-05-04T17:58:14.407 に答える