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

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Carrierwave / Fog / S3“不是公认的存储提供商”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用Carrierwave进行文件上传的Rails应用程序.它一直工作正常,但我想开始使用Amazon S3进行图像存储.我收到此错误
  1. ArgumentError ( is not a recognized storage provider):
  2. app/controllers/salons_controller.rb:52:in `update'

我已经确定我有Carrierwave和Fog的最新宝石.这是在我的Gemfile中:

  1. gem 'carrierwave'
  2. gem 'aws-sdk'
  3. gem 'fog'

fog.rb看起来像:

  1. CarrierWave.configure do |config|
  2. config.fog_credentials = {
  3. :provider => 'AWS',:aws_access_key_id => 'MYACCESSKEY',:aws_secret_access_key => 'MYSECRETKACCESSKEY',:region => 'us-east-1'
  4. }
  5.  
  6. config.fog_directory = 'andrunix'
  7. config.fog_public = true
  8. config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}

结束

Uploader类看起来像:

  1. class SalonImageUploader < CarrierWave::Uploader::Base
  2. include CarrierWave::RMagick
  3. storage :fog
  4.  
  5. def store_dir
  6. # "andrunix" is the bucket name on S3
  7.  
  8. "andrunix/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  9. end
  10. end

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

解决方法

好吧,我是个白痴.

猜你在找的Ruby相关文章