2017-01-15 15 views
1

Я продолжаю получать эту ошибку, когда я пытаюсь запустить сервер validate_options': Missing required arguments: aws_access_key_id, aws_secret_access_key (ArgumentError) Я не могу решить проблему! Я почти уверен, что проблема вызвана Carrierwave и туманными камнями для использования амазонки s3. Но я точно не знаю, в какой папке проблема!Отсутствие необходимых аргументов: aws_access_key_id, aws_secret_access_key на сервере

Вот мой инициализатор/carrierwave.rb:

CarrierWave.configure do |config| 
    config.fog_credentials = { 
    :provider => 'AWS',      # required 
    :aws_access_key_id => ENV["S3_ACCESS_KEY"],      # required 
    :aws_secret_access_key => ENV["S3_SECRET_KEY"]      # required 
    } 
    config.fog_directory = ENV["S3_BUCKET"]       # required 
end 

вот мой журнал:

=> Booting WEBrick 
=> Rails 4.2.5 application starting in development on http://0.0.0.0:8080 
=> Run `rails server -h` for more startup options 
=> Ctrl-C to shutdown server 
Exiting 
/usr/local/rvm/gems/ruby-2.3.0/gems/fog-core-1.43.0/lib/fog/core/service.rb:244:in `validate_options': Missing required arguments: aws_access_key_id, aws_secret_access_key (ArgumentError) 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/fog-core-1.43.0/lib/fog/core/service.rb:268:in `handle_settings' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/fog-core-1.43.0/lib/fog/core/service.rb:98:in `new' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/fog-core-1.43.0/lib/fog/core/services_mixin.rb:16:in `new' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/fog-core-1.43.0/lib/fog/storage.rb:27:in `new' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/carrierwave-1.0.0/lib/carrierwave/uploader/configuration.rb:123:in `eager_load_fog' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/carrierwave-1.0.0/lib/carrierwave/uploader/configuration.rb:136:in `fog_credentials=' 
     from /home/ubuntu/workspace/config/initializers/carrierwave.rb:2:in `block in <top (required)>' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/carrierwave-1.0.0/lib/carrierwave/uploader/configuration.rb:158:in `configure' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/carrierwave-1.0.0/lib/carrierwave.rb:14:in `configure' 
     from /home/ubuntu/workspace/config/initializers/carrierwave.rb:1:in `<top (required)>' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:in `load' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:in `block in load' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:240:in `load_dependency' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:in `load' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/engine.rb:652:in `block in load_config_initializer' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-4.2.5/lib/active_support/notifications.rb:166:in `instrument' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/engine.rb:651:in `load_config_initializer' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/engine.rb:616:in `block (2 levels) in <class:Engine>' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/engine.rb:615:in `each' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/engine.rb:615:in `block in <class:Engine>' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/initializable.rb:30:in `instance_exec' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/initializable.rb:30:in `run' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/initializable.rb:55:in `block in run_initializers' 
     from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:228:in `block in tsort_each' 
     from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component' 
     from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:422:in `block (2 levels) in each_strongly_connected_component_from' 
     from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:431:in `each_strongly_connected_component_from' 
     from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:421:in `block in each_strongly_connected_component_from' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/initializable.rb:44:in `each' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/initializable.rb:44:in `tsort_each_child' 
     from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:415:in `call' 
     from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:415:in `each_strongly_connected_component_from' 
     from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:349:in `block in each_strongly_connected_component' 
     from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:347:in `each' 
     from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:347:in `call' 
     from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:347:in `each_strongly_connected_component' 
     from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:226:in `tsort_each' 
     from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/tsort.rb:205:in `tsort_each' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/initializable.rb:54:in `run_initializers' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/application.rb:352:in `initialize!' 
     from /home/ubuntu/workspace/config/environment.rb:5:in `<top (required)>' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:274:in `require' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:274:in `block in require' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:240:in `load_dependency' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:274:in `require' 
     from /home/ubuntu/workspace/config.ru:3:in `block in <main>' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/rack-1.6.5/lib/rack/builder.rb:55:in `instance_eval' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/rack-1.6.5/lib/rack/builder.rb:55:in `initialize' 
     from /home/ubuntu/workspace/config.ru:in `new' 
     from /home/ubuntu/workspace/config.ru:in `<main>' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/rack-1.6.5/lib/rack/builder.rb:49:in `eval' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/rack-1.6.5/lib/rack/builder.rb:49:in `new_from_string' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/rack-1.6.5/lib/rack/builder.rb:40:in `parse_file' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/rack-1.6.5/lib/rack/server.rb:299:in `build_app_and_options_from_config' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/rack-1.6.5/lib/rack/server.rb:208:in `app' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/commands/server.rb:61:in `app' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/rack-1.6.5/lib/rack/server.rb:336:in `wrapped_app' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/commands/server.rb:139:in `log_to_stdout' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/commands/server.rb:78:in `start' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:80:in `block in server' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:75:in `tap' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:75:in `server' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:39:in `run_command!' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.5/lib/rails/commands.rb:17:in `<top (required)>' 
     from /home/ubuntu/workspace/bin/rails:9:in `require' 
     from /home/ubuntu/workspace/bin/rails:9:in `<top (required)>' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/spring-2.0.0/lib/spring/client/rails.rb:28:in `load' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/spring-2.0.0/lib/spring/client/rails.rb:28:in `call' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/spring-2.0.0/lib/spring/client/command.rb:7:in `call' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/spring-2.0.0/lib/spring/client.rb:30:in `run' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/spring-2.0.0/bin/spring:49:in `<top (required)>' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/spring-2.0.0/lib/spring/binstub.rb:31:in `load' 
     from /usr/local/rvm/gems/ruby-2.3.0/gems/spring-2.0.0/lib/spring/binstub.rb:31:in `<top (required)>' 
     from /home/ubuntu/workspace/bin/spring:13:in `require' 
     from /home/ubuntu/workspace/bin/spring:13:in `<top (required)>' 
     from bin/rails:3:in `load' 
     from bin/rails:3:in `<main>' 
+0

Вы настраиваете 'S3_ACCESS_KEY' и' S3_SECRET_KEY' в своей среде? Если да, то как? Похоже, что он не работает. – Max

ответ

1

ОБНОВЛЕНО

Объявить учетные данные AWS в одном из файла YML (secrets.yml для пример) следующим образом:

AWS_ACCESS_KEY_ID: XXXXXXXXXXXXXXXXXXXX 
AWS_SECRET_ACCESS_KEY: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
ARTIFACTS_REGION: eu-central-1 
ARTIFACTS_BUCKET: some_bucket 

Не забудьте добавить файл с учетными данными для .gitignore

Затем использовать свои учетные данные в файле конфигурации (carrierwave carrierwave.rb), как это:

config.fog_credentials = { 
    provider:    'AWS',    
    aws_access_key_id:  ENV['AWS_ACCESS_KEY_ID'],   
    aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],    
    region:    ENV['ARTIFACTS_REGION']    
} 

Обновлено

Чтобы управлять переменными среды проще, попробуйте Figaro gem. Возможно, это разоблачит вашу актуальную проблему, и вы ее решите.

+0

Без 'ENV'? А как насчет 'ARTIFACTS_REGION', что я могу заменить? – hekmat

+0

@hekmat Вы объявляете переменные в одном из ваших * .yml-файлов (например, 'secrets.yml') следующим образом:' AWS_ACCESS_KEY_ID: XXXXXXXXXXXXXXXXXXX'. Затем вы используете его в блоке 'config.fog_credentials' следующим образом:' aws_access_key_id: ENV ['AWS_ACCESS_KEY_ID'] ' – VAD

+0

О, я вижу. Я думал, что вы назвали переменные учетных данных AWS неправильными именами. Но, похоже, вы их вообще не объявляли. Поэтому я обновляю свой ответ – VAD

1

Обычно это происходит либо из значений, которые не заданы в env, либо случайно ошибочны.

Есть несколько возможных способов управления, но в развитии самый прямой путь с экспортом, как это:

export S3_ACCESS_KEY=[...]

Если вы заполняете [...] части с вашим значением (и повторите для трех различных переменных), он должен иметь возможность найти все.

Вы также можете проверить текущие значения этих, используя эхо, как это:

echo $S3_ACCESS_KEY

Если установить значение правильно, он должен напечатать значение для вашего терминала. Если значение не задано, оно просто напечатает пустую строку (если есть пустая строка для любого из значений, это приведет к ошибке, которую вы видите).

 Смежные вопросы

  • Нет связанных вопросов^_^