Nächster Spaß mit der Nextcloud.
Es soll ja vorkommen, dass ihr eine oder mehrere Dateien in der Nextcloud nicht löschen könnt. Als einzige Erklärung liefert euch das open source Dokumentenmanagementsystem eine File is locked Meldung.
So weit, so schlecht.
Erst einmal ist das eine durchaus positive Meldung. Sie besagt nämlich, dass das File-Handling in eurer Nextcloud funktioniert. Ein File Lock bzw. eine Dateisperre wird von NC angewandt, um Lese- und Schreibzugriffe von verschiedenen Prozessen auf ein und dieselbe Datei zu koordinieren. Andererseits ist das aber auch nervig, weil ihr die Datei eben nicht gelöscht bekommt und auch nicht wisst, was dieses Verhalten im speziellen Fall auslöst.
Was kann man dagegen machen?
Methode 1: Sperrungen in der Datenbank löschen
Um dieses „Fehlverhalten“ temporär zu beheben, könnt ihr die Sperrung auf Datenbankebene aufheben. Dazu wird empfohlen, die Nextcloud in den Wartungszustand zu versetzen. Dazu benötigt ihr Zugriff auf FTP Ebene. Der Wartungszustand (Maintenance) wird in der Datei config.php im Verzeichnis config der NC Installation eingestellt. Aus false macht true.
'maintenance' => true,
Danach wäre es äußerst hilfreich, wenn ihr mittels phpmyadmin Zugriff auf die Tabellen der Datenbank habt. Ihr löscht einfach alle Einträge in der Tabelle Präfix_file_locks. Präfix steht für das Tabellenpräfix eurer NC Installation. Früher hatte diese Tabelle den verbindlichen Namen oc_file_locks (oc von ownCloud), aber das kann heutzutage eben variieren. Wenn das nur eine Handvoll Einträge sind, könnt ihr das manuell machen. Wieviel eine Handvoll ist, fragt ihr? Na soweit die Maus klickt, würde ich sagen. Am einfachsten ist es, wenn ihr einen „Alles-Löschen“ Befehl mittels SQL absetzt. Bei phpmyadmin gibt es dazu den Reiter SQL. Dort feuert ihr diesen SQL Befehl ab:
DELETE FROM <em>Präfix_file_locks</em> WHERE 1
Das löscht alle Einträge in dieser Tabelle! Danach dürft ihr den Maintenance Zustand wieder aufheben, indem ihr die maintenance Eigenschaft in der config.php des config Verzeichnisses wieder auf false setzt.
Wenn eure Nextcloud nicht anderweitig korrumpiert ist, müsstet ihr jetzt die Dateien via FTP oder grafischer Oberfläche löschen können.
Methode 2: Nextcloud File Lock komplett abschalten
Eine langfristige aber nicht unbedingt empfehlenswerte Lösung besteht darin, den Mechanismus des File Locking komplett zu deaktivieren.
Auch diese Einstellung erfolgt in der nunmehr bekannten config.php Datei im config Verzeichnung der NC Installation. Als erstes folgt wieder das bekannte Spiel mit dem Wartungszustand. Es heißt wieder:
'maintenance' => true,
Dann das Feature für den File Lock deaktivieren:
'filelocking.enabled' => false,
Sollte keine Angabe für das File Lock Verhalten in der config.php Datei zu finden sein, fügt ihr eine hinzu. Zukünftig werden keine Dateien mehr für die Bearbeitung gesperrt, aber es bestehenden ja noch Sperr-Einträge in der Präfix_file_locks Tabelle der NC Datenbank. Um das auch noch zu beheben, wiederholt ihr die Schritte aus Methode 1.
Vergesst nicht, den Wartungsmodus zu beenden, indem ihr maintenance wieder auf false setzt.
Warum die zweite Methode nicht unbedingt empfohlen wird? Nun, so ein File Locker an sich ist schon sinnvoll, sonst wäre er in solchen Systemen nicht implementiert. Wenn verschiedene Nutzer oder Prozesse gleichzeitig auf eine Ressource zugreifen und diese bearbeiten möchten, kann das ohne solch einen Sperrmechanismus zu korrumpierten Dateien führen. Aber wenn dadurch ständig irgendwelche Dateien ihrem Herrn und Meister nicht mehr gehorchen, ist das auch ärgerlich. Wenn ihr der einzige Benutzer der Nextcloud seid oder nur eine Handvoll anderer Nutzer sporadisch an einigen Dateien arbeiten, dann geht die Deaktivierung der Dateisperre schon in Ordnung. Letztlich ist auch die Nextcloud nur ein Werkzeug und Werkzeuge sind zum Arbeiten da.
Vielen Dank für diese nachvollziehbare Anleitung, wie das File Lock Problem gelöst werden kann. Auch der Hinweis für den Fall, dass kein Hinweis über das File Lock Verhalten vorhanden ist, war tatsächlich sehr hilfreich.
Danke für den super hilfreichen Artikel! Hat mir sehr geholfen. lg