Я настраиваю новое приложение 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]
Есть предложения, что я могу делать не так?