From 05b8d1e40dc32a343dc9dec384bca168827912d4 Mon Sep 17 00:00:00 2001 From: Matthieu Gallien Date: Thu, 25 Nov 2021 16:48:10 +0100 Subject: [PATCH] batch upload: only handle file that are in the reply do not handle all files sent but only received ones should allow to submit more than one request in parallel Signed-off-by: Matthieu Gallien --- src/libsync/bulkpropagatorjob.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/libsync/bulkpropagatorjob.cpp b/src/libsync/bulkpropagatorjob.cpp index bd120d4fe..2d5362a94 100644 --- a/src/libsync/bulkpropagatorjob.cpp +++ b/src/libsync/bulkpropagatorjob.cpp @@ -301,11 +301,10 @@ void BulkPropagatorJob::slotOnErrorStartFolderUnlock(SyncFileItemPtr item, void BulkPropagatorJob::slotPutFinishedOneFile(const BulkUploadItem &singleFile, PutMultiFileJob *job, - const QJsonObject &fullReplyObject) + const QJsonObject &fileReply) { bool finished = false; - const auto fileReply = fullReplyObject.value(QChar('/') + singleFile._item->_file).toObject(); qCInfo(lcBulkPropagatorJob()) << singleFile._item->_file << "file headers" << fileReply; if (!fileReply[QStringLiteral("error")].toBool()) { @@ -371,8 +370,12 @@ void BulkPropagatorJob::slotPutFinished() const auto replyJson = QJsonDocument::fromJson(replyData); const auto fullReplyObject = replyJson.object(); - for (const auto &oneFile : _filesToUpload) { - slotPutFinishedOneFile(oneFile, job, fullReplyObject); + for (const auto &singleFile : _filesToUpload) { + if (!fullReplyObject.contains(singleFile._remotePath)) { + continue; + } + const auto singleReplyObject = fullReplyObject[singleFile._remotePath].toObject(); + slotPutFinishedOneFile(singleFile, job, singleReplyObject); } finalize(); -- 2.30.2