使用带有carrierwave gem的多个S3存储桶

时间:2012-03-11 21:09:00

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

我刚刚设置了我的rails 3.2 app以使用carrierwave gem并将文件上传到S3。我没有看到的是每个上传器使用不同桶的能力。有谁知道这是否可能?

3 个答案:

答案 0 :(得分:14)

通过fog_directory配置指定存储桶。此配置选项在上传器中定义,可以使用您自己的方法覆盖。

只需将以下内容添加到您的上传器中即可:

def fog_directory
  # your bucket name here
end

答案 1 :(得分:8)

carrierwave wiki explains how to use a separate s3 bucket for each uploader

def initialize(*)
  super

  self.fog_credentials = {
    :provider               => 'AWS',              # required
    :aws_access_key_id      => 'YOURAWSKEYID',     # required
    :aws_secret_access_key  => 'YOURAWSSECRET',    # required
  }
  self.fog_directory = "YOURBUCKET"
end

答案 2 :(得分:0)

CarrierWave目前不支持多个存储桶。您可以通过向store_dir添加前缀(文件夹)来在上传者之间分隔文件。如果这是您想要处理的事情,欢迎提出请求!