Переменные ENV при выполнении команд Rails (миграция, другие) - PullRequest
0 голосов
/ 04 октября 2018

Использование Carrierwave и fog, и все работает нормально с AWS, но когда я пытаюсь выполнить миграцию и некоторые другие команды rails, я получаю:

lib/fog/core/service.rb:244:in validate_options: Missing required arguments: aws_access_key_id, aws_secret_access_key (ArgumentError)

Это также происходит с консолью Rails.Я думаю, что по какой-то причине rails не может получить доступ к моим переменным ENV по какой-то причине?Но он работает при работе как часть сервера Rails ...

Есть мысли о том, почему?Ключ aws определен ниже:

CarrierWave.configure do |config|

  config.fog_provider = 'fog/aws'
  config.fog_credentials = {

    provider: 'AWS',
    aws_access_key_id: ENV['AWS_ACCESS_KEY'],
    aws_secret_access_key: ENV['AWS_SECRET'],
    region: 'eu-west-2'
  }
  config.fog_directory = 'images' # bucket name


  config.cache_dir = "#{Rails.root}/tmp/uploads" # To let CarrierWave work on heroku
end

1 Ответ

0 голосов
/ 04 октября 2018

Не ответ на поставленный выше вопрос, но, как OP снова попросил совета ...

Прекратите использовать переменные ENV в разработке.Создайте файл secrets.yml, и вы сможете получить доступ к этим значениям в своем проекте.Убедитесь, что вы добавили это в свой файл .gitignore, поскольку это, очевидно, не очень хорошая идея.

Очень краткое, краткое изложение того, как использовать секреты:

https://richonrails.com/articles/the-rails-4-1-secrets-yml-file

...