db:migrate gives ArgumentError: Missing required arguments: aws_secret_access_key

db:migrate gives ArgumentError: Missing required arguments: aws_secret_access_key

每次我尝试 运行 db:migrateheroku run console,我得到 ArgumentError: Missing required arguments: aws_secret_access_key

我已经为 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY. Afterwards I run heroku config and see those two and theS3_BUCKETcorrect. Then I runheroku 运行 console 完成了 heroku config:set,我得到了错误。

我还使用了我的 IAM management 控制台,并为我的用户提供了 AmazonS3FullAccess 策略。虽然这没有任何作用。

我也在使用 figaro gem 中的 config/application.yml 来存储我的密钥,但这也没有什么不同。

我不知道如何解决这个问题,有人知道该知道什么吗?

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 

您已设置环境变量 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY,但您的应用程序读取 S3_ACCESS_KEYS3_SECRET_KEY 环境变量。