我首先按照此railscast的指示运行了carrierwave:
http://railscasts.com/episodes/253-carrierwave-file-uploads
然后我按照这里的指示连接了s3:
http://railgaadi.wordpress.com/2012/06/03/saving-files-in-amazon-s3-using-carrierwave-and-fog-gem/
我的image_uploader.rb文件:
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
storage :fog
def store_dir
"development/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
version :iphone do
process :resize_to_limit => [320, 160]
end
end
我的fog.rb文件:
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS', # required
:aws_access_key_id => 'xxx', # required
:aws_secret_access_key => 'xxx', # required
}
config.fog_directory = 'goodlife.carrierwave' # required
end
这是我得到的错误:
主机名“goodlife.carrierwave.s3-us-west-1.amazonaws.com”与服务器证书不匹配
有什么建议吗?谢谢!
答案 0 :(得分:7)
添加:path_style =&gt;对config.fog_credentials来说真的很有用。我是从答案中学到的 Amazon S3 - hostname does not match the server certificate (OpenSSL::SSL::SSLError) + rails
答案 1 :(得分:4)
goodlife.carrierwave是你的名字吗?
编辑:
从存储桶名称中删除句点。那应该解决它。
来自亚马逊:
如果要使用虚拟托管样式访问存储桶 请求,例如,http://mybucket.s3.amazonaws.com通过SSL, 存储桶名称不能包含句点(。)。