Warn when retrieved size of file upload is different to the expected size in FileProv...
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Wed, 15 Mar 2023 10:27:14 +0000 (11:27 +0100)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 12 May 2023 05:28:45 +0000 (13:28 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift

index b99a318ab59ac8bb8436ccb7a6effec89334edf2..85894382bca60df42083f82dba2f9532764258bb 100644 (file)
@@ -308,7 +308,7 @@ class FileProviderExtension: NSObject, NSFileProviderReplicatedExtension, NKComm
         }) { account, ocId, etag, date, size, _, _, error  in
             self.outstandingSessionTasks.removeValue(forKey: newServerUrlFileName)
 
-            guard error == .success, let ocId = ocId/*, size == itemTemplate.documentSize as! Int64*/ else {
+            guard error == .success, let ocId = ocId else {
                 Logger.fileTransfer.error("Could not upload item with filename: \(itemTemplate.filename, privacy: OSLogPrivacy.auto(mask: .hash)), received error: \(error, privacy: .public)")
                 completionHandler(itemTemplate, [], false, error.toFileProviderError())
                 return
@@ -316,6 +316,10 @@ class FileProviderExtension: NSObject, NSFileProviderReplicatedExtension, NKComm
 
             Logger.fileTransfer.info("Successfully uploaded item with identifier: \(ocId, privacy: .public) and filename: \(itemTemplate.filename, privacy: OSLogPrivacy.auto(mask: .hash))")
 
+            if size != itemTemplate.documentSize as? Int64 {
+                Logger.fileTransfer.warning("Created item upload reported as successful, but there are differences between the received file size (\(size, privacy: .public)) and the original file size (\(itemTemplate.documentSize ?? 0))")
+            }
+
             let newMetadata = NextcloudItemMetadataTable()
             newMetadata.date = (date ?? NSDate()) as Date
             newMetadata.etag = etag ?? ""
@@ -499,6 +503,10 @@ class FileProviderExtension: NSObject, NSFileProviderReplicatedExtension, NKComm
                     if error == .success, let ocId = ocId {
                         Logger.fileProviderExtension.info("Successfully uploaded item with identifier: \(ocId, privacy: .public) and filename: \(item.filename, privacy: OSLogPrivacy.auto(mask: .hash))")
 
+                        if size != item.documentSize as? Int64 {
+                            Logger.fileTransfer.warning("Created item upload reported as successful, but there are differences between the received file size (\(size, privacy: .public)) and the original file size (\(item.documentSize ?? 0))")
+                        }
+
                         let newMetadata = NextcloudItemMetadataTable()
                         newMetadata.date = (date ?? NSDate()) as Date
                         newMetadata.etag = etag ?? ""