2

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

有什么建议吗?谢谢!

4

2 回答 2

8

将 :path_style => true 添加到 config.fog_credentials 对我有用。我是从对 Amazon S3 的回答中了解到的 - 主机名与服务器证书 (OpenSSL::SSL::SSLError) + rails 不匹配

于 2014-01-15T06:55:19.933 回答
4

goodlife.carrierwave 是您存储桶的名称吗?

编辑:

从您的存储桶名称中删除句点。那应该解决它。

来自亚马逊:

如果您要使用虚拟托管式请求访问存储桶,例如通过 SSL 访问http://mybucket.s3.amazonaws.com,则存储桶名称不能包含句点 (.)。

于 2013-10-21T05:16:35.637 回答