Marino Faggiana 6 年之前
父节点
当前提交
fff6fb68da

+ 8 - 0
PickerFileProvider/FileProviderExtension+Network.swift

@@ -136,6 +136,9 @@ extension FileProviderExtension {
 
         NSFileProviderManager.default.register(task, forItemWithIdentifier: NSFileProviderItemIdentifier(item.itemIdentifier.rawValue)) { (error) in }
         
+        let url = URL(string: providerData.fileProviderStorageURL!.path + "/"  + item.itemIdentifier.rawValue + "/" + item.filename)
+        self.outstandingUploadTasks[url!] = task
+        
         queueTradeSafe.async(flags: .barrier) {
             fileProviderSignalUpdateContainerItem[item.itemIdentifier] = item
             fileProviderSignalUpdateWorkingSetItem[item.itemIdentifier] = item
@@ -156,6 +159,11 @@ extension FileProviderExtension {
             return
         }
         
+        // remove task on outstandingUploadTasks
+        let itemIdentifier = providerData.getItemIdentifier(metadata: metadata)
+        let url = URL(string: providerData.fileProviderStorageURL!.path + "/"  + itemIdentifier.rawValue + "/" + fileName)
+        outstandingUploadTasks.removeValue(forKey: url!)
+        
         if errorCode == 0 {
             
             // importDocument

+ 6 - 0
PickerFileProvider/FileProviderExtension.swift

@@ -575,6 +575,12 @@ class FileProviderExtension: NSFileProviderExtension, CCNetworkingDelegate {
             downloadTask.cancel()
             outstandingDownloadTasks.removeValue(forKey: url)
         }
+        
+        // Upload task
+        if let uploadTask = outstandingUploadTasks[url] {
+            uploadTask.cancel()
+            outstandingUploadTasks.removeValue(forKey: url)
+        }
     }
     
     // --------------------------------------------------------------------------------------------