使用Carrierwave和fog以及一切都可以在AWS上正常工作,但是当我尝试进行迁移和其他一些rails命令时,我得到了:
lib/fog/core/service.rb:244:in validate_options: Missing required arguments: aws_access_key_id, aws_secret_access_key (ArgumentError)
Rails控制台也会发生这种情况。我认为出于某种原因,rails无法访问我的ENV变量?但是当作为Rails服务器的一部分运行时,它可以工作...
对为什么有任何想法? AWS键定义如下:
CarrierWave.configure do |config|
config.fog_provider = 'fog/aws'
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: ENV['AWS_ACCESS_KEY'],
aws_secret_access_key: ENV['AWS_SECRET'],
region: 'eu-west-2'
}
config.fog_directory = 'images' # bucket name
config.cache_dir = "#{Rails.root}/tmp/uploads" # To let CarrierWave work on heroku
end
答案 0 :(得分:0)
不是上述问题的答案,而是OP再次要求提供任何建议。
在开发中停止使用ENV变量。创建一个secrets.yml文件,您将可以在项目中访问这些值。确保将其添加到您的.gitignore文件中,因为提交它显然不是一个好主意。
关于如何使用机密的简短摘要:
https://richonrails.com/articles/the-rails-4-1-secrets-yml-file