我是铁杆的新手。
现在使用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>
我非常感谢任何人的帮助。
答案 0 :(得分:0)
在config / initializers文件夹中创建一些carrierwave.rb filr,并将以下代码段放在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
然后从终端
重新运行您的服务器