使用carrierwave和fog将文件上传到S3时缺少要求

时间:2012-12-31 06:28:17

标签: ruby-on-rails amazon-s3 carrierwave fog

我收到此错误Missing required arguments: aws_access_key_id, aws_secret_access_key。这看起来很奇怪,因为我已经在initializers文件夹中添加了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

2 个答案:

答案 0 :(得分:2)

这是我工作的样子:

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"

答案 1 :(得分:0)

生产和开发配置不同。 您还需要将AWS密钥置于开发阶段。

我刚刚从

复制了AWS键
config/environments/production.rb

config/environments/development.rb

一切正常。