Die Verwendung von Amazon S3 mit Heroku, Python und Flask
Ich versuche, ein einfaches Bild-upload-Anwendung auf Heroku mit Kolben. Ich bin nach dem tutorial hier: http://flask.pocoo.org/docs/patterns/fileuploads/
Aber ich will S3 die Datei speichern, statt einem temporären Verzeichnis, da Heroku nicht auf die Platte schreiben. Ich finde keine Beispiele, wie dies speziell für Heroku und Kolben.
- Als ein beiseite, ich habe vor kurzem einen Kolben-Erweiterung, genannt Kolben-S3, wodurch Sie leicht hosten Ihre app statischen Elemente auf S3. Eine der nächsten Stufen zu integrieren-uploads für S3 in die Verlängerung, so halten Sie ein Auge 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint es mir, dass in dem Beispiel-code, speichert die hochgeladene Datei in eine temporäre Datei, die Sie würde Sie ersetzen nur
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
mit code, der die Datei hochlädt S3 statt.Zum Beispiel von der verlinkten Seite:
Oder wenn Sie wollen, zu laden, S3 asynchrnously, Sie könnte verwenden, was queuing-Mechanismus wird von Heroku.
Ein bisschen eine alte Frage, aber ich denke, seitdem Amazon eingeführt CORS-support, um S3, der beste Ansatz ist, um direktes hochladen auf S3 vom browser des Nutzers - ohne die bits je berühren Sie Ihre server.
Diese ist eine sehr einfache Kolben-Projekt, das zeigt, wie genau das zu tun.
Verwendung von boto Bibliothek es wird in etwa so Aussehen:
Statt der Speicherung der Datei auf der Festplatte direkt, man könnte auch die Speicherung seiner Daten in der Datenbank (base64-kodiert zum Beispiel).
Sowieso, um die Interaktion mit Amazon S3 mit Python, sollten Sie mithilfe der
boto
Bibliothek (das gleiche gilt für alle anderen Amazon-service).Zu wissen, wie es zu benutzen, könnten Sie eine lookat den zugehörigen Dokumentation.
Arbeite ich an etwas ähnliches für eine website entwickle ich jetzt. Die Benutzer werden das hochladen sehr großer Dateien. Ich bin auf der Suche mit Plupload hochladen direkt auf S3 die folgenden Ratschläge, die hier.
Alternative ist die Verwendung der direct-to-S3-uploader in Boto.