Рельсы 3 - Amazon S3 Paperclip EU Problem

Я использую:

Paperclip 2.3.16
Rails 3.0.9
Ruby 1.9.2
AWS - S3 0.6.2

Я пытаюсь использовать скрепку для загрузки в ведро на базе ЕС (Ирландия). В моей модели есть следующее:

has_attached_file :image, :styles => { :grid => '90x128#', :list => '140x200#', :original => '400x548'},
            :storage => :s3,
                      :s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
                      :url  => 'flyers/:id/:style/:basename.:extension',
                      :path => 'flyers/:id/:style/:basename.:extension',
                      :bucket => 'fsight'

В моей среде.rb я установил запись на использование AWS/s3 Default Host для соответствующего хоста ЕС, используя:

require "aws/s3"
AWS::S3::DEFAULT_HOST.replace "s3-eu-west-1.amazonaws.com"

Это работает нормально, и позволяет мне загружать изображения, и я могу проверить загрузку/удаление изображений, используя AWS Management consoler.

Однако у меня возникают проблемы при попытке отображения изображений на моем сайте. Изображения не загружаются, и я определил причину, так как сгенерированный URL использует старый хост по умолчанию. Eg:

Что это должно быть: https://s3-eu-west-1.amazonaws.com/fsight/flyers/50/full/4759543368588654950.jpg

Что это на самом деле: http://s3.amazonaws.com/fsight/flyers/50/full/4759543368588654950.jpg?1314801178

Как вы видите, он использует старый хост по умолчанию.

Я пытался разместить:

Paperclip.interpolates(:s3_eu_url) do |att, style|
    "#{att.s3_protocol}://s3-eu-west-1.amazonaws.com/#{att.bucket_name}/#{att.path(style)}"
end

Но потом начал получать следующую ошибку:

 wrong number of arguments (0 for 1)

Extracted source (around line #9):

 

Я знаю, что у Paperclip есть некоторые проблемы с использованием EU Buckets, но может ли кто-нибудь помочь мне с этим?

11
задан Ammar 31 August 2011 в 13:38
поделиться