2016-12-06 60 views
3

儘管下面這個post,並找到類似的答案here,並here,我還是我越來越引發ArgumentError:缺少必需參數:aws_access_key_id,aws_secret_access_key當部署到Heroku的

ArgumentError: Missing required arguments: aws_access_key_id, aws_secret_access_key`

,當我嘗試使用Carrierwave部署到Heroku的和Fog寶石可以將圖像上傳到Amazon S3。

/config/initializers/carrierwave.rb:

if Rails.env.production? 
    CarrierWave.configure do |config| 
    config.fog_credentials = { 

     :provider    => 'AWS', 
     :aws_access_key_id  => ENV['S3_ACCESS_KEY'], 
     :aws_secret_access_key => ENV['S3_SECRET_KEY'], 
     :region    => ENV['S3_REGION'] 
    } 
    config.fog_directory  = ENV['S3_BUCKET'] 
    end 
end 

我設置Heroku的配置是這樣的:

S3_ACCESS_KEY: ABCDEFGHIJKPMNOPQRS 
S3_BUCKET:  mybucket12345 
S3_REGION:  us-west-2 
S3_SECRET_KEY: 1234567890ABCDEFGHIJKLMNOPQRSTUVWZYZ1234 

日誌:

Running: rake assets:precompile 
remote:  rake aborted! 
remote:  ArgumentError: Missing required arguments: aws_access_key_id, aws_secret_access_key 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/fog-core-1.43.0/lib/fog/core/service.rb:244:in `validate_options' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/fog-core-1.43.0/lib/fog/core/service.rb:268:in `handle_settings' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/fog-core-1.43.0/lib/fog/core/service.rb:98:in `new' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/fog-core-1.43.0/lib/fog/core/services_mixin.rb:16:in `new' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/fog-core-1.43.0/lib/fog/storage.rb:27:in `new' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/carrierwave-0.11.2/lib/carrierwave/uploader/configuration.rb:83:in `eager_load_fog' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/carrierwave-0.11.2/lib/carrierwave/uploader/configuration.rb:96:in `fog_credentials=' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/config/initializers/carrierwave.rb:2:in `block in <top (required)>' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/carrierwave-0.11.2/lib/carrierwave/uploader/configuration.rb:118:in `configure' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/carrierwave-0.11.2/lib/carrierwave.rb:14:in `configure' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/config/initializers/carrierwave.rb:1:in `<top (required)>' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:287:in `load' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:287:in `block in load' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:259:in `load_dependency' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:287:in `load' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/railties-5.0.0.1/lib/rails/engine.rb:648:in `block in load_config_initializer' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/notifications.rb:166:in `instrument' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/railties-5.0.0.1/lib/rails/engine.rb:647:in `load_config_initializer' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/railties-5.0.0.1/lib/rails/engine.rb:612:in `block (2 levels) in <class:Engine>' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/railties-5.0.0.1/lib/rails/engine.rb:611:in `each' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/railties-5.0.0.1/lib/rails/engine.rb:611:in `block in <class:Engine>' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/railties-5.0.0.1/lib/rails/initializable.rb:30:in `instance_exec' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/railties-5.0.0.1/lib/rails/initializable.rb:30:in `run' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/railties-5.0.0.1/lib/rails/initializable.rb:55:in `block in run_initializers' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/railties-5.0.0.1/lib/rails/initializable.rb:44:in `each' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/railties-5.0.0.1/lib/rails/initializable.rb:44:in `tsort_each_child' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/railties-5.0.0.1/lib/rails/initializable.rb:54:in `run_initializers' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/railties-5.0.0.1/lib/rails/application.rb:352:in `initialize!' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/config/environment.rb:5:in `<top (required)>' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `block in require' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:259:in `load_dependency' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/railties-5.0.0.1/lib/rails/application.rb:328:in `require_environment!' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/railties-5.0.0.1/lib/rails/application.rb:448:in `block in run_tasks_blocks' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/sprockets-rails-3.2.0/lib/sprockets/rails/task.rb:62:in `block (2 levels) in define' 
remote:  /tmp/build_d869b0ccafedcf0c55d666f657f499ac/vendor/bundle/ruby/2.2.0/gems/rake-11.3.0/exe/rake:27:in `<top (required)>' 
remote:  Tasks: TOP => environment 
remote:  (See full trace by running task with --trace) 
remote: ! 
remote: !  Precompiling assets failed. 
remote: ! 
remote: !  Push rejected, failed to compile Ruby app. 
remote: 
remote: !  Push failed 
+0

你能分享嘗試部署當你在日誌中看到的輸出? – geemus

+0

@geemus添加了日誌。 – DavidK

+0

對不起,它一直令人沮喪,我以前見過這個,它通常是簡單的東西(不幸的是這很容易讓人忽視)。 我注意到你的代碼用'Rails.env.production?'封裝了配置設置,是否有可能在Heroku上下文中返回false?如果是這樣,配置永遠不會被設置,這會導致這個錯誤。 否則,我不確定。當我看到這一點之前,它往往是一個鍵(或類似)的拼寫錯誤,但這似乎並不是這裏的情況。 – geemus

回答

0

嘗試:

  1. 添加到您的Gemfile:gem "figaro"

  2. figaro heroku:set -e production

  3. rake figaro:heroku

  4. 再次推到Heroku的

相關問題