CarrierWave和Fog,S3 bucket和store_dir配置

Jon*_*Mui 7 configuration amazon-s3 carrierwave fog ruby-on-rails-3.2

我正在试图弄清楚如何设置CarrierWave与Fog和Amazon S3一起工作.在S3上,我有一个桶,"bucket1",文件夹"images".上传工作正常.例如,图像可能会上传到https://s3.amazonaws.com/bucket1/images/picture/pic1.jpg形式的内容.但是,在show视图中,当我调用image_url帮助程序时,我得到https://s3.amazonaws.com/images/picture/pic1.jpg.我在这里错过了什么?

#config/initializers/carrierwave.rb
CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',
    :aws_access_key_id      => 'aws_key',
    :aws_secret_access_key  => 'aws_secret'
  }
  config.fog_directory  = 'bucket1'
  config.fog_host       = 'https://s3.amazonaws.com'
  config.fog_public     = true
  config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}
end

#app/uploader/image_uploader.rb
def store_dir
  "images/#{model.class.to_s.underscore}"
end

#app/views/pictures/show.html.erb
<%= image_tag @picture.image_url if @picture.image? %>
Run Code Online (Sandbox Code Playgroud)

mrg*_*fur 4

尝试删除

config.fog_host = 'https://s3.amazonaws.com'

配置并改为放置

存储:雾

在您的上传器中。它可能会用您提供的路径覆盖实际路径。