ruby-on-rails – Carrierwave / Fog / S3“不是公认的存储提供商”

我有一个使用Carrierwave进行文件上传的Rails应用程序.它一直工作正常,但我想开始使用Amazon S3进行图像存储.我收到此错误
ArgumentError ( is not a recognized storage provider):
  app/controllers/salons_controller.rb:52:in `update'

我已经确定我有Carrierwave和Fog的最新宝石.这是在我的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'}

结束

Uploader类看起来像:

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

如果我将存储更改回’file’,它可以正常工作.将存储设置为“雾”会生成错误.

解决方法

好吧,我是个白痴.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...