Не удается загрузить Rails.config.active_storage.service - PullRequest
0 голосов
/ 06 июля 2018

Я настраиваю новое приложение rails 5.2, использующее Active Storage и использующее AWS для размещения изображений в производстве.

Однако у меня проблема с приложением, которое читает учетные данные:

2018-07-06T08:11:52.625415+00:00 app[web.1]: ! Unable to load application: Aws::Sigv4::Errors::MissingCredentialsError: Cannot load `Rails.config.active_storage.service`:
2018-07-06T08:11:52.625432+00:00 app[web.1]: missing credentials, provide credentials with one of the following options:
2018-07-06T08:11:52.625435+00:00 app[web.1]:   - :access_key_id and :secret_access_key
2018-07-06T08:11:52.625437+00:00 app[web.1]:   - :credentials
2018-07-06T08:11:52.625479+00:00 app[web.1]:   - :credentials_provider

Это существующий S3 Bucket, который я создал нового пользователя только для этого приложения. Я доволен CORS и т. Д.

Пользователь настроен в группе S3FullAccess.

Я отредактировал учетные данные в своем приложении через $EDITOR="atom --wait" rails credentials:edit

Содержимое файла:

aws:
  access_key_id: [my access key]
  secret_access_key: [my secrect key]

# Used as the base secret for all MessageVerifiers in Rails, including the one protecting cookies.
secret_key_base: [my secret key base]

Оцените, что это в формате YAML, я играл с использованием одного пробела и одной вкладки на клавишах, но это, похоже, не имеет значения.

Когда я сохраняю и закрываю файл, терминал пишет New credentials encrypted and saved.

У меня также установлено gem 'aws-sdk-s3', '~>1', require: false.

и config / storage.yml

test:
  service: Disk
  root: <%= Rails.root.join("tmp/storage") %>

local:
  service: Disk
  root: <%= Rails.root.join("storage") %>

# Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key)
amazon:
  service: S3
  access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
  secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
  region: eu-west-2
  bucket: [mybucket]

Есть предложения, что я могу делать не так?

Ответы [ 4 ]

0 голосов
/ 25 июля 2019

Это сработало для меня на хуроку. В настройках конфигурации добавьте RAILS_MASTER_KEY в качестве ключа

в вашем config/master.key файле в вашем приложении rails и добавьте цепочку персонажей в качестве значения в heroku.

0 голосов
/ 28 декабря 2018

Еще один способ решения этой проблемы (работал для меня) Запустите rake secret в консоли скопировать ключ зайдите в конфиг и откройте application.rb внутри типа класса: config.secret_key_base = "вставить вывод rake secrete"

0 голосов
/ 05 января 2019

Перейдите на config/environments/development.rb и убедитесь, что у вас есть:

config.active_storage.service = :local

в config/environments/production у вас должно быть

config.active_storage.service = :amazon

amazon для Amazon S3. Его можно изменить на любой сервис хранения, который вы хотите использовать. См. Документацию Rails для получения дополнительной информации о службах хранения и Active Storage.

0 голосов
/ 19 июля 2018

Я думаю, вам не хватает файла master.key на вашем сервере. Проверьте локальный репо в config/master.key (этот файл добавлен в ваш .gitignore по умолчанию). Добавьте этот файл на ваш сервер или установите ENV["RAILS_MASTER_KEY"].

...