Не удается получить файл из S3 с помощью Rails Active Storage - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь загрузить фотографию на S3 с помощью Rails Active Storage.

Я могу прикрепить фотографию:

user.photo.attach(io: File.open('spec/images/filename.png'), filename: 'filename.png')

Я могу сохранить пользователя и Я могу получить URL-адрес службы фотографий и увидеть ее в браузере и в своем хранилище:

user.photo.service_url

Однако, если я перезапущу консоль и попытаюсь получить URL-адрес службы, я получить следующую ошибку:

Module::DelegationError (service_url delegated to attachment, but attachment is nil)

Вот мои настройки корзины:

storage.yml:

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: us-east-2
  bucket: <%= Rails.application.credentials.dig(:aws, :bucket) %>

application.rb:

config.active_storage.service = :amazon

user.rb:

has_one_attached :photo

У меня также возникают проблемы с использованием public: true в файле storage.yml.

Я получаю следующую ошибку при попытке установить конфигурацию:

ArgumentError (Cannot load `Rails.config.active_storage.service`:)
invalid configuration option `:public'
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: us-east-2
  bucket: <%= Rails.application.credentials.dig(:aws, :bucket) %>
  public: true
...