2016-11-07 49 views
0

我使用回形针,雾,figaro宝石上传图像到亚马逊S3。在生产工作正常,因为我手工推出了heroku中的env变量。设置导轨雾宝石application.yml键为开发环境

但是在开发过程中,它使用了aplication.yml文件中的env(添加到.gitignore)。它不使用这个文件,因为在开发中,放置在application.yml中的ENV []不存在。

我跟着这几个教程,并在所有这些我明白,ENV中applicaction.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)。

我怀疑再为你工作应该得到的东西。