carrierwave图像上传到s3“主机名与证书错误不匹配”

时间:2013-10-21 04:47:15

标签: ruby-on-rails amazon-s3 carrierwave

我首先按照此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”与服务器证书不匹配

有什么建议吗?谢谢!

2 个答案:

答案 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,   存储桶名称不能包含句点(。)。