2016-08-04 14 views
0

Ich habe gerade AWS mit meiner Rails/Heroku App integriert und ich benutze Büroklammer. Ich kann Dateien (Fotos) hochladen und sie in AWS anzeigen, sie werden jedoch nicht in der Ansicht angezeigt. Ich bekomme keine Fehler und habe keine funktionierende Lösung in anderen Posts gefunden.Bilder hochgeladen zu aws, aber kann nicht in der Ansicht

Es scheint, ich bin in der Lage, das Bild in einem Browser anzeigen, und dass die Berechtigungen für die öffentlichen gesetzt: enter image description here

Ich vermute, dass ich meine Region falsch haben kann, in der URL meines aws Armaturenbrett die Region sagt region=us-west-2 googeln und lesen durch andere Foren und Beiträge auf SO führt mich zu glauben, dass, wenn ich in den USA bin meine Region auf us-east-1 eingestellt werden soll - derzeit habe ich es auf die letztere eingestellt. Nicht sicher, ob das das Problem ist. Hier

ist ein Link zu dem Bild auf AWS: https://s3.amazonaws.com/giving-tree-images/avatars/1/medium/02108_navajoland_1440x900.jpg

hier ist der Code in Bezug auf aws/Büroklammer in meinem Modell:

:storage => :s3, 
# :s3_host_name => "s3-us-east-1.amazonaws.com", 
:s3_credentials => { 
    :bucket => ENV['S3_BUCKET_NAME'], 
    :access_key_id => ENV['AWS_ACCESS_KEY_ID'], 
    :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'] 
}, 

:path => ":rails_root/public/system/:attachment/:id/:style/:filename", 
:default_url => "default_img.png" 

und ich in der Ansicht wie folgt bin Anzeige:

<%= image_tag @user.avatar.url(:medium) %>

ich würde es lieben, wenn jemand mich in die richtige Richtung zeigen könnte ... Jede zusätzliche Informationen benötigt, Plädoyer Lass es mich wissen!

+0

S3 erfordert keine Region Überprüfung dieser Dropdown von AWS-Konsole http://imgur.com/a/xY4ax – error2007s

+0

Warum ist die Ordnerstruktur anders? image link hat "/ avatars/1/medium" -Verzeichnisse darin aber du hast nur Screenshots von "giving-tree-images"? – error2007s

+0

interessanterweise wurden sie auf aws nur in der Wurzel des Eimers hochgeladen. Bei meinem letzten Upload wurde ein Ordner namens "Avatar" erstellt. Der Code oben war eigentlich etwas anders als das, was ich ursprünglich als Pfad angegeben hatte - was war ': Pfad =>": Dateiname.: Erweiterung "' ... mit dem neuen Ordner erstellt, dass Pfad korrekt verweist die Bilder in ihnen, sie werden nur nicht angezeigt – HolyMoly

Antwort

-1

Haben Sie die Leseberechtigung für alle aktiviert? Es gab mir Zugriff verweigert Fehler beim Zugriff auf den Link.

+0

eigentlich kurz vor dem Lesen Sie kommentieren Ich hatte jemand anderes öffnen Sie es in ihrem Computer und sie konnten es sehen, noch nach dem Lesen Ihrer Antwort ich überprüft die Berechtigungen - und sie waren nicht auf "jeder/Ansicht", so dass ich eingestellt hat das nur aktiviert, aber das Bild wird immer noch nicht angezeigt. – HolyMoly

+0

können Sie es jetzt sehen? – HolyMoly

+0

Ja, ich kann es jetzt mit diesem Link sehen: https://s3.amazonaws.com/giving-tree-images/meditation.jpg.jpg Der Name hat doppelte 'jpg' so kann es sein Problem. –

0

ich sah sich auch das gleiche Problem, so ist dies, wie ich es gelöst:

  1. Erstellen Sie eine neue Datei initializer dh config/initializers/paperclip.rb
  2. Add in dieser Datei folgende Paperclip::Attachment.default_options[:url] = ':s3_domain_url' Paperclip::Attachment.default_options[:s3_host_name] = 's3-us-west-2.amazonaws.com'

um Details zu Ihrer Region zu erhalten, gehen Sie zu aws

Amazon Web Service - Check your host name

Hinweis: Ersetzen Sie s3-us-west-2.amazonaws.com mit Ihrem eigenen Hostnamen

Referenz: https://devcenter.heroku.com/articles/paperclip-s3

+0

Ich musste das auch tun. (Meine Region auch = us-west-2) Es gibt ein Problem in Büroklammer: https://github.com/thoughtbot/paperclip/issues/2309 – aenw

Verwandte Themen