【问题标题】:Rails Missing required arguments: aws_access_key_id, aws_secret_access_keyRails 缺少必需的参数:aws_access_key_id、aws_secret_access_key
【发布时间】:2015-10-09 13:34:42
【问题描述】:

我的 Heroku 设置有问题,我正在尝试用

修复它
RAILS_ENV=production bundle exec rake assets:precompile

我收到错误消息

ArgumentError: Missing required arguments: aws_access_key_id, aws_secret_access_key

我该如何解决这个问题?

我已经设置了我的 heroku 环境变量。 heroku config给了

AWS_ACCESS_KEY_ID:           XXXXX
AWS_SECRET_ACCESS_KEY:       XXXXX
DATABASE_URL:                postgres://XXXXX.compute-1.amazonaws.com:XXXXX
RESQL_BLACK_URL:             postgres://XXXXX.compute-1.amazonaws.com:XXXXX                    
LANG:                        en_US.UTF-8
RACK_ENV:                    production
RAILS_ENV:                   production
S3_ACCESS_KEY:               XXXXX
S3_BUCKET:                   XXXXX
S3_SECRET_KEY:               XXXXX
SENDGRID_PASSWORD:           XXXXX
SENDGRID_USERNAME:           XXXXX

我需要向 config/production.rb 添加一些内容吗?我试过这个:

config.aws_access_key_id = ENV['AWS_ACCESS_KEY_ID']
config.aws_secret_access_key = ENV['AWS_SECRET_ACCESS_KEY']

在 config/initializers/carrier_wave.rb 我添加了:

S3Client = Aws::S3::Client.new(
  aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'],
  aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'],
  aws_region: 'us-east-1'
)

但它仍然给出同样的错误。

【问题讨论】:

    标签: ruby-on-rails heroku amazon-s3


    【解决方案1】:

    使用 aws.rb 创建一个初始化器:(或添加,如果你已经拥有它)

    S3Client = Aws::S3::Client.new(
      access_key_id: 'ACCESS_KEY_ID',
      secret_access_key: 'SECRET_ACCESS_KEY',
      region: 'REGION'
    ) 
    

    【讨论】:

    • 查看编辑,我已添加到初始化程序,但仍然得到相同的错误。
    【解决方案2】:

    如果您在本地运行此命令,则问题是您的本地计算机上未设置 ENV。

    Heroku 应该在部署过程中自动预编译您的资产。如果您必须在本地计算机上执行此操作,只需设置 ENV 变量即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多