У меня есть видеофайл на S3, который я пытаюсь сохранить на диске. Однако, если файл уже существует на диске, я хочу его перезаписать. Я написал эту функцию для загрузки файла, но он никогда не сохраняет файл. Я вижу прогресс, который увеличивается. Но как мне получить доступ к результирующему файлу и сохранить его на диск?Alamofire не сохраняет файл на диск
var finalPath: NSURL?
Alamofire.download(.GET, s3Url) { temporaryURL, response in
let fileManager = NSFileManager.defaultManager()
if let directoryURL = fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as? NSURL {
let pathComponent = response.suggestedFilename
finalPath = directoryURL.URLByAppendingPathComponent(pathComponent!)
println(finalPath)
//remove the file if it exists
if fileManager.fileExistsAtPath(finalPath!.absoluteString!) {
println("file exists on disk, removing..")
fileManager.removeItemAtPath(finalPath!.absoluteString!, error: nil)
}
return finalPath!
}
return temporaryURL
}
.validate()
.progress { bytesRead, totalBytesRead, totalBytesExpectedToRead in
let progress = (Double(totalBytesRead)/Double(totalBytesExpectedToRead)) * 100
println(String(format: "%.2f", progress))
}
.response { request, response, data, error in
println(request)
println(response)
if let mediaData = data {
println("saving file to disk")
mediaData.writeToURL(finalPath!, atomically: true)
}
}
Обычно я использовал бы пример, представленный в документах, но он не работает, если файл уже существует. то есть:
let destination = Alamofire.Request.suggestedDownloadDestination(directory: .DocumentDirectory, domain: .UserDomainMask)
Итак, как я могу загрузить файл, перезаписать его, если он существует, и записать путь, файл записывается в моей базе данных CoreData?