Rails wird direkt auf Amazon S3 hochgeladen
Ich bin auf der Suche zum hinzufügen von Funktionalität zu meiner Rails-app zum hochladen von Dateien direkt zu Amazon S3. Aus meiner Forschung der Allgemeine Konsens scheint zu sein, die s3-swf-upload-plugin. Ich habe setup eine Beispiel-app mit, dass gem aber ich kann nicht ankommen es zu spielen schön mit nur ermöglicht die Auswahl einer einzigen Datei. Ich würde auch gerne so erstellen Sie einen Eintrag veröffentlichen, hochladen und verwenden einer Büroklammer erstellen Sie eine Miniaturansicht, für die ich wenig Orientierung finden.
Also meine Fragen sind:
(1) bin ich auf der rechten Spur mit, dass gem oder sollte ich ein anderes Programm?
(2) gibt es keine Proben gibt, die ich verwenden könnte, für die Referenz?
Jede Hilfe wäre sehr geschätzt werden.
Chris
InformationsquelleAutor der Frage Chris Hilton | 2011-05-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, ein neues Juwel namens CarrierWaveDirect es ermöglicht den upload von Dateien direkt auf S3 mit einem html-Formular und leicht verschieben des Bildes nach der Verarbeitung in einen hintergrund-Prozess
InformationsquelleAutor der Antwort dwilkie
Nicht sicher, ob Sie können es ändern, einfach nur eine Datei hochladen zu einer Zeit, aber das gem funktioniert sehr gut für mich. Es basiert auf einem von Ryan Bates' Railscast:
https://github.com/waynehoover/s3_direct_upload
InformationsquelleAutor der Antwort migu
Versuchen Sie suchen in carrierwave https://github.com/jnicklas/carrierwave (unterstützt s3)
Multi-Datei-uploads mit carrierwave und uploadify http://blog.assimov.net/post/4306595758/multi-file-upload-with-uploadify-and-carrierwave-on
InformationsquelleAutor der Antwort adc
Wenn Sie mit Rails 3, bitte schauen Sie sich meine Beispiel-Projekte:
Beispiel-Projekt mit Rails 3, Flash-und MooTools-basierend FancyUploader hochladen direkt auf S3: https://github.com/iwasrobbed/Rails3-S3-Uploader-FancyUploader
Beispiel-Projekt mit Rails 3, Flash/Silverlight/GoogleGears/BrowserPlus und jQuery-basierte Plupload hochladen direkt auf S3: https://github.com/iwasrobbed/Rails3-S3-Uploader-Plupload
Durch die Art und Weise, die Sie tun können, post-processing mit Büroklammer mit so etwas wie dieser blog-post beschreibt:
http://www.railstoolkit.com/posts/fancyupload-amazon-s3-uploader-with-paperclip
InformationsquelleAutor der Antwort iwasrobbed
Habe ich angepasst Heroku ist direkt zu S3 hochladen Lösung in Schienen (die verwendet jQuery-File-Upload und die aws-sdk gem) so-uploads für S3 gemacht werden können Remote über ajax. Ich hoffe, dass dies nützlich ist:
posts_controller.rb
Beiträge.html-Code.erb
Form
_post.html-Code.erb
Javascript in jedem _post.html-Code.erb
Javascript in application.js
erstellen.js.erb
application.js
config/Initialisierungen/aws.rb
Hinweise:
Diese Lösung ist für mehrere post-Formulare auf den index.html-Code.erb Seite. Dies ist der Grund, warum die
@s3_direct_post
Informationen wird in einem div der Klasseinfo
innen-index.html-Code.erb, anstatt in jedem post-Formular. Dies bedeutet, es ist nur eine@s3_direct_post
präsentierte auf der Seite zu jeder Zeit, unabhängig von der Anzahl der Formulare auf der Seite. Die Daten innerhalb der@s3_direct_post
ist nur, Griff (mit einem Aufruf vonprepareUpload()
) mit Klick auf den Datei hochladen-Knopf. Nach der Einreichung einer frischen@s3_direct_post
generiert wird, in der Beiträge-controller, und die Informationen in.info
aktualisiert erstellen.js.erb. Die Speicherung der@s3_direct_post
Daten in der form bedeutet, dass viele verschiedene Instanzen von@s3_direct_post
gleichzeitig existieren können, was zu Fehlern in den Namen der Datei generation.Müssen Sie
:set_s3_direct_post
sowohl die Beiträge-controller, index-action (bereit für den ersten upload) und die create-Aktion (bereit für die zweiten und nachfolgenden uploads).Normalen Formulars wird verhindert, indem
e.preventDefault();
so dass es getan werden kann 'manuell' mit$.ajax({
. Warum nicht einfachremote: true
in der form? Weil im Schienen -, Datei-upload erfolgt mit einem HTML-request und die Seite aktualisiert sich sogar, wenn Sie versuchen, es zu tun aus der Ferne.Verwenden
info.attr()
eher alsinfo.data()
festlegen und abrufen der@s3_direct_post
Attribute, da info.Daten nicht aktualisiert(siehe zum Beispiel diese Frage). Dies bedeutet, dass Sie auch manuell Parsen des Attributs in einem Objekt mit
jQuery.parseJSON()
(das .Daten() ist tatsächlich nicht automatisch).Nicht verwenden
//= require jquery-fileupload
im application.js. Dieser bug war eine echte ballache zu identifizieren (siehe hier). Die original Heroku Lösung hat nicht funktioniert, bis ich das verändert.InformationsquelleAutor der Antwort Bazley
Können Sie mithilfe einer Büroklammer hochladen in S3 (siehe Dokumentation) und thumbnails zu erstellen, obwohl es uploads auf temporäre Ordner zunächst nach, dass die Bildverarbeitung angewendet werden kann, vor dem Upload der Datei zu S3.
Als für die Beispiele einer solchen Konfiguration sind, es gibt viele von Ihnen überall in der Blogosphäre und auf StackOverflow, z.B. diese.
InformationsquelleAutor der Antwort buru