使用Rails和Paperclip设置存储桶名称放置域样式(bucket.s3.amazonaws.com)

时间:2012-06-19 05:16:17

标签: ruby-on-rails amazon-s3 paperclip buckets

关于网址选项的Paperclip文档:

  

您可以选择将存储桶的名称放置为域样式(bucket.s3.amazonaws.com)或路径样式(s3.amazonaws.com/bucket)。

看起来设置实际上将桶的名称放置为域式?我不能强制回形针生成像bucket.s3.amazonaws.com这样的网址而不是s3.amazonaws.com/bucket。

3 个答案:

答案 0 :(得分:14)

只需设置如下:

Paperclip::Attachment.default_options[:url] = ':s3_domain_url'

或者像这样:

Paperclip::Attachment.default_options.merge!(
  :url => ':s3_domain_url'
)

答案 1 :(得分:4)

:url:path添加到Paperclipapplication.rb

中的environment.rb默认选项
config.paperclip_defaults = {
  storage: :s3,
  s3_credentials: {
    bucket: ENV['MY_S3_BUCKET_NAME'],
    access_key_id: ENV['AWS_ACCESS_KEY_ID'],
    secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']
  },
  url: ':s3_domain_url',                                     # ADD THIS
  path: '/:class/:attachment/:id_partition/:style/:filename' # ADD THIS
}

答案 2 :(得分:1)

如果您的存储桶名称与DNS兼容,那么您可以创建网址.s3.amazonaws.com / object ....

但如果它不兼容DNS,则无法按照自己的意愿创建。

由于