From: Claudio Cambra Date: Fri, 28 Jul 2023 07:14:17 +0000 (+0800) Subject: Conform to chunk sizing restrictions introduced in Chunking V2 X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~9^2~24^2~11 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=cbbb4c87b822cb113b3fa919c3920dd2e114967a;p=nextcloud-desktop.git Conform to chunk sizing restrictions introduced in Chunking V2 Signed-off-by: Claudio Cambra --- diff --git a/src/gui/folder.cpp b/src/gui/folder.cpp index 0511cba81..6b62183cd 100644 --- a/src/gui/folder.cpp +++ b/src/gui/folder.cpp @@ -1036,9 +1036,10 @@ SyncOptions Folder::initializeSyncOptions() const opt._vfs = _vfs; opt._parallelNetworkJobs = _accountState->account()->isHttp2Supported() ? 20 : 6; - opt._initialChunkSize = cfgFile.chunkSize(); - opt._minChunkSize = cfgFile.minChunkSize(); - opt._maxChunkSize = cfgFile.maxChunkSize(); + // Chunk V2: Size of chunks must be between 5MB and 5GB, except for the last chunk which can be smaller + opt._minChunkSize = qMin(cfgFile.minChunkSize(), 5LL * 1000LL * 1000LL); + opt._maxChunkSize = qMax(cfgFile.maxChunkSize(), 5LL * 1000LL * 1000LL); + opt._initialChunkSize = qBound(opt._minChunkSize, cfgFile.chunkSize(), opt._maxChunkSize); opt._targetChunkUploadDuration = cfgFile.targetChunkUploadDuration(); opt.fillFromEnvironmentVariables(); diff --git a/src/libsync/configfile.cpp b/src/libsync/configfile.cpp index 5931929d5..42ede1eb7 100644 --- a/src/libsync/configfile.cpp +++ b/src/libsync/configfile.cpp @@ -252,13 +252,13 @@ qint64 ConfigFile::chunkSize() const qint64 ConfigFile::maxChunkSize() const { QSettings settings(configFile(), QSettings::IniFormat); - return settings.value(QLatin1String(maxChunkSizeC), 1000 * 1000 * 1000).toLongLong(); // default to 1000 MB + return settings.value(QLatin1String(maxChunkSizeC), 5 * 1000 * 1000 * 1000).toLongLong(); // default to 5000 MB } qint64 ConfigFile::minChunkSize() const { QSettings settings(configFile(), QSettings::IniFormat); - return settings.value(QLatin1String(minChunkSizeC), 1000 * 1000).toLongLong(); // default to 1 MB + return settings.value(QLatin1String(minChunkSizeC), 5 * 1000 * 1000).toLongLong(); // default to 5 MB } chrono::milliseconds ConfigFile::targetChunkUploadDuration() const