Nextcloud und SMB - Externer Speicher - Ordner leer, Dateien nicht sichtbar

Da Nextcloud anscheinend sehr komisch sein kann, wenn man als externen Speicher SMB verwendet, habe ich nach einer Lösung für unten folgende Fehlermeldungen gesucht.


Die Grundprobleme:

Die Nextcloud erkennt nicht alle Unterordner/Dateien des externen Speichers.
Externer Ordner wird leer angezeigt.
Dateien werden im Browser angezeigt aber nicht in der App.

"Was ich probiert habe:
  • zum PHP Pfad der Nextcloud (LAMP Installation) navigiert:
nano /var/www/html/
sudo -u www-data php occ files:scan xyz
  • statt xyz z.B.:
—all —verbose
USERNAME—path=„/USERNAME/files/PATHTOMOUNTPOINT“ —verbose

das ist dann im Idealfall fehlerfrei, wenn nicht könnt ihr weitere Fehler erstmal lösen, wie z.B. \\\"path\\\/file.extension\\\" is locked\",\"Exception\":\"OCA\\\\DAV\\\\Connector\\\\Sabre\\\\Exception\\\\FileLocked\",\"Code\":0,\"Trace\":\"#0

Nextcloud Dateien gesperrt

und es dann nochmal probieren
allerdings hat das bei mir eben nichts gebracht:

  • die Ordnergröße wird weiterhin falsch angezeigt, es werden beim Scannen auch viel weniger Dateien erkannt als sich in dem SMB Share befinden
  • selbst wenn man den Scan in einem Pfad durchführt, der in der App leer angezeigt wird, und dort im Scan Dateien auftauchen, zeigt es diese danach bei mir nicht in der App an

Auch hab ich hier SMB/CIFS — Nextcloud latest Administration Manual latest documentation
reingeschaut und dann per apt install php-smbclient den php smbclient nachinstalliert, jedoch ohne Erfolg

  • manchmal war dann doch nach dem Erstellen eines Unterordners über die Nextcloud (welcher eigentlich schon existieren sollte) möglich, wieder Zugriff auf einen Unterordner zu bekommen, der vorher nicht angezeigt wurde. Allerdings hat es auch (siehe oben verlinkter Post) dazu geführt, dass Dateien gesperrt wurden, und diese Einträge aus der Datenbank gelöscht werden mussten.

Die Fehlermeldungen im Nextcloud Protokoll:

  • WebDAV: Icewind\SMB\Exception\Exception: Malformed state response from server
  • PHP: Undefined array key "attributes" at /var/www/nextcloud/apps/files_external/3rdparty/icewind/smb/src/Wrapped/Parser.php#155
  • OCP\Files\StorageNotAvailableException: Unknown error

Was nun tatsächlich funktioniert:

Aus früherer Erfahrung wusste ich schon, dass FTP besser funktioniert, aber nicht warum. Da mir das inzwischen doch zu unsicher ist und ich ein anderes NAS nutze, habe ich nun SFTP eingerichtet.

Leider konnte ich das Problem nicht direkt beheben, aber kann empfehlen, auf SFTP zu wechseln:

Richtet in eurem NAS also per SSH/SFTP (ist quasi das gleiche, weswegen ihr auch bei dem SFTP Share keinen Rootzugriff erlauben solltet, es sei denn ihr braucht diesen für Terminal-Fernzugriff nat.) eine Freigabe/den Zugang ein, fügt nun externen Speicher in der Nextcloud per SFTP hinzu (hier wird der Standardport 22 genommen, ich weiß momentan nicht, wie man den in der NC ändern kann, zumindest geht es in der WEB UI nicht.

Dazu könnt ihr hier nochmal eine kleine TrueNAS (Core) Anleitung begutachten: https://computingforgeeks.com/configure-ftp-sftp-and-s3-on-truenas/?expand_article=1

In der Nextcloud Weboberfläche tragt ihr nun bei “root” das Verzeichnis ein, welches ihr mounten wollt.
Beispiel:
NAS: /mnt/tank/demoshare1
---------------demoshare2 → diesen Ordner wollen wir in der NC einbinden, aber der Nutzer hat Zugriff auf beide:
Nextcloud: “root”: mnt/tank/demoshare2/

Falls danach auch Probleme mit SFTP auftreten:

Kleiner Tipp für einbinden von externem Speicher in der Nextcloud: