Rails 3 - Amazon S3 Büroklammer EU-Problem
Ich bin mit:
Paperclip 2.3.16
Rails 3.0.9
Ruby 1.9.2
AWS - S3 0.6.2
Ich versuche, verwenden Sie die Büroklammer hochladen in die EU (Irland), basierend Eimer. Ich habe Folgendes in meinem Modell:
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'
In meiner Umgebung.rb habe ich auch eingestellt das schreiben an die AWS/s3 Standard-Host-auf die einschlägigen EU-eine mit:
require "aws/s3"
AWS::S3::DEFAULT_HOST.replace "s3-eu-west-1.amazonaws.com"
Dies funktioniert gut, und es mir erlaubt, die Bilder hochladen, und ich kann überprüfen Bild hochladen /löschen, indem Sie die AWS Management Tröster.
Jedoch habe ich ein problem beim anzeigen der Bilder auf meiner Website. Die Bilder laden nicht, und ich haben festgestellt, dass die Ursache, weil die URL generiert, verwendet die alten Standard-host. Eg:
, Was es sein sollte:
https://s3-eu-west-1.amazonaws.com/fsight/flyers/50/full/4759543368588654950.jpg
, Was es eigentlich ist: http://s3.amazonaws.com/fsight/flyers/50/full/4759543368588654950.jpg?1314801178
Wie Sie sehen können, verwendet es die alten Standard-host.
Ich habe versucht, indem Sie:
Paperclip.interpolates(:s3_eu_url) do |att, style|
"#{att.s3_protocol}://s3-eu-west-1.amazonaws.com/#{att.bucket_name}/#{att.path(style)}"
end
Aber dann empfangen die folgende Fehlermeldung:
wrong number of arguments (0 for 1)
Extracted source (around line #9):
<img src= <%= @event.image.url(:original) %>
Ich weiß Büroklammer hat einige Probleme bei der Verwendung von EU-Eimer, aber könnte jemand mir dabei helfen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie versucht, diese Problemumgehung?
Büroklammer et les europäischen S3-buckets
Oder sogar diese?
Büroklammer, S3 und europäischen Eimer
Brauchen Sie nicht zu arbeiten, um das EU-Problem mehr.
Die Standard-aws-s3 Speicher-backend in der Büroklammer war ersetzt durch das AWS SDK für Ruby, das ist auch der amazon empfohlen, beim arbeiten mit AWS.
Legen Sie einfach
in Ihre Gemfile und führen
bundle install
.Wenn du etwas möchtest, wie https://s3-eu-west-1.amazonaws.com/some_path_goes_here, versuchen, konfigurieren Sie Ihr Modell s
has_attached_file
mit den folgenden OptionenWenn Sie nicht möchten, zu https verwenden (Sie können entfernen Sie die
:s3_protocol
und wenn Sie möchten, ändern Sie die region, option:s3_host_name
ist der richtige Weg zu gehen. Sie können auch setzen Sie diese in eine Konfigurationsdatei.Hoffe, das hilft.
s3_host_name: 's3-eu-west-1.amazonaws.com'
. Ich musste auch angebens3_endpoint: 's3-eu-west-1.amazonaws.com'
um eine rake-task für die Migration von lokalen Dateien arbeiten.Fügte ich
zur Büroklammer.rb in der Initialisierungen Ordner und es funktioniert gut für mich.
Gleiche problem hier, nur gelöst übergeben Sie die folgende option, um has_attached_file:
Weitere Infos finden Sie hier http://rubydoc.info/gems/paperclip/Paperclip/Storage/S3 :