Warum muss die Android-App ein PROPFIND machen?

Möchte man einen Ordner auf dem Handy synchronisieren, muss der Nextcloud Android-Client zuerst mit PROPFIND herausfinden welche Dateien heruntergeladen werden sollen. Das kann dauern! Viele, viele Stunden!

Ist der Ordner ein externer WebDAV-Speicher und sehr groß, sagen wir 3000 Dateien mit 30 GB insgesamt, kommt es oft und gerne zu einem Timeout und deswegen werden manche Dateien nicht heruntergeladen.

Oder die Synchronisierung bricht ab mit einem fälschlichen “Wartungsmodus”.

Aber ich habe keine Möglichkeit gefunden herauszufinden welche Dateien nicht synchronisiert wurden und deshalb muss man die Synchronisierung wieder und immer wieder von vorne beginnen bis endlich alle Dateien am Handy vorhanden sind.

Soweit ich den High Performance Back-end verstanden habe, überwacht dieser in Echtzeit das Dateisystem und weiß also, welche Dateien geändert wurden und deshalb zu synchronisiern sind.

Warum muss also der Android-Client zuerst mit PROPFIND herausfinden was heruntergeladen werden soll wenn es der High Performance Back-End eh weiß?

Warum fragt der Android-Client nicht gleich den HPBE was es neues gibt?

Das würde die Synchronisierung erheblich verkürzen.

JM2C.

Mit externem Speicher ist das immer etwas schwierig, da andere Prozesse den Inhalt ändern können und Nextcloud nachschauen muss, ob sich was geändert hat. Bei einem schnellen lokalen Speicher, der nur Nextcloud zur Verfügung steht, wird alles direkt aus der Datenbank abgerufen, diese Anfragen können auch gut gecached werden und dann wird es deutlich schneller.

Wenn du den Speicher einbindest, kannst du sagen, ob er bei jedem Zugriff auf Änderungen prüfen soll oder nie. Falls du selten Änderungen extern machst, geht das vermutlich deutlich schneller.

Wie schnell ist dein externer Webdavspeicher, wenn du direkt darauf zugreifst (z.B. mit WinSCP)? Das Listing der Dateien und auch die Transferrate?

Das sind allgemein Benachrichtigungen. Den Dateizugriff selbst beschleunigt das nicht.