Media-Ordner 750GB groß - kein korrektes Löschen von Bildern

Hallo liebes Shopware-Team,

wir brauchen mal eure Unterstützung.

Wir importieren täglich neue Produkte und Bilder über die REST-API in unseren SW 5.3.3 Shop. Es sind einige Produkte, sodass wir alleine knapp 66.000 Bilder in Shopware haben. Zudem gibt es 3 Thumbnail-Größen, wenn wir die High-Resolution dazunehmen also maximal 6 Stück. Das heißt insgesamt circa 420.000 Bilder in Shopware.

 

Aktuell belegen diese Bilder 751GB auf der Root-Kiste.

Wir ziehen die Bilder aus Amazon AWS S3, da belegen die Bilder (sind etwas mehr) ohne Thumbnails natürlich, im Original, 65GB. Selbst wenn wir sagen würden, die Thumbnails verdoppeln die Größe, haben wir mehr als 500GB, die zuviel auf Shopware liegen.

Ein Media-Cleanup ist schon erfolgt, der hat aufgeräumt, (Papierkorb leer). ebenso ein sw:thumbnail:cleanup, der durchläuft dort sage und schreibe 7 Millionen Files im Media Ordner, löschte aber initial “nur” 400.000 Thumbnails und danach nur noch geringfügige Mengen.

Wir haben also circa 15-20 mal soviele Bilder in dem Media-Ordner liegen, wie tatsächlich vorhanden sein dürften. Die Produkte kommen rein über die REST-API rein, es wird nichts hartgecodet oder hochgeschoben. Anscheinend funktioniert die Garbage-Collection gar nicht dort. 

Wie bekommen wir die Bilder möglichst elegant raus? Stichprobenartig (beim Media-System ja nicht so easy mit den ganzen Foldern), fallen direkt Bilder auf, die hinterlegt sind, aber nicht in der s_media Tabelle stecken. 

Hatte jemand schon einmal ein ähnliches Problem? Hat Shopware ggf. ein sw:media:clenaup Skript auf Lager, was ähnlich funktioniert wie das sw:thumbnail Skript und auf File und DB-Ebene das Problem angeht, statt nur auf DB-Ebene, wo es anscheinend nicht funktioniert?

Wäre für einen Tipp bzw. eine Lösung sehr dankbar.

MIch wundert das viele den gleichen Fehler haben und keiner antwortet. Wir haben das Problem aktuell auch. Überlegen das ganze System zu wechseln. Wer hat irgendwo eine Lösung bekommen?

Hallo,

ich beziehe mich mal auf die Artikelbilder und lasse Bilder von EKW, etc weg:

Das Script sw:media:clenaup schaut in der Tabelle s_media nach, welche Artikelbilder in Shopware aktuell bekannt sind. Dann wird in der Tabelle s_articles_img nachgeschlagen, ob das Bild mit einem Artikel verknüpft ist. Wenn nicht, dann lösche den Eintrag in s_media und Lösche im Filesystem alle dazugehörigen Dateien in den verschiedenen Auflösungen (bei uns 8 + 1 Originalbild). Abgesehen davon, dass das Script komplexere Abläufe hat, als ich es beschrieben habe und daher sehr, sehr langsam ist, wird es die Dateien nur löschen, wenn noch DB Einträge in der Tabelle s_media stehen. Sollten die Einträge aus irgend einem Grund fehlen oder die Dateinamen in der Tabelle nicht zu denen im Filesystem passen, dann sind deine Bilddateien im Filesystem verwaist. Hier musst du einen Shopware externen Abgleich zwischen den Inhalten aus s_media und der Liste der Dateien im Filesystem machen, um die verwaisten Dateien löschen zu können.

Achtung: Der externe Abgleich zwischen Datenbank Einträgen und Filesystem schliesst dann die Elemente von EKW, etc mit ein.