2016-11-07 3 views
0

Я использую paperclip, fog, figaro gems для загрузки изображений на amazon S3. В производстве прекрасно работает, когда я вручную вводил переменные env в герою.set rails fog gem application.yml ключи для среды разработки

Но в разработке он предположительно использует env из файла aplication.yml (добавлен в .gitignore). Он не использует этот файл, так как в разработке ENV [], помещенный в application.yml, не существует.

Я следил за несколькими учебниками для этого, и во всех них я понимаю, что ENV [], введенный в applyaction.yml, должен использоваться. Я ошибаюсь? Я что-то упускаю? Нужно ли мне что-то еще? Я прочитал, что я могу ввести ENV [] путем экспорта вручную набрав, но мне нужно знать, если это не достаточно, чтобы записать их на application.yml

#config/application.yml  
MAPS_API_KEY: 1234googlemapapikey56788 

SECRET_KEY_BASE: ab1234567longkeyy2979127401411124 
AWS_ACCES_KEY_ID: ACCESSKEYID1234567 
AWS_SECRET_ACCESS_KEY: SECRETKEY123456788/jaa\12345 
AWS_REGION: eu-west-1 
S3_HOST_NAME: s3-eu-west-1.amazonaws.com 

development: 
    FOG_DIRECTORY: example-dev 
    S3_BUCKET_NAME: example-dev 
production: 
    FOG_DIRECTORY: example-production 
    S3_BUCKET_NAME: example-production 

в разработке и производстве я использую тот же код:

#config/environments/development.rb && config/environments/production.rb 
config.paperclip_defaults = { 
storage: :s3, 
s3_credentials: { 
    bucket: ENV.fetch('S3_BUCKET_NAME'), 
    access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'), 
    secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'), 
    s3_region: ENV.fetch('AWS_REGION'), 
    } 
} 

в производстве работает отлично, и в развитии я получаю ошибки как: development.rb: 54: в `принести": ключ не найден: "AWS_ACCESS_KEY_ID" (KeyError)

# config/initializers/paperclip.rb 
Paperclip::Attachment.default_options[:url] = ':s3_domain_url' 
Paperclip::Attachment.default_options[:path] = '/:class/:attachment/:id_partition/:style/:filename' 

ответ

0

config/application.yml, указанный выше, имеет опечатку.

Ключ, который вы хотите, это AWS_ACCESS_KEY_ID, но скопированный файл использует AWS_ACCES_KEY_ID (где access отсутствует второй s).

Я подозреваю, что вам снова нужно работать.

Смежные вопросы