我使用回形针,雾,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'