Hallo,
Ich bin kürzlich der letzte verbleibende Administrator und Betreuer einer einfachen Discourse Docker-Image-Instanz geworden, die ursprünglich (ich glaube) 2021 auf unserem Server installiert und größtenteils von jemand anderem aktualisiert wurde. Seit einiger Zeit, möglicherweise von Anfang an, haben wir ein Problem damit, dass Uploads aus weich gelöschten Beiträgen nicht verwaist und gelöscht werden. Ich versuche nun seit einigen Tagen erneut, dieses Problem zu beheben, da sich die veralteten Dateien immer weiter ansammeln und Speicherplatz verschwenden. Wir verwenden kein S3 und es gibt genügend Speicherplatz für die Uploads, die wir tatsächlich behalten möchten.
Ich habe die vollständige Discourse-Backup-Datei einschließlich Uploads auf einen separaten Staging-Server migriert, um dies zu testen, indem ich unsere app.yml gemäß den offiziellen Discourse Docker-Installationsanleitungen neu erstellt und anschließend das Backup über die Befehlszeile wiederhergestellt habe. Beide Installationen scheinen identisch gut zu laufen, ohne andere offensichtliche Probleme, aber das Upload-Problem bleibt bestehen.
Ich kann keine relevanten Fehler in den Protokollen finden und Sidekiq führt die Bereinigungsaufträge wie geplant aus. Ich habe rake db:migrate auf der Staging-Version ausgeführt und viele Male neu erstellt, versucht, Beiträge dauerhaft zu löschen und die Einstellungen überprüft. Nachdem ich einige Beiträge direkt über die Rails-Konsole dauerhaft gelöscht und versucht habe, den Bereinigungsauftrag manuell auszuführen, bemerkte ich, dass das Tombstone-Verzeichnis zu diesem Zeitpunkt nur ein wenig an Größe zugenommen hatte und sowieso einige Dateien vorhanden waren, sodass der Mechanismus in einigen Situationen funktioniert haben muss, oder? Nach der geringen Größenänderung werden fast alle veralteten Dateien immer noch nicht als Waisen erkannt.
Die aktuell relevanten Einstellungen im Admin-Panel sind unten aufgeführt. Kann ich die letzten auf 0 setzen, um die Wartezeiten beim Testen effektiv zu überspringen?
uploads bereinigen = true
Wartezeit für verwaiste Uploads (Stunden) = 1
Wartezeit für das Löschen von Uploads (Tage) = 1
Wie kann ich dies effizient beheben? Ich bin mit der Befehlszeile vertraut, aber meine Datenbankkenntnisse sind rudimentär, daher würde ich mich über einige Tipps freuen, um nicht alle möglichen Server-Setup-Details ohne Ahnung zu durchsuchen, wonach ich im Moment suche.
Ich habe verzweifelt dieses Forum nach ähnlichen Fällen durchsucht und gelesen, aber es gibt nur wenige und diese Threads scheinen entweder in einer Sackgasse zu enden oder manuelle Lösungen für einzelne Dateien zu bieten, was für diesen Anwendungsfall nicht direkt geeignet ist.
Bitte fragen Sie mich nach weiteren Details, falls erforderlich. Ich tue mein Bestes, um dies endgültig zu lösen.