我已使用以下方式使用AWS凭据设置heroku配置变量:
heroku config:set S3_ACCESS_KEY=<....>
heroku config:set S3_SECRET_KEY=<....>
heroku config:set S3_BUCKET=<....>
并在heroku上验证了它们:
heroku run rails console
CarrierWave.configure do |config|
puts config.fog_directory
puts config.fog_credentials
end
在我的config / initializers / carrier_wave.rb文件中,我有:
if Rails.env.production?
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS',
:aws_access_key_id => ENV['S3_ACCESS_KEY'],
:aws_secret_access_key => ENV['S3_SECRET_KEY']
}
config.fog_directory = ENV['S3_BUCKET']
end
end
在app / uploaders / picture_uploader.rb文件中我有:
if Rails.env.production?
storage :fog
else
storage :file
end
在heroku上部署应用程序时,一切似乎都没问题,但尝试上传文件会导致应用程序错误页面...这是否与AWS而不是我的代码有关?