gpt4 book ai didi

ruby-on-rails - 载波/雾/S3 "is not a recognized storage provider"

转载 作者:行者123 更新时间:2023-12-04 04:51:50 24 4
gpt4 key购买 nike

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

ArgumentError ( is not a recognized storage provider):
app/controllers/salons_controller.rb:52:in `update'

我确保我拥有 Carrierwave 和 Fog 的最新 gem 。这是在我的 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'}

结尾

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",则可以正常工作。将存储设置为“雾”会产生此错误。

最佳答案

好吧,我是个白痴。 :)

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

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

关于ruby-on-rails - 载波/雾/S3 "is not a recognized storage provider",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16114957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com