Rails скрепка amazon aws s3 gem, как изменить URL изображения? - PullRequest
3 голосов
/ 31 марта 2012

В моей модели у меня есть:

  has_attached_file :image,
          :storage => :s3,
          :styles => { :original => ["300x250>", :png], :small => ["165x138>", :png], :mini => ["120x120>", :png] },
          :path => 'images/vind/:style/:id/:basename.:extension',
          :url => 'images/vind/:style/:id/:basename.png',
          :bucket => 'konkurrencerher',
          :s3_credentials => {
          :access_key_id => 'x',
          :secret_access_key => 'x'
  }

Проблема заключается только в том, что к указанному URL добавлено имя хоста amazon s3.

У меня есть решение, но оно немного уродливо:

<%= image_tag(kon.photo.image.url(:small).gsub("http://s3.amazonaws.com/konkurrencerher", ""), :class => 'koni') %>

Но как определить URL-адрес изображения в модели без имени хоста Amazon S3?

Ответы [ 2 ]

2 голосов
/ 01 июля 2012

Посмотрите на Paperclip::Storage::S3, особенно на :s3_host_alias.

. Вы можете попробовать настроить has_attached_file с помощью следующих дополнительных опций

 :url => ':s3_alias_url',
 :s3_host_alias => "example.domain.net"

Надеюсь, это поможет.

0 голосов
/ 31 марта 2012

Мое решение создало файл в карте инициализаторов со следующим:

Paperclip.interpolates(:s3_path_url) { |attachment, style|
  "#{(attachment.path).gsub("images/", "")}"
}

И тогда URL должен быть:

:url => ':s3_path_url'

Это гораздо лучшее решение.

...