为什么AWS S3这么慢? (迅速)

时间:2015-08-16 02:14:04

标签: swift amazon-s3

我正在使用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
        }

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

检查您在返回区中运行的队列。如果它不是主要队列,则设置image的{​​{1}}属性可能需要很长时间才能被注意到#34;并更新。通过将图像分配线放在UIImageView内的主线程中进行测试。

如果这没有帮助,请运行Charles并查看S3返回图片需要多长时间。

答案 1 :(得分:0)

根据您创建的存储区域和访问位置,下载速度可能会有所不同。在AWS S3中创建存储桶时,请务必选择地理位置接近您所在位置的区域。

This image taken from amazon s3 documentation

您可以在以下link中引用Amazon s3文档,以了解存储区域。

谢谢!