Отсутствуют обязательные аргументы: aws_access_key_id, aws_secret_access_key (ArgumentError) ресурсы bin / rake: прекомпиляция RAILS_ENV = production - PullRequest
0 голосов
/ 07 июня 2018

Когда я запускаю:

$ bin/rake assets:precompile RAILS_ENV=production

Я получаю эту ошибку:

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

Это мой config/initializers/carrierwave.rb:

CarrierWave.configure do |config|
  config.fog_provider = 'fog/aws'
  config.fog_credentials = {
  provider:              'AWS',
  aws_access_key_id:     ENV['ACCESS_KEY_ID'],
  aws_secret_access_key: ENV['AWS_KEY'],
  region:                'ca-central-1'
  }
  config.fog_directory  = ENV['AWS_STORAGE']
  config.fog_public     = false
  config.fog_attributes = { cache_control: "public, max-age=# 
  {365.days.to_i}" }
end

Я использую:

gem 'dotenv-rails', groups: [:development, :test]

для управления моей переменной среды.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 07 июня 2018

В соответствии с общими спецификациями кажется, что dot-env работает только для среды разработки и тестирования, но не для производства.

Во-вторых, вам нужно установить переменные среды ACCESS_KEY_ID и AWS_KEY, чтобы они были доступны.в рельсах.

Вы можете сделать это в терминале:

export ACCESS_KEY_ID=<your access key id>
export AWS_KEY=<your secret key>

Добавьте их в ваш .bashrc или .bash_profile, чтобы они сохранялись в следующий раз, когда вы запускаете новую оболочку или используете что-то вроде dotenv, чтобы сделать ихспецифичные для вашего проекта.

Другим способом может быть установка их значений в файле secretts.yml или .env

...