加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 19:31:37 所属栏目:百科 来源:网络整理
导读:我有一个使用Carrierwave进行文件上传的Rails应用程序.它一直工作正常,但我想开始使用Amazon S3进行图像存储.我收到此错误: ArgumentError ( is not a recognized storage provider): app/controllers/salons_controller.rb:52:in `update' 我已经确定我有C
我有一个使用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’,它可以正常工作.将存储设置为“雾”会生成此错误.

解决方法

好吧,我是个白痴.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读