使用carrierwave和雾的时候上传文件到S3缺少需求(Missing requirement

2019-07-17 16:49发布

我得到这个错误Missing required arguments: aws_access_key_id, aws_secret_access_key 。 这似乎不可思议,因为我已经在初始化文件夹中添加carrierwave.rb。 访问/密钥作品完美,当我使用AWS-SDK

CarrierWave.configure do |config|
  config.fog_credentials = {
    provider: "AWS",
    aws_access_key_id: ENV["PUB-KEY"],
    aws_secret_access_key: ENV["SEC-KEY"]
  }
  config.fog_directory = ENV["mybucket"] 
end

Answer 1:

下面是我的工作一个是这样的:

CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',
    :aws_access_key_id      => ENV['S3_KEY'],
    :aws_secret_access_key  => ENV['S3_SECRET'],
    :region                 => 'us-east-1'
  }
  config.fog_directory  = ENV['S3_BUCKET']
end

对于生产,我添加了键S3_KEYS3_SECRETS3_BUCKET 。 对于开发和测试,我使用的初始化是在.gitignore文件:

# .gitignore
/config/initializers/app_environment_variables.rb

并且在初始化

# config/initializers/app_environment_variables.rb

ENV['S3_KEY'] = "********************"
ENV['S3_SECRET'] = "**************************..."
ENV['S3_BUCKET'] = "**********-dev"


Answer 2:

生产和开发的结构是不同的。 你需要把AWS键在发展了。

我只是复制AWS键从

config/environments/production.rb

config/environments/development.rb

和一切工作正常。



文章来源: Missing requirement when using carrierwave and fog to upload file to S3