Ruby on rails CarrierWave/Fog/S3-“;不是公认的存储提供商”;
在生产中使用Heroku,我可以很好地上传图像,在视图中显示图像-不过,现在我尝试将文件名作为URL的一部分打印,它返回的错误是Ruby on rails CarrierWave/Fog/S3-“;不是公认的存储提供商”;,ruby-on-rails,heroku,amazon-s3,carrierwave,fog,Ruby On Rails,Heroku,Amazon S3,Carrierwave,Fog,在生产中使用Heroku,我可以很好地上传图像,在视图中显示图像-不过,现在我尝试将文件名作为URL的一部分打印,它返回的错误是不是公认的存储提供商上的'LOGO'=>”https://wifiuploads.s3.amazonaws.com/uploads/user/logourl/#{user.id}/#{user.logourl.file.filename},-我的假设是它发生在user.logourl.file.filename上,因为这是我的用户模型上的图像上载列-我所要做的就是将文件
不是公认的存储提供商上的'LOGO'=>”https://wifiuploads.s3.amazonaws.com/uploads/user/logourl/#{user.id}/#{user.logourl.file.filename},
-我的假设是它发生在user.logourl.file.filename
上,因为这是我的用户模型上的图像上载列-我所要做的就是将文件名打印到URL中
我的s3.rb配置:
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'aws',
:aws_access_key_id => ENV['S3_KEY'],
:aws_secret_access_key => ENV['S3_SECRET'],
:region => ENV['S3_REGION']
}
config.fog_directory = ENV['S3_BUCKET']
end
我的上传者/image\u uploader.rb
# encoding: utf-8
class ImageUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
# include CarrierWave::RMagick
include CarrierWave::MiniMagick
# Choose what kind of storage to use for this uploader:
# storage :file
storage :fog
# Override the directory where uploaded files will be stored.
# This is a sensible default for uploaders that are meant to be mounted:
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
有什么想法吗?让我知道我是否应该提供任何其他信息。我不确定这是否重要,但您在fog\u凭据中的提供者条目是小写的–文档表明它应该是大写的。@SamSymons我正在尝试使用提供者的大写条目:
,仍然得到t他犯了同样的错误。@JohnLong如果你解决了这个问题,你能给出答案吗?
gem "carrierwave" #image receiving
gem "mini_magick" #image processing
gem "fog" #s3 integration