Получить загруженную FileMoveFailed Ошибка (код = 516) Когда я использую AF.download () для загрузки файла - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь загрузить файл с помощью AF.download ().

Но я хочу использовать 2 или более запросов для завершения sh этой работы.

Поэтому я использую следующий код для этого.

func doDownload2(task: CloudTask) {
        let header: HTTPHeaders = [
            "Range": "bytes=\(task.chuckStart)-\(task.chunkEnd)"
        ]
        let fileURL = URL(fileURLWithPath: task.localPath)
        let destination: DownloadRequest.Destination = { _, _ in
            return (fileURL, [.createIntermediateDirectories])
        }

        let downloadRequest = AF.download(task.cloudPath, method: .get, headers: header, to: destination)
        self.lstDownloadRequest.append(downloadRequest)
        downloadRequest.response {
            response in
            self.handledTaskInARound = self.handledTaskInARound + 1
            switch response.result {
            case .success(_):
                if let index = self.lstTasks.firstIndex(of: task) {
                    print("Remove task \(self.lstTasks[index].chuckStart) - \(self.lstTasks[index].chunkEnd)")
                    self.lstTasks.remove(at: index)
                }
                break
            case .failure(let error):
                print(error)
                self.failTaskCount = self.failTaskCount + 1
                if self.bCancel {
                    return
                }
                break
            }

            if let statusCode = response.response?.statusCode {
                print("DownloadFile() URL: \(task.cloudPath) part(\(task.chuckStart)- \(task.chunkEnd)) Status Code = \(statusCode)")
            }
//            self.checkTasksStatus()
        }
        downloadRequest.downloadProgress {
            progress in
            let dProgress = progress.fractionCompleted
            print("URL: \(task.cloudPath) part(\(task.chuckStart)- \(task.chunkEnd)) progress = \(dProgress)")

        }

    }

Я использую эту функцию для загрузки двух частей файла с заголовками диапазонов: (0-10485759, 10485760-10531374).

В обеих задачах Сервер возвращает код состояния 206.

Однако я получил ошибку downloadFileMoveFailed (Code = 516) После выполнения этих 2 задач.

Можно ли загрузить эти 2 части в файл?

...