使用Carrierwave上传到多个S3存储桶

时间:2013-11-07 00:23:35

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

我将Ryan Bates在Carrierwave上的RailsCast扩展到多个文件上传器,每个文件上传器都应该上传到自己的S3存储桶。我已经有一个工作了。我的配置如下所示:

CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',
    :aws_access_key_id      => '(my access key)',
    :aws_secret_access_key  => '(my secret key)'
  }
  config.fog_directory  = 'my-bucket'
  config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}
end

我的文件上传器类看起来像这样:

class ImageUploader < CarrierWave::Uploader::Base
  include CarrierWave::RMagick
  process :resize_to_fit => [1024, 1024]
  process :quality => 70
  storage :fog
end

在我班上我打电话

mount_uploader :image, ImageUploader

是否可以在每次上传的基础上更改config.fog_directory?在类定义里面?别的地方?谢谢你的帮助。

1 个答案:

答案 0 :(得分:6)

在您的上传者中:

def fog_directory
  'custom-bucket'
end

请参阅here以获取可能的选项的完整列表。几乎所有这些都是。