Настройка имени ведра, размещенного в доменном стиле (bucket.s3.amazonaws.com) с помощью Rails и Paperclip

Документ скрепки о параметрах URL:

Вы можете выбрать, чтобы имя ковша размещалось в доменном стиле (bucket.s3.amazonaws.com) или в стиле пути (s3.amazonaws.com/bucket).

Как выглядела бы такая настройка, чтобы на самом деле было указано имя ведра в домене? Я не могу заставить paperclip генерировать URL-адреса, такие как bucket.s3.amazonaws.com, а не s3.amazonaws.com/bucket.

Ответы

Ответ 1

Просто установите его так:

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

Или вот так:

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

Ответ 2

Добавьте :url и :path в параметры Paperclip по умолчанию в application.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
}

Ответ 3

Если вы указали имя ведра, то вы можете создать URL-адрес .s3.amazonaws.com/object....

но если он не совместим с DNS, вы не можете создать его, как хотите.

Спасибо