我收到此错误 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
最佳答案
这是我工作的样子:
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
对于生产,我添加了 key S3_KEY
、S3_SECRET
和 S3_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"
关于ruby-on-rails - 使用载波和雾将文件上传到 S3 时缺少要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14098275/