我有一个使用Carrierwave文件上传一个Rails应用程序。 据工作正常,但我要开始使用Amazon S3为我的图像存储。 我得到这个错误:
ArgumentError ( is not a recognized storage provider):
app/controllers/salons_controller.rb:52:in `update'
我已经确定我有Carrierwave与雾最新的宝石。 这是我的Gemfile:
gem 'carrierwave'
gem 'aws-sdk'
gem 'fog'
fog.rb的样子:
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS',
:aws_access_key_id => 'MYACCESSKEY',
:aws_secret_access_key => 'MYSECRETKACCESSKEY',
:region => 'us-east-1'
}
config.fog_directory = 'andrunix'
config.fog_public = true
config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}
结束
在上传类的样子:
class SalonImageUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
storage :fog
def store_dir
# "andrunix" is the bucket name on S3
"andrunix/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
如果我更改存储回“文件”,它工作正常。 设置存储为“雾”产生这个错误。