UIDocumentPickerViewController -> OneDrive/G-Drive -> NSFileCoordinator

Hey, I'm not sure I'm even in the correct ballpark - trying to allow my app to download largish videos from user's OneDrive and G-Drive to app

  1. Is it correct to use NSFileCoordinator in this way?
  2. How do I report progress as it downloads the video (is it possible?)
  3. Is it correct to dismiss the picker like this?
  4. anything else wrong (or, like is....any of it correct? :)

it's sort of working with my contrived examples (I created new personal G-drive / Onedrive accounts, and copied vids up there), but...when I use a file from our corporate OneDrive, from shared folder, I get:

"NSCocoaErrorDomain Code=3328 "The requested operation couldn’t be completed because the feature is not supported."

Is this the NSFileProvider extension (Microsoft's) complaining?

public func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {     guard  let url = urls.first else {       return     }

    let isSecurityScoped = url.startAccessingSecurityScopedResource()     print("(#function) - iSecurityScoped = (isSecurityScoped)")     print("(#function) - document at (url)")     let filename = String(UUID().uuidString.suffix(6)) + "_" +  url.lastPathComponent

    let newURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent(filename)          let readingIntent = NSFileAccessIntent.readingIntent(with: url, options: .withoutChanges)

    fileCoordinator.coordinate(with: [readingIntent], queue: queue) { error in

      defer {         if isSecurityScoped {           url.stopAccessingSecurityScopedResource()         }       }

      if let error = error {         print("(#function) - (error)")         return       }

      let safeURL = readingIntent.url

      do {         let fileData = try Data(contentsOf: safeURL)         try fileData.write(to: newURL, options: .atomic)         print("(#function) - SUCCESS - newURL = (newURL)")       } catch {         print("(#function) - NOOOOO - (error)")       }     }

    controller.dismiss(animated: true)   }

Did you find a solution to this?

UIDocumentPickerViewController -> OneDrive/G-Drive -> NSFileCoordinator
 
 
Q