当我跑步时:
$ bin/rake assets:precompile RAILS_ENV=production
我收到此错误:
gems/fog-core-2.1.0/lib/fog/core/service.rb:244:in `validate_options': Missing required arguments: aws_access_key_id, aws_secret_access_key (ArgumentError)
这是我的config/initializers/carrierwave.rb
:
CarrierWave.configure do |config|
config.fog_provider = 'fog/aws'
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: ENV['ACCESS_KEY_ID'],
aws_secret_access_key: ENV['AWS_KEY'],
region: 'ca-central-1'
}
config.fog_directory = ENV['AWS_STORAGE']
config.fog_public = false
config.fog_attributes = { cache_control: "public, max-age=#
{365.days.to_i}" }
end
我正在使用:
gem 'dotenv-rails', groups: [:development, :test]
管理我的环境变量。
请帮忙。
答案 0 :(得分:0)
根据共享的规范,dot-env似乎只适用于开发和测试环境,但不适用于生产。
其次,您需要设置环境变量ACCESS_KEY_ID和AWS_KEY,以便它们在Rails中可用。
您可以在终端中执行此操作:
export ACCESS_KEY_ID=<your access key id>
export AWS_KEY=<your secret key>
将它们添加到.bashrc或.bash_profile中,以便它们在下次启动新shell时使用,或者使用dotenv这样的内容使它们特定于您的项目。
另一种方法是在secrets.yml或.env文件中设置它们的值