AWS S3をrailsアプリに設定したいのですが、うまくいきません。
コードに直接アクセスキー、シークレットキーを入力した場合に成功したので、おそらく環境変数が設定できていないかと思うのですが。。
開発環境:
Ruby on Rails 5.0.0.1
Heroku
AWS S3
###テスト環境でできません
エラーメッセージ
Ruby
1Excon::Error::Forbidden in Admin::SpacesController#update 2Expected(200) <=> Actual(403 Forbidden) excon.error.response :body => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n 3<Error><Code>InvalidAccessKeyId</Code><Message>The AWS Access Key Id you provided does not exist in our records.</Message> 4<AWSAccessKeyId>AWS_ACCESS_KEY</AWSAccessKeyId>
.env
APP_ID="XXXXXXXXXXX" APP_SECRET="XXXXXXXXXXXXXXXXXXXXXXXX" AWS_ACCESS_KEY="XXXXXXXXXXXXXXXXX" AWS_SECRET_KET="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
###本番環境でできません
heroku config:set コマンドよりそれぞれ設定しているのですが、できません。。
アップロードするとサーバーエラーとなります。
heroku logs の該当箇所は下記かと思われます。
Ruby
12017-05-31T06:21:25.800577+00:00 app[web.1]: D, [2017-05-31T06:21:25.800494 #6] DEBUG -- : [f26ed52b-733a-4f63-8ed4-8a3d74d379b9] (0.7ms) BEGIN 22017-05-31T06:21:25.833185+00:00 app[web.1]: D, [2017-05-31T06:21:25.833073 #6] DEBUG -- : [f26ed52b-733a-4f63-8ed4-8a3d74d379b9] SQL (1.2ms) UPDATE "spaces" SET "image" = $1, "updated_at" = $2 WHERE "spaces"."id" = $3 [["image", "20170531062125.jpg"], ["updated_at", 2017-05-31 06:21:25 UTC], ["id", 1]] 32017-05-31T06:21:33.390111+00:00 heroku[router]: at=info method=POST path="/admin/spaces/1" request_id=f26ed52b-733a-4f63-8ed4-8a3d74d379b9 fwd="126.112.54.50,103.22.200.241" dyno=web.1 connect=0ms service=10118ms status=500 bytes=1749 protocol=http 42017-05-31T06:21:33.382359+00:00 app[web.1]: D, [2017-05-31T06:21:33.382267 #6] DEBUG -- : [f26ed52b-733a-4f63-8ed4-8a3d74d379b9] (0.6ms) ROLLBACK
##追記
carrierwave.rb
Ruby
1CarrierWave.configure do |config| 2 config.fog_credentials = { 3 provider: 'AWS', 4 aws_access_key_id: 'XXXXXXXXXXXXXXXXXXXX', 5 aws_secret_access_key: 'AWS_SECRET_KET', 6 region: 'ap-northeast-1' 7 } 8 9 case Rails.env 10 when 'production' 11 config.fog_directory = 'xxxxx-production' 12 config.asset_host = 'https://s3-ap-northeast-1.amazonaws.com/xxxxx-production' 13 14 when 'development' 15 config.fog_directory = 'xxxxx-development' 16 config.asset_host = 'https://s3-ap-northeast-1.amazonaws.com/xxxxx-development' 17 end 18end
dotenvはここ以外に記載しておりません。
.env
APP_ID="XXXXXXXXXXX" APP_SECRET="XXXXXXXXXXXXXXXXXXXXXXXX" AWS_ACCESS_KEY="XXXXXXXXXXXXXXXXX" AWS_SECRET_KET="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
なにか別の作業が必要でしょうか?
初心者で本当にすみません。
回答4件
あなたの回答
tips
プレビュー