Carrierwave / Fog / S3“不是公认的存储提供商”

2023-12-25

我有一个使用 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'

雾.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'} 

end

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

如果我将存储更改回“文件”,它就可以正常工作。将存储设置为“雾”会生成此错误。


好吧,我是个白痴。 :)

在某些时候,我不知道在哪里,我将带有 CarrierWave 配置的fog.rb 文件添加到 lib/carrierwave/storage 目录中。我绝望了,付费订阅了 Railscasts,这样我就可以观看第 383 集(http://railscasts.com/episodes/383-uploading-to-amazon-s3?autoplay=true http://railscasts.com/episodes/383-uploading-to-amazon-s3?autoplay=true)并在 3:02 时我发现了我的方法的错误。 Carrierwave 配置需要放置在 config/initializers/carrierwave.rb 中。

我不知道我从哪里得到这个其他位置,但一旦我将配置移动到正确的位置,一切都很好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Carrierwave / Fog / S3“不是公认的存储提供商” 的相关文章

随机推荐

  • 方法什么时候可以被 CLR 内联?

    我在应用程序中观察到很多 堆栈内省 代码 这些代码通常隐式依赖于它们的包含方法not被内联以确保其正确性 此类方法通常涉及调用 MethodBase GetCurrentMethod Assembly GetCallingAssembly
  • 使用 MATLAB 从 Matrix 中查找正值的数量 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个6x6双矩阵A 1 1 2 1 2 2 1 3 1 1 2 1 3 5 1 1 3 3 4 5 2 2 1 3 4 1 3 3 2
  • RPC-GWT 序列化/java.util.Date 编码

    我正在创建一个序列化 GWT 请求的脚本 但在编码日期值以符合 RPC GWT 标准时遇到问题 通过查看 HTTP 日志 我注意到日期值被转换为一些 7 个字符的字符串 但我无法识别这些模式使用的算法 有谁知道使用哪种算法来加密这些日期值
  • matplotlib 图例:如何指定字体粗细?

    指定 matplotlib 图例字体粗细的最佳方法是什么 我可以用 matplotlib rcParams update legend fontsize 12 设置字体大小 但是当我使用 matplotlib rcParams update
  • Java:util_USBUIRT.dll:找不到依赖库

    我想使用这个 jar 文件 http sourceforge net projects uirt j http sourceforge net projects uirt j 在个人项目中 目前 我一直在使用 Eclipse 并尝试导入该
  • 使用 opengrok 搜索历史记录

    我一直在使用 OPENGROK 来搜索我的 SVN 代码存储库 它需要存储库的签出版本来为其建立索引 当我在我的系统上签出版本时 我已经能够实现通过存储库进行搜索 当我尝试搜索存储库的历史记录时 我陷入了困境 我能做些什么 另外 如何更新索
  • Windows 7中uwsgi安装错误

    尝试根据安装uwsgi文档 http uwsgi docs readthedocs org en latest tutorials Django and nginx html我在 Windows 7 上收到以下错误 我应该怎么办 uwsgi
  • 无法在 JavaScript 中创建 Vue Router 实例

    下列的导游 https router vuejs org en essentials getting started html我到达了需要创建 Vue 实例的地步 这似乎有效 但是 我还需要在 Vue 的构造函数中提供一个 Vuew Rou
  • 每次按下灌木丛时按下都会生成草药

    我在 2D 游戏中从森林中的一些灌木丛中生成了一个香草集合 我的脚本具有克隆 Herbs 预制件的功能 但当我按下灌木丛时没有任何反应 这里有什么问题 Script using System Collections using System
  • 从另一个 data.frame 填充 data.frame 中的缺失值

    我有一个带有行和列名称的 N x M 数据框 DF1 其中许多值都是 NA 还有第二个数据框 DF2 1 x M 因此实际上可能是一个向量 其行名称与 DF1 相同 我想使用 DF2 来填充 DF1 列中的缺失值 任何帮助将非常感激 Udp
  • IBM Data Server Client v9.7fp5 的日期时间字段溢出

    使用 EntityFramework v4 1 和 IBM 数据服务器客户端v9 7fp5 DB 首先根据预定义的具有 DATE 列的 DB2 表生成代码 DB2 DATE 列在代码生成期间映射到 NET DateTime 数据类型 当尝试
  • 如何在 mysql 中使用 UPDATE 自动声明行或资源

    我有一个资源表 比如说汽车 我想以原子方式声明它 然后我想要有关我刚刚声明的资源的信息 如果每个用户只能使用一种资源 我可以采取以下技巧 UPDATE cars SET user bob WHERE user IS NULL LIMIT 1
  • 如何在 iOS OpenGL ES 2.0 中绘制星星

    这个问题以前就被问过 但在我的搜索中是好几年前的事了 答案始终是使用纹理映射 但我真正想做的是将星星表示为单个顶点 你可能认为我正在使用一种简单的方法 但事实上 单点光源实际上看起来相当不错和现实的 但我想用高斯模糊之类的东西来处理那个光点
  • xcode 8 beta 3:预期的“,”连接多子句条件的一部分

    在 xcode 8 beta 3 中收到新警告 此语法有什么问题 或者 xcode 中是否存在错误 SwiftyJSON swift 772 35 预期的 连接多子句条件的一部分 if let errorValue error where
  • 使用 for 循环反转数组没有任何作用[重复]

    这个问题在这里已经有答案了 我试图使用 for 循环反转 15 个数字的数组 但由于某种原因数组顺序保持不变 我的代码如下所示 int main int arr 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  • Hibernate 无法添加或更新子行:外键约束失败

    当我尝试将对象保存到数据库中时出现错误 java sql SQLIntegrityConstraintViolationException Cannot add or update a child row a foreign key con
  • Backbone.history.start() 阻止后退按钮离开页面

    我现在在一些应用程序上遇到了这个问题 所以我想知道我是否对 Backbone 历史记录做错了什么 情况是这样的 我有两页 比方说 index html app html 索引页只是一个普通的 平面的 HTML 页面 带有一个链接app ht
  • Google 跟踪代码管理器延迟了 window.load?

    我有一个页面在加载时触发 ajax 调用 window load function updateDeliverySlots 我的顶部还有 Google 跟踪代码管理器 javascriptbody 我知道当前的建议是将其放在head部分 但
  • gmail api 对于特定标签返回总邮件数为 0

    我一直在使用 获取标签 API 来获取特定标签的详细信息 直到最后几天一切都正常 我现在观察到 消息总数 计数始终为 0 未读消息 计数正确显示 我已经在我的应用程序中使用了它 并且也尝试过https developers google c
  • Carrierwave / Fog / S3“不是公认的存储提供商”

    我有一个使用 Carrierwave 进行文件上传的 Rails 应用程序 它一直运行良好 但我想开始使用 Amazon S3 进行图像存储 我收到此错误 ArgumentError is not a recognized storage