Ich wurde gefragt, wie ich alle Magento-Medienressourcen in Amazon S3 speichern soll. Ich dachte darüber nach, einen PHP Stream Wrapper wie diesen zu verwenden: https://github.com/punkave/aS3StreamWrapper und stellte den Medienordner einfach auf s3: \ mybucket \ mediaFolder ein
Hat jemand Erfahrung damit?
Oder verwenden Sie besser so etwas: https://github.com/sstoiana/magento-s3 Aber diese Erweiterung sieht nicht gut aus. Irgendwelche anderen Empfehlungen?
amazon-web-services
media
Fabian Blechschmidt
quelle
quelle
Antworten:
Diese Leute scheinen eine Lösung zu finden: ( http://thinkglobal.co/resources/moving-the-magento-media-directory-to-s3/ )
Es gibt zwei mögliche Ansätze: Zum einen muss Magento alle Medienassets beim Erstellen auf S3 pushen und zum anderen das Medienverzeichnis einfach in einen S3-Bucket mounten und Magento glauben lassen, dass auf die lokale Festplatte geschrieben wird. Wir haben uns für Letzteres entschieden.
Am Ende haben wir ein Tool namens s3fs verwendet, das eine breitere Technologie namens fuse verwendet. Mit einer recht einfachen Konfiguration (siehe unten) können Sie s3fs zum Laufen bringen. Achten Sie darauf, S3-Bucket-Namen oder API-Zugangsdaten nicht fest zu codieren, wenn Sie AWS oder einen anderen PAAS-Anbieter verwenden.
Stellen Sie sicher, dass Sie die folgenden Variablen durch Werte für Ihre spezifische Konfiguration ersetzen:
Hier ist das Setup:
quelle
Die CDN-Erweiterung von OnePica ist für diese Funktionalität sofort einsatzbereit und unterstützt mehr als nur S3. Quote: "Derzeit lässt sich die Erweiterung in Amazon S3, Coral CDN, Mosso / Rackspace Cloud-Dateien sowie in alle CDNs, Server oder Dienste integrieren, die FTP, FTPS oder SFTP unterstützen."
quelle
Die CDN-Erweiterung von OnePica ist nicht die Lösung, die nur für Produkt-Images funktioniert. Außerdem müssen Sie die richtige TTL für die eigene Cache-Lebensdauer festlegen, da die Zeit viel früher abläuft als bei Standard-Magento. Das gesamte Cms-Wysiwyg-Bild befindet sich im Medienordner. Wenn Sie jedoch S3 nicht verwenden, werden am Ende alle Ihre Medienbilder in S3 hochgeladen.
Die Verwendung von Cloudfront ist gut, Sie benötigen jedoch weiterhin ein NFS, um Ihren Medienordner für alle Frontend- und Backend-Knoten freizugeben. Oder Sie müssen Ihre eigene Schnittstelle erstellen, um Dateien in S3 zu speichern, und Sie müssen auch Fehler behandeln (denken Sie an jemanden, der extrem große Dateien hochlädt, ob Ihr Code das vor dem S3-API-Timeout verarbeiten kann).
Andernfalls speichern Sie den Medienspeicher einfach in Ihrer zusätzlichen RDS (Datenbank), und das Cache-Image für die individuelle Größenänderung wird weiterhin im lokalen Medienordner des App-Servers gespeichert, aber es ist in Ordnung, da Cloudfront sie bereits zwischenspeichert.
quelle
Ich bevorzuge einen separaten "admin" -Knoten (admin.example.com) und behalte dort Medienordner. Auf diese Weise sparen Sie sich NFS-Kosten und Probleme bei der Synchronisierung usw. Jedes CDN (ich verwende Cloudfront) kann dann mit den Medienordnern des Administratorknotens verbunden und für alle Stores konfiguriert werden.
Ein weiterer Vorteil der Verwendung des Admin-Knotens besteht darin, dass Sie alle Cron (Neuindizierung und andere Cron) sowie geplante Aufgaben (Produktimporte, Inventarisierung und Auftragssynchronisierung usw.) auf dem Admin-Knoten verschieben und die CPU-Verarbeitung des Frontend-Knotens speichern können.
Bearbeiten: Als letzte Antwort wurde die Frage von OP nicht wirklich beantwortet. Magento Media Assets in Amazon S3? Nun, ich glaube, Magento hat bereits so viel Verarbeitungsaufwand, dass ich es für eine gute Idee halte, es von s3-Synchronisierung / Streaming fernzuhalten und stattdessen den lokalen Medienordner zu verwenden.
quelle
Nun, da ein paar Jahre vergangen sind, denke ich, ist es wichtig zu beachten, dass mehrere Plugins verfügbar sind, die Assets von S3 / CDN verschieben und bedienen.
Die Google-Suche bietet zahlreiche Optionen.
Hier ist einer auf GitHub:
https://github.com/magefm/cdn
Hier ist eine auf Magentos Connect-Marktplatz:
http://www.magentocommerce.com/magento-connect/aws-s3-cdn-for-product-images.html
Ich habe diese speziellen Erweiterungen noch nicht ausprobiert, werde sie aber für ein bevorstehendes Projekt verwenden. Es gibt auch andere da draußen.
Ich muss @Sonassi widersprechen. Die Verwendung von separatem Speicher, um die günstigste Serverkonfiguration mit noch guter Leistung zu ermöglichen, wird heute als die beste Vorgehensweise angesehen. Verwenden Sie beispielsweise einfach S3, um alle statischen Inhalte von Ihrem Webserver zu entfernen. Auf diese Weise wird die Bandbreite des Servers erheblich verringert und gleichzeitig mehr Benutzer und insgesamt weniger Serverleistung benötigt. Und wenn Sie sich heutzutage wie die meisten Menschen in einem einzelnen Rechenzentrum befinden und sagen, dass es sich um ein Dallas-Rechenzentrum handelt, werden die Menschen in Westeuropa mit einem globalen CDN wie Cloudfront zweifellos viel schneller bedient. Wenn Sie also Speicher verwenden, der von Ihrem Webserver getrennt ist, um die Bandbreitennutzung zu verringern, können Sie nur einen Server verwenden, wenn Sie ohne diesen Ansatz früher benötigen würden, und durch die Verwendung von CDN werden die globalen Ladezeiten erheblich verlängert.
quelle
Es wurde eine weitere Erweiterung gefunden, die von arkadedigital https://github.com/arkadedigital/magento-s3 erstellt wurde
quelle