2015-10-09 2 views
0

Там что-то не так с моей установки Heroku, и я пытаюсь это исправить сRails Недостающие необходимые аргументы: aws_access_key_id, aws_secret_access_key

RAILS_ENV=production bundle exec rake assets:precompile 

Я получаю сообщение об ошибке

ArgumentError: Missing required arguments: aws_access_key_id, aws_secret_access_key 

Как исправить это?

Я установил переменные среды heroku. heroku config дает

AWS_ACCESS_KEY_ID:   XXXXX 
AWS_SECRET_ACCESS_KEY:  XXXXX 
DATABASE_URL:    postgres://XXXXX.compute-1.amazonaws.com:XXXXX 
RESQL_BLACK_URL:    postgres://XXXXX.compute-1.amazonaws.com:XXXXX      
LANG:      en_US.UTF-8 
RACK_ENV:     production 
RAILS_ENV:     production 
S3_ACCESS_KEY:    XXXXX 
S3_BUCKET:     XXXXX 
S3_SECRET_KEY:    XXXXX 
SENDGRID_PASSWORD:   XXXXX 
SENDGRID_USERNAME:   XXXXX 

мне нужно что-то добавить к Config/production.rb ли? Я попытался это:

config.aws_access_key_id = ENV['AWS_ACCESS_KEY_ID'] 
config.aws_secret_access_key = ENV['AWS_SECRET_ACCESS_KEY'] 

В конфигурации/инициализаторах/carrier_wave.rb Я добавил:

S3Client = Aws::S3::Client.new(
    aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'], 
    aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'], 
    aws_region: 'us-east-1' 
) 

, но она по-прежнему дает ту же ошибку.

ответ

0

создать инициализатор с aws.rb с: (или добавить, если у вас уже есть)

S3Client = Aws::S3::Client.new(
    access_key_id: 'ACCESS_KEY_ID', 
    secret_access_key: 'SECRET_ACCESS_KEY', 
    region: 'REGION' 
) 
+0

Что такое aws.rb? – Bazley

+0

ваш инициализатор. – matanco

+0

См. Edit, я добавил к инициализатору, но все равно получаю ту же ошибку. – Bazley

0

Если эта команда выполняется локально, то проблема заключается в том, что ENV не устанавливается на локальный компьютер.

Heroku должен автоматически прекомпилировать ваши активы как часть развертывания. Если вам нужно сделать это на локальном компьютере, просто установите переменную ENV.