我正在使用Amazon S3在iOS应用程序上使用swift存储用户帐户的个人资料图片。我能够从S3获取我想要的图片,但是他们需要很长时间才能加载。我不知道为什么会这样。这就是S3的工作方式,还是有更好的方法做事?这是我下载图片的代码:
let downloadingFilePath1 = NSTemporaryDirectory().stringByAppendingPathComponent("temp-download")
let downloadingFileURL1 = NSURL(fileURLWithPath: downloadingFilePath1)
let transferManager = AWSS3TransferManager.defaultS3TransferManager()
let readRequest1 : AWSS3TransferManagerDownloadRequest = AWSS3TransferManagerDownloadRequest()
readRequest1.bucket = "groopapictures"
readRequest1.key = self.searchTextField.text
readRequest1.downloadingFileURL = downloadingFileURL1
transferManager.download(readRequest1).continueWithBlock { (task) -> AnyObject! in
println(task.error)
if task.error == nil {
self.ppImageView.hidden = false
println("Fetched image")
self.ppImageView.image = UIImage(contentsOfFile: downloadingFilePath1)
}
return nil
}
任何帮助将不胜感激!
答案 0 :(得分:2)
检查您在返回区中运行的队列。如果它不是主要队列,则设置image
的{{1}}属性可能需要很长时间才能被注意到#34;并更新。通过将图像分配线放在UIImageView
内的主线程中进行测试。
如果这没有帮助,请运行Charles并查看S3返回图片需要多长时间。
答案 1 :(得分:0)
根据您创建的存储区域和访问位置,下载速度可能会有所不同。在AWS S3中创建存储桶时,请务必选择地理位置接近您所在位置的区域。
This image taken from amazon s3 documentation
您可以在以下link中引用Amazon s3文档,以了解存储区域。
谢谢!