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

ken*_*tin 7 ruby ruby-on-rails amazon-s3 carrierwave

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

小智 17

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

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

def fog_directory
  # your bucket name here
end
Run Code Online (Sandbox Code Playgroud)


Eer*_*ero 10

该carrierwave维基解释了如何使用一个单独的S3存储每个上传:

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
Run Code Online (Sandbox Code Playgroud)

  • 我认为这是这个问题最正确的答案. (3认同)

ben*_*sie 0

CarrierWave 目前不支持多个存储桶。您可以通过向store_dir. 如果这是您想要做的事情,欢迎拉取请求!

  • 我在维基上看到这个文档(https://github.com/jnicklas/rierwave/wiki/How-to%3A-Store-private-public-uploads-in- Different-Cloud-Files-Containers-with-Fog) 。您可以使用 Rackspace 而不是 Amazon 来指定不同的容器吗? (2认同)