每当我尝试运行db:migrate
或heroku run console
时,我都会ArgumentError: Missing required arguments: aws_secret_access_key
我为heroku config:set
和AWS_ACCESS_KEY_ID
S3_BUCKET AWS_SECRET_ACCESS_KEY. Afterwards I run heroku config and see those two and the
heroku运行控制台已完成correct. Then I run
,我收到错误。
我也加入了我的IAM管理控制台,并为我的用户提供了AmazonS3FullAccess
政策。虽然这没有任何作用。
我也使用config/application.yml
gem中的figaro
来存储我的密钥,但这也没有什么不同。
我想知道如何解决这个问题,有谁知道要知道什么?
carrierwave.rb:
if Rails.env.production?
CarrierWave.configure do |config|
config.root = Rails.root.join('tmp') # adding these...
config.cache_dir = 'carrierwave' # ...two lines
config.fog_credentials = {
# Configuration for Amazon S3
:provider => 'AWS',
:aws_access_key_id => ENV['S3_ACCESS_KEY'],
:aws_secret_access_key => ENV['S3_SECRET_KEY'],
:region => 'us-west-2',
:host => 's3.example.com',
:endpoint => 'https://s3.example.com:8080'
}
config.fog_directory = ENV['S3_BUCKET']
config.fog_public = false # optional, defaults to true
config.fog_attributes = {'Cache-Control'=>'max-age=315576000'} # optional, defaults to {}
end
end
答案 0 :(得分:1)
您已设置环境变量AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
,但您的应用程序会读取S3_ACCESS_KEY
和S3_SECRET_KEY
个环境变量。