nextcloud / server

☁️ Nextcloud server, a safe home for all your data
https://nextcloud.com
GNU Affero General Public License v3.0
27.23k stars 4.05k forks source link

🔢 Implement server-side DAV pagination #45102

Open sorbaugh opened 5 months ago

sorbaugh commented 5 months ago

How to use GitHub

Description

Currently, iOS is limited in execution time and data/memory consumption. There is very little available memory and a PROPFIND of a few hundred records is enough to cause an overflow. Therefore, not having pagination, every time a single item changes you have to reload the entire folder with an incalculable waste of time and resources.

Something like a limit to 50 files per query/run would be good.

There are 3 closed PRs that wanted to tackle this problem, we could think of a new approach or "revive" this one if it's more pragmatic.

https://github.com/sabre-io/dav/pull/1074/files

https://github.com/nextcloud/3rdparty/pull/139

https://github.com/nextcloud/server/pull/10880

susnux commented 2 months ago

Exchange seems to have this feature: https://docs.microsoft.com/zh-cn/previous-versions/office/developer/exchange-server-2003/aa123634(v=exchg.65)

sorbaugh commented 2 weeks ago

Update:

@icewind1991 's PR on sabre/dav to handle pagination has been since merged: https://github.com/sabre-io/dav/pull/1074

However we're still waiting for a release to be made on their side. After this is done, we have 2 things to do:

  1. Bump the sabre/dav version
  2. Revive the logic from this PR and merge it: https://github.com/nextcloud/server/pull/10880

IF no new release is made on sabre's side, the approach would be:

  1. Bump the sabre/dav version to have only minimal differences. 1.1 Apply icewind's PR on the lib version we're using
  2. Revive the logic from this PR and merge it: https://github.com/nextcloud/server/pull/10880

cc @Altahrim

cc @tobiasKaminsky @marinofaggiana

marinofaggiana commented 2 weeks ago

thanks, we wait confidently