@@ -1144,20 +1144,31 @@ SyncOptions Folder::initializeSyncOptions() const
1144
1144
{
1145
1145
SyncOptions opt;
1146
1146
ConfigFile cfgFile;
1147
+ const auto account = _accountState->account ();
1147
1148
1148
1149
auto newFolderLimit = cfgFile.newBigFolderSizeLimit ();
1149
1150
opt._newBigFolderSizeLimit = newFolderLimit.first ? newFolderLimit.second * 1000LL * 1000LL : -1 ; // convert from MB to B
1150
1151
opt._confirmExternalStorage = cfgFile.confirmExternalStorage ();
1151
1152
opt._moveFilesToTrash = cfgFile.moveToTrash ();
1152
1153
opt._vfs = _vfs;
1153
- opt._parallelNetworkJobs = _accountState->account ()->isHttp2Supported () ? 20 : 6 ;
1154
+
1155
+ const auto capsMaxConcurrentChunkUploads = account->capabilities ().maxConcurrentChunkUploads ();
1156
+ opt._parallelNetworkJobs = capsMaxConcurrentChunkUploads > 0
1157
+ ? capsMaxConcurrentChunkUploads
1158
+ : account->isHttp2Supported () ? 20 : 6 ;
1154
1159
1155
1160
// Chunk V2: Size of chunks must be between 5MB and 5GB, except for the last chunk which can be smaller
1156
- opt.setMinChunkSize (cfgFile.minChunkSize ());
1157
- opt.setMaxChunkSize (cfgFile.maxChunkSize ());
1158
- opt._initialChunkSize = ::qBound (opt.minChunkSize (), cfgFile.chunkSize (), opt.maxChunkSize ());
1159
- opt._targetChunkUploadDuration = cfgFile.targetChunkUploadDuration ();
1161
+ const auto cfgMinChunkSize = cfgFile.minChunkSize ();
1162
+ opt.setMinChunkSize (cfgMinChunkSize);
1160
1163
1164
+ if (const auto capsMaxChunkSize = account->capabilities ().maxChunkSize (); capsMaxChunkSize) {
1165
+ opt.setMaxChunkSize (capsMaxChunkSize);
1166
+ opt._initialChunkSize = capsMaxChunkSize;
1167
+ } else {
1168
+ const auto cfgMaxChunkSize = cfgFile.maxChunkSize ();
1169
+ opt.setMaxChunkSize (cfgMaxChunkSize);
1170
+ opt._initialChunkSize = ::qBound (cfgMinChunkSize, cfgFile.chunkSize (), cfgMaxChunkSize);
1171
+ }
1161
1172
opt.fillFromEnvironmentVariables ();
1162
1173
opt.verifyChunkSizes ();
1163
1174
0 commit comments