我有一个用Swift5编写的项目,该项目按照AWS移动中心集成页面上的说明与AWS文件上载至1GB。现在我想下载多达1GB的文件,并在DropBox应用程序执行操作时使用acitivityViewController将其存储在我的iCloud Drive中。
为此,我有S3存储桶文件URL,我需要将其转换为数据,但是此过程花费了太多时间,并向我显示错误“请求超时”。
DropBox应用程序非常快地下载同一文件。
任何人都可以指导我如何完成此过程,以便我可以将这1GB的下载量下载到iCloud Drive吗?
这是我的代码如何将文件URL转换为NSData。
// Create destination URL
let documentsUrl:URL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first as URL!
let destinationFileUrl = documentsUrl.appendingPathComponent("myfileName")
Alamofire.request("https://ecentrafileupload.s3.amazonaws.com/080546-Chaal_Jeevi_Laiye_2019_Gujarati.mp4", method: .get, headers: nil)
.downloadProgress { progress in
print("Download Progress: \(progress.fractionCompleted)")
}
.responseData { response in
//print(response.result.error)
do {
try response.result.value?.write(to: destinationFileUrl)
do {
//Show UIActivityViewController to save the downloaded file
let contents = try FileManager.default.contentsOfDirectory(at: documentsUrl, includingPropertiesForKeys: nil, options: .skipsHiddenFiles)
for indexx in 0..<contents.count {
if contents[indexx].lastPathComponent == destinationFileUrl.lastPathComponent {
print(contents[indexx])
let activityViewController = UIActivityViewController(activityItems: [contents[indexx]], applicationActivities: nil)
self.present(activityViewController, animated: true, completion: nil)
}
}
}
catch (let err) {
print("error: \(err)")
}
} catch {
print("oops !")
}
}