Учетные данные AWS не найдены в рабочей среде

Я развертываю приложение rails для производства, используя гем refile для загрузки файлов и подключаюсь к s3 для хранения. Все отлично работает в разработке. Я получаю следующую ошибку при попытке загрузить новое изображение или получить существующее:

E, [2015-01-30T16:59:02.841941 #29551] ERROR -- : Refile::App: Error -> 
Missing Credentials.

Unable to find AWS credentials.  You can configure your AWS credentials
a few different ways:

* Call AWS.config with :access_key_id and :secret_access_key

* Export AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY to ENV

* On EC2 you can run instances with an IAM instance profile and credentials
  will be auto loaded from the instance metadata service on those
  instances.

* Call AWS.config with :credential_provider.  A credential provider should
  either include AWS::Core::CredentialProviders::Provider or respond to
  the same public methods.

= Ruby on Rails

In a Ruby on Rails application you may also specify your credentials in
the following ways:

* Via a config initializer script using any of the methods mentioned above
  (e.g. RAILS_ROOT/config/initializers/aws-sdk.rb).

* Via a yaml configuration file located at RAILS_ROOT/config/aws.yml.
  This file should be formated like the default RAILS_ROOT/config/database.yml
  file.

E, [2015-01-30T16:59:02.842423 #29551] ERROR -- : Refile::App: /home/deploy/real_org/shared/bundle/ruby/2.1.0/gems/aws-sdk-v1-1.60.2/lib/aws/core/credential_providers.rb:140:in `credentials'

Я настроил учетные данные в файле RAILS_ROOT/config/initializers/aws-sdk.rb следующим образом.

require 'aws-sdk'

AWS.config(access_key_id: ENV["AWS_ACCESS_KEY_ID"], secret_access_key: ENV["AWS_SECRET_KEY"])

И я подтвердил, что переменные env существуют, набрав

$: echo $AWS_SECRET_KEY

$: echo $AWS_ACCESS_KEY_ID

который возвращает ключи правильно. Есть идеи?


person Jeff See    schedule 30.01.2015    source источник
comment
github.com/laserlemon/figaro   -  person Brad Werth    schedule 31.01.2015
comment
Проверьте здесь для прохождения - возможно, это поможет: stackoverflow.com/questions/28443923/   -  person David    schedule 27.02.2015


Ответы (1)


Убедитесь, что ключи производства также установлены. Производство и разработка — это две разные среды. Если вы развернули что-то вроде heroku, вам придется установить их либо вручную, либо с помощью чего-то вроде драгоценного камня figaro, о котором упоминал Брэд.

Вот некоторые ресурсы

http://www.gotealeaf.com/blog/managing-environment-configuration-variables-in-rails

person Clam    schedule 31.01.2015
comment
Я думаю, что все ключи установлены правильно - я действительно могу загружать изображения на S3 через Refile в консоли. Кажется, я не могу воспроизвести проблему в консоли, интересно, поможет ли это посмотреть в другом направлении. - person Jeff See; 31.01.2015