TYPO3 - 21. April 2022

TYPO3 Papierkorb für Dateien (Ultimativer Guide 2022)

Pierre Geyer

von Pierre Geyer

Auf welche TYPO3 Versionen bezieht sich der Guide?

TYPO3 v9, v10, v11 

Was ist der Papierkorb für die Dateiliste?

Löscht ein Benutzer Dateien oder Ordner, dann werden diese nicht sofort gelöscht, sondern erst in den Papierkorb verschoben. Erst beim Löschen der Dateien oder Ordner aus dem Papierkorb werden diese endgültig vom Dateisystem gelöscht. Aus dem Papierkorb können Dateien und Ordnerstrukturen wiederhergestellt werden.

In der englischen Benutzeroberfläche heißt der Papierkorb „Recycler“ und die Dateiliste „Filelist“.

Wie aktiviere ich den Papierkorb in der Dateiliste von TYPO3?

In der Dateiliste von TYPO3 können ein oder mehrere Papierkörbe angelegt werden. 

Um einen Papierkorb anzulegen, erstellt man einen Ordner mit dem Namen _recycler_ in der Dateiliste. Auf die exakte Schreibweise mit führendem und abschließendem Unterstrich ist zu achten. Dieser Dateiname ist fest in der Programmierung hinterlegt. Hat man diesen Ordner erstellt, wird er automatisch mit dem Papierkorb-Symbol und dem Wort „Papierkorb“ (oder Recycler bei der englischen Oberfläche) dargestellt. 

Der Ordner _recycler_ kann in jedem beliebigen Ordner erstellt werden. Der Papierkorb ist sofort aktiv für alle Dateien und Ordner auf gleicher sowie allen untergeordneten Ebenen. Es ist möglich, mehrere Papierkörbe zu erstellen, jedoch maximal einen pro Ordner. Beim Löschen von Dateien und Ordnern wird der nächstgelegene Papierkorb verwendet.

Im folgenden Beispiel wird die demo.txt beim Löschen in den Ordner Fileadmin/Folder 1/_recycler_ verschoben:

Fileadmin/ Fileadmin/_recycler_ Fileadmin/Folder 1 Fileadmin/Folder 1/_recycler_ Fileadmin/Folder 1/Subfolder 1-1 Fileadmin/Folder 1/Subfolder 1-1/demo.txt Fileadmin/Folder 1/Subfolder 1-2 Fileadmin/Folger 2/_recycler_ Fileadmin/Folder 2 Fileadmin/Folder 3

Benötige ich die TYPO3 Extension recycler, um Dateilisten Papierkorb zu benutzen?

Nein. Der Papierkorb ist eine Core-Funktionalität. Die Programmierung befindet sich in typo3/sysext/core/Classes/Resource/Driver/LocalDriver.php:1445

Das Recycle Module ist für Datensätze gedacht.

Kann ich Papierkörbe mit Benutzerrechten versehen?

Einen Papierkorb kann man nicht direkt mit Benutzerrechten versehen. Jedoch kann man Verzeichnisfreigaben einrichten und den Papierkorb außerhalb dieser Verzeichnisfreigabe (file mounts) im gleichen Dateispeicher (file_storage) anlegen. Der Benutzer hat somit keinen direkten Zugriff auf den Papierkorb, aber beim Löschen werden die Daten in den übergeordneten Papierkorb verschoben.

Kann jeder Benutzer Papierkörbe anlegen?

Jeder Benutzer, der Verzeichnisse anlegen kann, kann Papierkörbe anlegen.

Brauche ich Administrator-Rechte um einen Papierkorb anzulegen?

Nein. Wenn man Schreibrechte hat, kann man Ordner anlegen und somit einen Papierkorb erzeugen.

Wiederherstellen von Dateien und Ordnern aus dem Papierkorb

Wie kann ich Dateien aus dem Papierkorb wiederherstellen?

Dateien und Ordner können aus dem Papierkorb an eine beliebige Stelle kopiert oder verschoben werden. Es handelt sich beim Papierkorb um einen normalen Ordner. Informationen über den ursprünglichen Pfad vor dem Löschen bzw. Verschieben in den Papierkorb werden von TYPO3 nicht gespeichert.

Kann ich Ordner-Strukturen wiederherstellen?

Ordnerstrukturen können wiederhergestellt werden. Jedoch befinden sich in den Ordnern keine Dateien mehr, da TYPO3 beim Löschen von Ordnern alle Dateien aus den Ordnern (nicht die Ordner) in das Hauptverzeichnis des Papierkorbes verschiebt. 

Das ist auf einen Logikfehler in der Löschroutine zurückzuführen: Bevor ein Verzeichnis gelöscht wird, prüft TYPO3 ob das Verzeichnis leer ist. Ist es nicht leer, dann werden alle darin befindlichen Dateien gelöscht. Dazu geht TYPO3 durch jedes Verzeichnis und löscht die Dateien. Dabei greift erneut die Löschlogik von TYPO3. Diese verschiebt die Dateien in den Papierkorb. 

Hierzu gibt es ein offenes Issue im TYPO3 Bugtracker.

Wo werden wiederhergestellte Dateien abgelegt?

Informationen über den ursprünglichen Pfad vor dem Löschen bzw. Verschieben in den Papierkorb werden von TYPO3 nicht gespeichert. Der Speicherort für wiederhergestellte Dateien wird durch den Nutzer beim Verschieben oder Kopieren festgelegt. 

Kann ich Dateien in den Papierkorb verschieben, welche noch verlinkt bzw. referenziert sind?

Nein. Vor dem Löschen bzw. Verschieben in den Papierkorb wird geprüft, ob die Dateien noch verwendet werden.

Werden generierte Thumbnails und Resized Bilder in den Papierkorb verschoben?

Nein. Thumbnails werden im Ordner _processed_-Ordner gespeichert und werden nicht verschoben. Beim endgültigen Löschen der Originaldatei aus dem Papierkorb werden die Thumbnails und bearbeiteten Bilder aus dem _processed_-Ordner entfernt. 

Sind Dateien in Papierkörben von „extern“ erreichbar?

Ordner und Dateien werden in Verzeichnisse mit dem Namen recycler verschoben. Wenn diese nicht durch .htaccess oder nginx-Regeln geschützt sind, kann man diese aufrufen. Jedoch muss man den direkten Link (Deeplink) kennen. Die Standardkonfiguration der .htaccess von TYPO3 enthält Regeln, die den Zugriff unterbinden.

Leeren / Löschen von Dateien aus dem Papierkorb

Wie leere ich einen Papierkorb?

Der Papierkorb verhält sich wie ein normaler Ordner. Man öffnet ihn und wählt die darin befindlichen Dateien und Ordner einzeln zum löschen aus. Zusätzlich kann ein Administrator einen wiederkehrenden Task im Planer-Modul aktivieren, welcher nach Dateien aus dem Papierkorb nach einer vorgegebenen Zeit löscht.

Wenn man Dateien aus dem Papierkorb löscht und ein Papierkorb auf höherer Ebene existiert: Rutschen die Dateien dann in den übergeordneten Papierkorb?

Nein. Dateien und Ordner in einem Papierkorb werden gelöscht, sobald diese aus einem Papierkorb gelöscht werden. Es findet keine Prüfung statt, ob ein übergeordneter Papierkorb existiert.

Wie kann ich alte Dateien regelmäßig löschen lassen?

Im TYPO3 Planer gibt es einen Task Müllsammlung für den Ordner fileadmin mit der Erläuterung: 

Dieser Task leert alle Order mit dem Namen "recycler" im Ordner fileadmin. So können Sie Speicherplatz im Dateisystem freigeben.

Man kann die Anzahl der Tage bis zum Löschen der Dateien aus dem Papierkorb festlegen.

Deaktivieren / Löschen des Papierkorbs

Wie lösche ich einen Papierkorb?

Einen Papierkorb kannst Du einfach löschen, indem Du das Verzeichnis „Recycler“ löschst. Die Papierkorb-Funktionalität ist automatisch deaktiviert. Wenn sich Dateien im Papierkorb befinden, werden diese ebenfalls gelöscht. 

Wird ein gelöschte Dateien, Order oder Papierkörbe in einen höheren Papierkorb verschoben?

Angenommen es existieren 2 Papierkörbe. Einer in einer tieferen Ordnerstruktur und einer im Root. Wenn man Dateien aus dem tiefer gelegenen Papierkorb löscht, dann werden die Dateien nicht in den höheren Papierkorb verschoben.

Sonstiges rund um den Papierkorb

Wie funktioniert das Löschen technisch?

TYPO3 verwendet eine Methode und prüft die Ordnerstruktur rekursiv bis zum Filemount-Root. Sobald es einen Recycle-Ordner darin findet, werden die Dateien mittels „move“ in diesen Recycle-Ordner verschoben

Wo finde ich die Programmierung zum Papierkorb?

typo3/sysext/core/Classes/Resource/Driver/LocalDriver.php:1445

Was ist, wenn zwei Dateien mit gleichem Namen gelöscht werden?

TYPO3 ergänzt den Dateinamen vor der Dateinamenendung mit einer fortlaufenden Zahl _01. Aus originalname.jpg wird originalname_01.jpg.

Bei Verzeichnissen wird ein Datum-Zeitstempel vorangestellt. Aus "subfolder" wird "20220421155434710300_subfolder".

Funktionieren Papierkörbe auf anderen Dateisystemen als auf dem lokalen?

Ja. Voraussetzung ist, dass der verwendete FAL (File Abstraction Layers) Driver die Logik implementiert hat. Zum Beispiel der von next.motion programmierte Google Cloud Storage FAL Driver unterstützt Papierkörbe.

Wo finde ich die Dokumentation zum Papierkorb?

Eine gute Frage. Eine offizielle Dokumentation existiert meines Wissens nach nicht.

Artikel teilen
Pierre Geyer
Über den Autor

Pierre Geyer. Apple Fan Boy und leidenschaftlicher Softwareentwickler. Als Inhaber kommt er zwar nicht mehr so oft zum Programmieren, aber er liebt es dennoch sich alle neue Webtechnologien anzusehen. Sein tiefes Verständnis von IT und Digitalisierung nutzt er, um Kunden zu beraten und individuelle Lösungen zu erarbeiten.

Das könnte Dich auch interessieren