Rails 5.2 credentials.yaml.enc и master.key не работают на Heroku - PullRequest
0 голосов
/ 16 мая 2018

Я настраиваю активное хранилище для нового приложения и не смог запустить приложение в рабочем состоянии после настройки учетных данных amazon.

  1. Я включил свои учетные данные s3 bucket в мой credentials.yaml.enc файл
  2. Я добавил свою переменную RAILS_MASTER_KEY env в Heroku.
  3. Я настроил свой s3 bucket в файле storage.yml в соответствии с this .
  4. Я добавил строку config.active_storage.service = :amazon в мой production.rb.
  5. Я добавил config.require_master_key = true к моей продукции. Rb

Когда я пытаюсь запустить свое приложение на Heroku, оно не загружается. Выполнение $ Heroku run rails console выдает ошибку:

"/app/vendor/bundle/ruby/2.3.0/gems/aws-sigv4-1.0.2/lib/aws-sigv4/signer.rb:517:in `extract_credentials_provider': Cannot load `Rails.config.active_storage.service`: (Aws::Sigv4::Errors::MissingCredentialsError)
missing credentials, provide credentials with one of the following options:
- :access_key_id and :secret_access_key
- :credentials
- :credentials_provider"

Насколько я могу судить, я настроил свои учетные данные так, как задумал Rails 5.2. Я перепробовал все виды прекомпиляции ресурсов безрезультатно. Когда я пытаюсь добавить свои учетные данные Amazon в качестве env. переменные в Heroku, приложение отлично работает в производстве. Есть идеи, что здесь может пойти не так?

Ответы [ 4 ]

0 голосов
/ 02 сентября 2018

Уэлп, это было глупо. Тайна разгадана. Мои учетные данные были закомментированы в файле credentials.yaml.enc - я добавил их в начало файла с примером aws по умолчанию, который закомментирован.

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

Может быть, вы забыли добавить config.require_master_key = true к вашему production.rb?

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

Дважды убедитесь, что в вашем файле config/credentials.yml.enc указан правильный ключ.У меня был один перевернутый ключ - secret_key_access вместо secret_access_key, и я получал ту же ошибку.Исправление имени ключа в config/credentials.yml.enc исправило его для меня.

В вашей консоли rails (локально) запустите: Rails.application.credentials.dig(:aws, :access_key_id) и Rails.application.credentials.dig(:aws, :secret_access_key) , чтобы убедиться, что они имеют значения.

0 голосов
/ 17 мая 2018

У меня раньше была эта проблема, похоже, ошибка в Heroku.

Вам просто нужно настроить переменные окружения через панель инструментов на Heroku на вкладке настроек.

Затем вы можете получить к нему доступ, используя ENV [‘NAME_OF_YOUR_VARIABLE’]

Это исправило мою проблему.

Также очень хорошо проверьте свои журналы Heroku, прокрутив вверх, чтобы убедиться, что все драгоценные камни были установлены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...