Nextcloud "External Storage" "Error deleting file"


parazit

Recommended Posts

Hallo zusammen!

 

Ich habe seit längerem einen Nextcloud Docker am Laufen und hatte meine Unraid Shares über das "External Storage - Plugin" in Nextcloud per SMB eingebunden. Da es oft zu irgendwelchen Fehlern kam, habe ich jetzt die Shares über die "Local" Variante eingebunden.

Scheint auch auf den ersten Blick gut zu funktionieren, nur bekomme ich immer eine Fehlermeldung und zwei Log-Einträge, wenn ich einen Ordner lösche. Bei Dateien funktioniert es ohne Probleme.

 

Vorgang:

1. Ordner im eingebundenen Share wird gelöscht

2. Rechts oben erscheint die Fehlermeldung "error deleting file "dateiname""

3. Seite wird manuell aktualisiert und der Ordner ist weg

4. Zwei Fehlermeldungen im Log

 

[PHP] Error: Error: rename(): The first argument to copy() function cannot be a directory at /config/www/nextcloud/lib/private/Files/Storage/Local.php#361 at <<closure>>

 0. <<closure>>
    OC\Log\ErrorHandler::onError()
 1. /config/www/nextcloud/lib/private/Files/Storage/Local.php line 361
    rename()
 2. /config/www/nextcloud/lib/private/Files/Storage/Local.php line 580
    OC\Files\Storage\Local->rename()
 3. /config/www/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php line 595
    OC\Files\Storage\Local->moveFromStorage()
 4. /config/www/nextcloud/apps/files_trashbin/lib/Storage.php line 239
    OC\Files\Storage\Wrapper\Wrapper->moveFromStorage()
 5. /config/www/nextcloud/apps/files_trashbin/lib/Trashbin.php line 323
    OCA\Files_Trashbin\Storage->moveFromStorage()
 6. /config/www/nextcloud/apps/files_trashbin/lib/Trash/LegacyTrashBackend.php line 107
    OCA\Files_Trashbin\Trashbin::move2trash()
 7. /config/www/nextcloud/apps/files_trashbin/lib/Trash/TrashManager.php line 102
    OCA\Files_Trashbin\Trash\LegacyTrashBackend->moveToTrash()
 8. /config/www/nextcloud/apps/files_trashbin/lib/Storage.php line 202
    OCA\Files_Trashbin\Trash\TrashManager->moveToTrash()
 9. /config/www/nextcloud/apps/files_trashbin/lib/Storage.php line 125
    OCA\Files_Trashbin\Storage->doDelete()
10. /config/www/nextcloud/lib/private/Files/View.php line 1177
    OCA\Files_Trashbin\Storage->rmdir()
11. /config/www/nextcloud/lib/private/Files/View.php line 355
    OC\Files\View->basicOperation()
12. /config/www/nextcloud/apps/dav/lib/Connector/Sabre/Directory.php line 318
    OC\Files\View->rmdir()
13. /config/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Tree.php line 179
    OCA\DAV\Connector\Sabre\Directory->delete()
14. /config/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php line 281
    Sabre\DAV\Tree->delete()
15. /config/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php line 89
    Sabre\DAV\CorePlugin->httpDelete()
16. /config/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 472
    Sabre\DAV\Server->emit()
17. /config/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 253
    Sabre\DAV\Server->invokeMethod()
18. /config/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 321
    Sabre\DAV\Server->start()
19. /config/www/nextcloud/apps/dav/lib/Server.php line 358
    Sabre\DAV\Server->exec()
20. /config/www/nextcloud/apps/dav/appinfo/v2/remote.php line 35
    OCA\DAV\Server->exec()
21. /config/www/nextcloud/remote.php line 166
    require_once("/config/www/nex ... p")

DELETE /remote.php/dav/files/nextcloud/ShareName/test
 

[PHP] Error: Error: rename(//ShareName/test,//data/nextcloud/files_trashbin/files/test.d1666684644): Cross-device link at /config/www/nextcloud/lib/private/Files/Storage/Local.php#361 at <<closure>>

 0. <<closure>>
    OC\Log\ErrorHandler::onError()
 1. /config/www/nextcloud/lib/private/Files/Storage/Local.php line 361
    rename()
 2. /config/www/nextcloud/lib/private/Files/Storage/Local.php line 580
    OC\Files\Storage\Local->rename()
 3. /config/www/nextcloud/lib/private/Files/Storage/Wrapper/Wrapper.php line 595
    OC\Files\Storage\Local->moveFromStorage()
 4. /config/www/nextcloud/apps/files_trashbin/lib/Storage.php line 239
    OC\Files\Storage\Wrapper\Wrapper->moveFromStorage()
 5. /config/www/nextcloud/apps/files_trashbin/lib/Trashbin.php line 323
    OCA\Files_Trashbin\Storage->moveFromStorage()
 6. /config/www/nextcloud/apps/files_trashbin/lib/Trash/LegacyTrashBackend.php line 107
    OCA\Files_Trashbin\Trashbin::move2trash()
 7. /config/www/nextcloud/apps/files_trashbin/lib/Trash/TrashManager.php line 102
    OCA\Files_Trashbin\Trash\LegacyTrashBackend->moveToTrash()
 8. /config/www/nextcloud/apps/files_trashbin/lib/Storage.php line 202
    OCA\Files_Trashbin\Trash\TrashManager->moveToTrash()
 9. /config/www/nextcloud/apps/files_trashbin/lib/Storage.php line 125
    OCA\Files_Trashbin\Storage->doDelete()
10. /config/www/nextcloud/lib/private/Files/View.php line 1177
    OCA\Files_Trashbin\Storage->rmdir()
11. /config/www/nextcloud/lib/private/Files/View.php line 355
    OC\Files\View->basicOperation()
12. /config/www/nextcloud/apps/dav/lib/Connector/Sabre/Directory.php line 318
    OC\Files\View->rmdir()
13. /config/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Tree.php line 179
    OCA\DAV\Connector\Sabre\Directory->delete()
14. /config/www/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php line 281
    Sabre\DAV\Tree->delete()
15. /config/www/nextcloud/3rdparty/sabre/event/lib/WildcardEmitterTrait.php line 89
    Sabre\DAV\CorePlugin->httpDelete()
16. /config/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 472
    Sabre\DAV\Server->emit()
17. /config/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 253
    Sabre\DAV\Server->invokeMethod()
18. /config/www/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php line 321
    Sabre\DAV\Server->start()
19. /config/www/nextcloud/apps/dav/lib/Server.php line 358
    Sabre\DAV\Server->exec()
20. /config/www/nextcloud/apps/dav/appinfo/v2/remote.php line 35
    OCA\DAV\Server->exec()
21. /config/www/nextcloud/remote.php line 166
    require_once("/config/www/nex ... p")

DELETE /remote.php/dav/files/nextcloud/ShareName/test
 

Leider habe ich bist jetzt keine Lösung gefunden und wollte hier in der Runde fragen, ob nicht vielleicht jemand einen Tipp oder Lösung für dieses Problem hätte?

 

Danke im Voraus!

Edited by parazit
Link to comment
3 minutes ago, hawihoney said:

 

Wo liegt FolderName/ und wie lauten des Rechte?

 

Sorry, das ist nicht die Bezeichnung vom Ordner sondern vom Share, habe es ausgebessert.

Der wurde direkt in der Unraid GUI erstellt.

 

Denselben Share habe ich dann direkt in der Nextcloud Docker Configuration gemapped, um eben den Share über die Variante "local" in Nextcloud einzubinden. Somit sollten die Rechte auf den Share richtig gesetzt sein oder?

130942666_Bildschirmfoto2022-10-25um10_25_38.thumb.png.cc6dc27ab2e693d7c94df954f7a426d6.png

 

Ich bin nach der Video Anleitung von SpaceInvader vorgegangen und im Video hat er genau denselben Fehler "error deleting file" bei Minute 10:44

 

Link to comment

Die Tage hatte ich einen Kunden, wo ich das mit External umgesetzt habe bzw dann doch nicht, weil das ja echt nur so halbgar in Nextcloud integriert ist. Wir haben daher alles in Nextcloud importiert und stattdessen über SMB Extra die Nextcloud User-Ordner als eigene Shares freigegeben. Für die Indexierung gibt es ein Skript, was aktuell noch manuell angestoßen wird, aber ich habe schon überlegt, ob man da nicht die SMB Logs überwacht und das dann automatisch triggert.

 

Jedenfalls glaube ich nicht, dass es sinnvoll ist in External zu schreiben. Wenn nur rein lesend.

 

Link to comment
30 minutes ago, mgutt said:

Jedenfalls glaube ich nicht, dass es sinnvoll ist in External zu schreiben. Wenn nur rein lesend.

 

Hier wird ausschließlich über SMB in die External Storages von Nextcloud reingeschrieben. Nextcloud ist eigentlich nur unser "Indexer". Null Probleme.

 

Es ist doch wurscht welcher User schreibt, Hauptsache die Rechte stimmen. Das ist das Unraid Paradigma.

 

Habe heute morgen via TotalCommander von meinem Windows 11 Laptop eine Plex APK auf Unraid kopiert:

 

-rw-rw-rw-  1 icke   users  54387967 Oct 25 10:57 kepler-armv7a-amazon-9.10.0.35938-d3e192f0.apk

 

Und gerade eben habe ich einen Test Ordner von dem selben Laptop in diesem Share angelegt:

 

drwxrwxrwx  2 icke   users         6 Oct 25 19:38 test/

 

Auf Grund der Rechte kann das jeder löschen. Die Frage ist also: Wie wurde der Ordner angelegt und wie lauten seine Rechte?

 

Nachtrag: Den mit Windows 11 über SMB angelegten Ordner habe ich selbstverständlich über Nextcloud löschen können. Nextcloud scanned einen Ordner den man betritt im Hintergrund automatisch nach neuen Inhalten. Früher war das Verhalten konfigurierbar. Ich finde das aber nicht mehr. Scheint jetzt Standard zu sein.

 

Edited by hawihoney
Link to comment
22 minutes ago, hawihoney said:

 

Also "test" ist der zu löschende Ordner. Aber wie lauten seine Rechte? Womit wurde test angelegt.

 

Genau, test ist der zu löschende Ordner.

 

Habe es jetzt gerade nochmal getestet.

 

Fall 1:

Ordner über die Nextcloud WebGUI erstellt / Rechte: drwxr-xr-x 1 nobody users

Habe dann diesem Ordner alle Rechte gegeben "drwxrwxrwx"

Danach habe ich den Ordner in der Nextcloud WebGUI gelöscht.

Gleiches Verhalten und der gleiche Fehler

 

Fall2:

Ordner im Share erstellt / Rechte: drwxrwxrwx

Diesen Ordner über die Nextcloud WebGUI gelöscht

Fehler bleibt gleich

 

Es liegt also meiner Meinung nach nicht an den Rechten, weil ja der Ordner trotzdem gelöscht wird, auch wenn man die GUI aktualisieren muss.

Im Share ist der Ordner sofort gelöscht.

 

 

 

Link to comment
2 minutes ago, hawihoney said:

 

Nachtrag: Heißt der Ordner tatsächlich "test," (mit Komma)?

 

Nein, ohne Komma.

 

Ich habe es schon sicher 20x probiert :)

 

Nach viel Recherche, habe ich auch noch von anderen Nextcloud Usern gelesen, dass sie den gleichen Fehler haben. Eine Lösung gab es leider nie.

 

Link to comment
4 minutes ago, parazit said:

Ordner über die Nextcloud WebGUI erstellt / Rechte: drwxr-xr-x 1 nobody users

 

Habe ich auch noch mal getestet:

 

drwxr-xr-x  2 nobody users         6 Oct 25 19:57 Neuer\ Ordner/

 

Dann den Ordner wieder mit Nextcloud gelöscht. Kein Problem.

 

Da stimmt etwas nicht mit Deiner Installation. Welchen Nextcloud Container verwendet Du?

 

Link to comment
12 minutes ago, parazit said:

Nein, ohne Komma.

 

Wo kommt denn dann das Komma in der Fehlermeldung her? Ist aber auch egal, das kann nicht den Fehler auslösen.

 

10 hours ago, parazit said:

//ShareName/test,//data/nextcloud/files_trashbin/files/test.d1666684644

 

Ich denke, dass das der Fehler ist. Wie hast Du den Share in den "Externen Speicher" von Nextcloud eingebunden? Wieso ist das ein UNC und nicht der lokale Pfad?

 

Bei mir sieht das so aus:

 

Clipboard01.thumb.jpg.b7f5394590f4cd839a6eac5523f1e2cb.jpg

Edited by hawihoney
Link to comment
32 minutes ago, mgutt said:

Die Tage hatte ich einen Kunden, wo ich das mit External umgesetzt habe bzw dann doch nicht, weil das ja echt nur so halbgar in Nextcloud integriert ist. Wir haben daher alles in Nextcloud importiert und stattdessen über SMB Extra die Nextcloud User-Ordner als eigene Shares freigegeben. Für die Indexierung gibt es ein Skript, was aktuell noch manuell angestoßen wird, aber ich habe schon überlegt, ob man da nicht die SMB Logs überwacht und das dann automatisch triggert.

 

Jedenfalls glaube ich nicht, dass es sinnvoll ist in External zu schreiben. Wenn nur rein lesend.

 

 

So wie du es umgesetzt hast mit den User-Ordner als eigene Shares, wollte ich zuerst auch machen. Wurde mir aber von einem Bekannten abgeraten, weil man ein Indexierungsproblem hat und evtl. sogar mehr Schaden anrichten kann.

 

In External über Nextcloud zu schreiben ist kein Problem, aber auf einen Share zb. über einen PC zu schreiben und dann in Nextcloud aufzurufen ist ein Problem, weil Nextcloud die neuen Dateien nicht sofort aktualisiert. Man kann den Vorgang entweder selber triggern oder warten bis Nextcloud es selber macht.

Damit habe ich aber eigentlich kein Problem. MIr geht es eher darum, dass die Integration der "Externen Shares" ohne Probleme läuft und das tut dieses Plugin nicht.

Egal ob per SMB oder als local - immer ist irgendetwas.

Da sind wir nicht die Einzigen. Wenn man die Nextcloud nur als Cloud ohne der Externen Shares verwendet, läuft einwandfrei.

Aber für meinen Workflow möchte ich beides, deswegen werde ich mir in den nächsten Tagen "Filerun" installieren.

Dort sollte die Einbindung der Externen Shares + Indexierung von Haus aus laufen. Nachteile: nicht Open-Source und nur 10 User wenn man seinen Server registriert.

Link to comment
9 minutes ago, hawihoney said:

 

Habe ich auch noch mal getestet:

 

drwxr-xr-x  2 nobody users         6 Oct 25 19:57 Neuer\ Ordner/

 

Dann den Ordner wieder mit Nextcloud gelöscht. Kein Problem.

 

Da stimmt etwas nicht mit Deiner Installation. Welchen Nextcloud Container verwendet Du?

 

Ich verwende den Linuxserver Container, welchen verwendest du?

Link to comment
3 minutes ago, hawihoney said:

 

Wo kommt denn dann das Komma in der Fehlermeldung her? Ist aber auch egal, das kann nicht den Fehler auslösen.

 

 

Ich denke, dass das der Fehler ist. Wie hast Du den Share in den "Externen Speicher" von Nextcloud eingebunden? Wieso ist das ein UNC und nicht der lokale Pfad?

 

 

Den Share habe ich zuerst im Container gemappt

843230087_Bildschirmfoto2022-10-25um20_16_29.thumb.png.246869fc9b18763d07d6cc9fc1b31298.png

 

und dann in Nextcloud über External Storages den Share über "local" eingebunden

1665193692_Bildschirmfoto2022-10-25um20_17_16.thumb.png.0d86bdbb4f97d1d4fcb38b3d80cbace9.png

Link to comment
7 minutes ago, hawihoney said:

 

Dto.

 

Ich muss sicherheitshalber nochmal nachfragen. Was meinst Du mit "External Storage - Plugin"? Du meinst doch das hier, oder?

 

image.png.b1fc5d6fdb34f5aa22d7eaae2ab56053.png

 

Ja genau. Bei Nextcloud sind es zwar Apps, ich nehme sie aber immer Plugins, sorry :)

 

Kannst du mir vielleicht sagen, wie bei dir die Shares eingebunden sind?

Edited by parazit
Link to comment
5 minutes ago, parazit said:

und dann in Nextcloud über External Storages den Share über "local" eingebunden

 

Und das sieht bei mir so aus. Der einzige Unterschied zwischen uns ist das r/w-slave. Mich wundert, dass bei Dir mit UNC Namen gearbeitet wird (//ShareName/test). Was würde denn Nextcloud bei mir machen? //Mnt/? Da stimmt etwas nicht. Der Name in der Container Einstellung hat nichts, aber auch überhaupt nichts, mit Nextcloud zu tun. Der Container Path ist relevant. In der Fehlermeldung wird aber der Name aus der Container Einstellung verwendet. Da weiß ich nicht weiter ...

 

Clipboard01.thumb.jpg.8aafb56967ee074e1a233f463c70852c.jpg

 

Link to comment
1 hour ago, parazit said:

weil man ein Indexierungsproblem hat

Hast du bei External Storage auch, wenn du keinen Cron laufen hast. Nextcloud scannt den Ordner ja alle 15 Minuten (wenn das dein Cron-Intervall ist).

 

1 hour ago, parazit said:

sogar mehr Schaden anrichten kann

Das ist Unsinn.

 

Ein paar Nachteile hat External Storage auch. zB wenn man Dateien auf dem externen Storage löscht, sind sie weg, statt im Nextcloud Papierkorb zu landen. Ändert man sie dort, werden diese Änderungen nicht von Nextcloud gesichert. Löscht man sie dagegen über Nextcloud, landen sie auf dem Datenträger, wo /data liegt. Das kann lustige Side Effects haben, insbesondere wenn man diesen Ordner eigentlich nur auf der SSD haben will. Und das selbe gilt für Dateiänderungen, die man über Nextcloud anstößt. Dann wird die Originaldatei ebenfalls nach /data verschoben.

 

Aber ähnliche Side Effects hat man auch bei meiner genannten Idee das als SMB Extra Share verfügbar zu machen.

 

Vermutlich sind beide Varianten doof. Ich denke optimal ist es, wenn man External Storage nur für read-only Ordner nutzt und auf alles was direkt in der Nextcloud liegt, sollte man nur über die GUI oder WebDAV zugreifen. Dann passt der Index, der Papierkorb und die Dateiversionierung.

Link to comment
1 hour ago, mgutt said:

Und das selbe gilt für Dateiänderungen, die man über Nextcloud anstößt. Dann wird die Originaldatei ebenfalls nach /data verschoben.

 

Die alte Datei: Ja. Die neue geänderte Datei ins External Storage, wohin sie gehört. Die alte Datei im /data dient  der Versionierung und kann wieder restored werden.

 

Link to comment

Aus eigener Erfahrung kann ich sagen, dass Nextcloud External Storage mit R/W- Rechten ein Graus ist. Ich hatte damals neben verschiedensten Rechte-Problemen auch den Fehler beim Löschen von Ordnern (Wenn es wen interessiert kann es hier nachgelesen werden: https://forums.unraid.net/topic/118356-nextcloud-rechteproblem-smb ). Letztendlich bin ich dann, wie mgutt bereits erwähnte, zum Schluss gekommen auf den External Storage nur rein lesend zuzugreifen bzw. habe ich dann die betreffenden Shares beim Mapping gleich auf Read-only gesetzt.

 

Edited by Enks
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.