Wie kann ich Dateien direkt auf S3 hochladen, ohne den lokalen Speicher zu verwenden? [geschlossen]


18

Ich suche ein WordPress-Plugin, mit dem ich Dateien direkt hochladen kann

Wir sind ein Entwicklungsshop, der CMS-Websites aktiv mit Kunden zusammen erstellt. Dies bedeutet, dass wir häufig Websites iterieren, die von Clients verwendet werden, und Dateien hochladen. In unseren Projekten speichern wir die Datenbank und den Code in einem Git-Repository, wodurch es einfach ist, den Code von der Produktion auf die lokale Entwicklung zu verlagern.

Das Problem bei diesem Vorgang ist, dass einige der Dateien, die von Clients hochgeladen werden, sehr groß sind und wir sie nicht in das Repository hochladen möchten, aber wir möchten dennoch in der Lage sein, auf sie zuzugreifen, als ob wir sie hätten.

Also dachte ich, anstatt die Dateien zu verschieben, könnten wir einfach einen Drittanbieter verwenden, der die Dateien hostet, und wir würden einfach darauf zugreifen. Ich könnte Amazon S3 mit einem Backup-Plugin verwenden, aber ich würde es vorziehen, einfach über die Admin-Oberfläche auf S3 hochzuladen.

Der zweite Grund für die Verwendung dieses Plugins ist, dass wir Blogs mit 20-30 GB hochauflösenden Bildern hosten. Ich würde es vorziehen, diese Dateien nicht auf unserem Server zu speichern, da der Speicherplatz auf dem Server teuer ist. Die Verwendung von Amazon S3 zum Hosten der Dateien ist kostengünstiger.

Fazit: Gibt es ein Plugin, das das Hochladen von WordPress-Medien ermöglicht, den lokalen Speicher jedoch umgeht und Dateien direkt auf den Server hochlädt?

Vielen Dank im Voraus für Ihre Antworten!



2
Anstelle einer vollständigen Antwort, die ich im Moment nicht hinterlassen kann: Speichern von WordPress-Medien in Amazon S3 (Teaser)
Annika Backstrom

@ v0idless, dein Link sieht so aus, als würde er die Arbeit erledigen. Ich werde es ausprobieren müssen.
tarasm

@AdamBackstrom, Ihr Link sieht genauso aus wie ich, aber ich bin mir nicht sicher über seine Lösung. Ich werde es mir genauer ansehen müssen.
tarasm

Warum lassen Sie keine Antworten?
tarasm

Antworten:


5

Ich hatte die gleiche Anforderung: Meinem VPS fehlte Speicherplatz, aber ich wollte immer noch Fotos mit WordPress verwalten. tantan-s3 reichte nicht aus, da eine Kopie jedes Fotos lokal gespeichert wird.

Es ist möglich, die Dateispeicherung mit PHP-Stream-Wrappern zu abstrahieren, aber einige Kernelemente von WordPress sind nicht kompatibel. Das ist also die kurze Antwort: WordPress unterstützt von Haus aus nicht genug Funktionen, um dies zu ermöglichen.


Weitermachen : Das WordPress-Ticket Nr. 18543 befasst sich mit dem Patchen des Kerns zur Unterstützung von Stream-Wrappern in imagejpeg()(und anderen GD-Funktionen) und wp_mkdir_p().

Zend_Service_Amazon_S3_Stream stellt einen S3 Stream Wrapper zur Verfügung, dieser ist jedoch in der Regel ineffizient und fordert die Standard 8192 Bytes auf einmal an, anstatt mehr zu puffern und dabei eine große Anzahl von Anfragen zu generieren. Ich habe monatelang darauf gesessen, also könnte ich die Mods genauso gut in die Wildnis entlassen . Dieser Patch funktioniert gegen Zend Framework 1.11.10.

Das Ausfüllen des Kreises ist ein Plugin, um den Upload-Pfad in S3 zu übersetzen .

Ich würde gerne sehen, dass jemand dies weiter bringt als ich, aber es wird nicht weit kommen, bis Core WordPress die Stream-Unterstützung verbessert.


1
Wenn Sie einen VPS haben, warum nicht einfach einen S3-Bucket mounten und diesen Pfad als Upload-Verzeichnis festlegen?
v0idless

@v0idless, das ist eine tolle Frage. Es wäre nicht tragbar, aber ich denke, es würde funktionieren. Für die Montage des Eimers ist weiterhin das URL-Übersetzungs-Plug-in von Adam erforderlich. Hab ich recht?
tarasm

Mit den WordPress-Medienoptionen können Sie das Upload-Verzeichnis festlegen: Store uploads in this folderDies sollte für einen gemounteten Eimer ausreichen. Ich denke, Adams Plugin fügt das s3: // -Protokoll an den Upload-Pfad an, um Streams zu unterstützen.
v0idless

Ich glaube, @tarasm pre_option_upload_url_pathist der wichtige Filter für den Download-Pfad.
Annika Backstrom

@AdamBackstrom Ich denke, es ist so nah an der endgültigen Antwort, wie es an diesem Punkt sein wird. Wären Sie so freundlich, diese Frage zu aktualisieren, wenn sich diese Situation ändert?
tarasm

2

Schauen Sie sich das WP2Cloud- Plugin an. Hochgeladene Dateien werden nicht lokal gespeichert, sondern direkt an Amazon S3 gesendet.

Wenn Sie möchten, können Sie auch Amazon S3 verwenden, um den gesamten Website-Inhalt zu speichern, nicht nur Uploads. Auf diese Weise können Sie das Backup-Problem dauerhaft lösen und die Website an einem beliebigen Ort hosten, ohne die Daten verschieben zu müssen.


2

Es gab ein Plugin namens WP Read-Only . Welches wird die Dateien auf Amazon S3 hochladen. Ich benutze es auf meinem Heroku-Server. Weil Sie keine statischen Dateien auf dem Heroku-Server speichern können.



0

Zu diesem Zweck gibt es ein Plugin, mit dem Sie Dateien direkt von Ihrem Admin-Panel aus auf S3 hochladen oder mithilfe eines Shortcodes einen S3-Browser in Titelseiten einbetten können, damit Benutzer Dateien auf S3 hochladen können. Sie können steuern, wer hochladen darf. löschen, ordner anlegen etc. das ist sehr nützlich.

Hier ist der Link: WordPress S3 Browser

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.