Gibt es eine Möglichkeit, alle nicht verwendeten Dateien aufzulisten, die sich im öffentlichen Dateisystem und in einem Themenverzeichnis befinden, und sie aufzulisten, oder sogar die Option, sie automatisch zu löschen?
Ich meine Dateien, die derzeit nicht von einem CSS-Stylesheet oder einem Knoten verlinkt sind.
Antworten:
Sie können verwaiste Dateien finden, indem Sie die folgende MySQL-Abfrage ausführen:
Dies gibt alle Dateien zurück, denen kein Knoten zugeordnet ist. Ich bin nicht sicher, ob es sicher ist, die zurückgegebenen Zeilen und Dateien zu löschen. Dies hängt wahrscheinlich auch von Ihrer Modulkonfiguration ab. Benutzung nur auf eigenes Risiko!
Quelle: http://drupal.org/node/733258#comment-5582764
quelle
Für diejenigen, die drei Jahre später zu diesem Beitrag kommen, gibt es ein kleines Modul, das Sie dazu verwenden können: Fancy File Delete .
Zum Zeitpunkt dieses Beitrags befindet es sich in der Betaphase. Verwenden Sie ihn daher auf eigenes Risiko. Wie immer kann die Bereinigung von verwaisten Objekten durch DB-Abfragen lückenhaft sein, und der Erfolg hängt stark von der jeweiligen Modulkonfiguration ab.
quelle
Etwas, das bei der Identifizierung von " Dateien, die nicht mehr an Knoten oder Dateien und Verzeichnisse angehängt sind, die nicht in der dateiverwalteten Tabelle enthalten sind " (wie in der doppelten Frage zu " Löschen nicht verwendeter Dateien ") hilfreich sein kann , ist die Verwendung von Datei-Checker- Modul. Einige Details dazu auf der Projektseite:
Was Sie also tun könnten, ist wie folgt:
Hinweis : Obwohl es sich bei dieser Frage um D7 handelt, handelt es sich um eine (Alfa-) Version davon, auch für D8.
quelle
Es gibt ein Modul, das unerwünschte Dateien entfernt, um Dateien zu löschen .
quelle
Sie können nicht verwendete Dateien mit löschen
Löschen Sie manuell aus der Tabelle file_managed , indem Sie eine Abfrage wie
$this->database ->delete('file_managed') ->condition('fid', $fid, '=') ->execute();
Wenn Sie den Status einer Datei auf 0 setzen , wird sie als temporäre Datei markiert, sodass der Cron sie nach einer bestimmten Zeit löscht.
$file = File::load ($fid); $file->setTemporary();
quelle
Das ausgefallene Modul zum Löschen von Dateien hat bei mir überhaupt nicht funktioniert. Hier ist eine manuellere Alternative.
So löschen Sie Dateien aus einem Ordner, der nicht in der Tabelle der verwalteten Dateien enthalten ist:
1) Erstellen Sie eine Liste aller verwalteten Dateien:
2) Löschen Sie alle Dateien aus einem Verzeichnis, das nicht in dieser Liste enthalten ist. Dazu habe ich ein kleines Bash-Skript verwendet:
Ändern
IMG_FOLDER
Sie einfach die Variable in den Pfad des Ordners, aus dem Sie Dateien löschen möchten (und aktualisieren Sie den Pfad zu Ihrer Ausschlussdatei).quelle