在使用fog / aws gem和carrierwave wiki中的说明时,我的应用程序似乎在启动时抛出错误。
我只是想上传到Amazon S3。
抛出的错误是
undefined method `fog_provider=' for CarrierWave::Uploader::Base:Class
Gemfile.rb
gem "fog"
gem "fog-aws"
gem "carrierwave"
初始化/ carrierwave.rb
CarrierWave.configure do |config|
config.permissions = 0666
config.directory_permissions = 0777
config.storage = :fog
config.fog_provider = 'fog/aws'
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: 'KEYID',
aws_secret_access_key: 'SECRETID',
region: 'us-east-1'
}
config.fog_directory = 'bucket-name'
config.fog_public = false
end
答案 0 :(得分:1)
试试这个.................
您的 initializers / carrierwave.rb 看起来像这样。
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS', # required
:aws_access_key_id => 'xxx', # required
:aws_secret_access_key => 'yyy', # required
:region => 'eu-west-1', # optional, defaults to 'us-east-1'
:host => 's3.example.com', # optional, defaults to nil
:endpoint => 'https://s3.example.com:8080' # optional, defaults to nil
}
config.fog_directory = 'name_of_directory' # required
config.fog_public = false # optional, defaults to true
config.fog_attributes = {'Cache-Control'=>'max-age=315576000'} # optional, defaults to {}
end
在您的上传器中,将存储设置为:雾
class AvatarUploader < CarrierWave::Uploader::Base
storage :fog
end
答案 1 :(得分:0)
target
尚未发布。它仅适用于CarrierWave CarrierWave::Uploader::Base:Class#fog_provider=
分支。
解决方案1(使用主人):
将您的master
条目更改为
Gemfile
但不建议这样做,因为它不如发布版本稳定。
解决方案2(检查0.10文档):
在gem "carrierwave", git: "git@github.com:carrierwaveuploader/carrierwave.git"
中,您使用0.10
:provider
fog_credentials=
查看v0.10 here的文档。