Я пытаюсь загрузить файл с помощью 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 части в файл?