Я использую:
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'
В моем environment.rb я установил запись для использования хоста по умолчанию AWS / s3 на соответствующий EU, используя:
require "aws/s3"
AWS::S3::DEFAULT_HOST.replace "s3-eu-west-1.amazonaws.com"
Это работает нормально, и это позволяет мне загружать изображения, и я могу проверить загрузку / удаление изображений с помощью Консоли управления AWS.
Однако у меня возникла проблема при попытке отобразить изображения на моемсайт.Изображения не загружаются, и я определил причину, поскольку созданный URL-адрес использует старый хост по умолчанию.Например:
Что должно быть: 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):
<img src= <%= @event.image.url(:original) %>
Я знаю, что у Paperclip есть некоторые проблемы с использованием EU Buckets, но кто-нибудь может мне помочь с этим?