【问题标题】:Fail to deploy in heroku when using carrier wave and S3使用载波和S3时在heroku中部署失败
【发布时间】:2016-02-10 01:47:20
【问题描述】:

我是 Rails 的新手。

现在正在使用 ruby​​ 和 rails 的教程。在其中一节中,我们使用载波和 AWS S3 进行照片存储。

当我在 heroku 中部署时,出现这样的错误:

“ArgumentError:缺少必需的参数:aws_access_key_id、aws_secret_access_key”

我在 carrir_wave.rb 上写如下:

if Rails.env.production?
  CarrierWave.configure do |config|
    config.fog_credentials = {
      # Configuration for Amazon S3
      :provider              => 'AWS',
      :aws_access_key_id     => ENV['******************'],
      :aws_secret_access_key => ENV['*************************']
      }
    config.fog_directory     =  ENV['*******************']
  end
end

当我在终端运行测试时,所有测试都很好。

我一直在通过以下方式在 heroku 上设置凭据:

$ heroku config:set S3_ACCESS_KEY=<access key>
$ heroku config:set S3_SECRET_KEY=<secret key>
$ heroku config:set S3_BUCKET=<bucket name>

非常感谢任何人的帮助。

【问题讨论】:

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


    【解决方案1】:

    在 config/initializers 文件夹中创建一些carrierwave.rb filr,并将以下代码 sn-p 放入carrierwave.rb 文件中

    CarrierWave.configure do |config|
      config.fog_credentials = {
        provider:              'AWS',                          # required
        aws_access_key_id:     ENV['AWS_ACCESS_KEY_ID'],       # required
        aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']    # required
      }
      config.fog_directory  =  ENV['S3_BUCKET_NAME']                # required
    end
    

    并将以下键的值放在项目文件夹中的某个 .env 文件中 1) AWS_ACCESS_KEY_ID 2) AWS_SECRET_ACCESS_KEY 3) S3_BUCKET_NAME

    然后从终端重新运行您的服务器

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-20
      • 2013-04-08
      • 2021-07-19
      • 2019-11-04
      相关资源
      最近更新 更多