缺少必需的参数:aws_access_key_id、aws_secret_access_key(参数错误) bin/ra



当我运行时:

$ 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]

来管理我的环境变量。

请帮忙。

根据共享的规范,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文件中设置它们的值

相关内容

最新更新