2015-08-16 94 views
4

我正在使用Amazon S3在iOS應用上使用swift存儲用戶帳戶的個人資料圖片。我能夠從S3獲取我想要的圖片,但需要很長時間才能加載。我不知道爲什麼會發生這種情況。這正是S3的工作原理,還是有更好的方式去做事情?這是我的代碼下載圖片:爲什麼AWS S3如此之慢? (Swift)

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

檢查您在返回塊中運行的隊列。如果它不是主隊列,那麼設置UIImageViewimage屬性可能需要很長時間才能「注意到」並更新。通過將圖像分配線放入主線程dispatch_async()中來測試這一點。

如果這沒有幫助,請運行Charles並查看S3用於返回圖像的時間。

+0

這聽起來可能是正確的,但我不知道該怎麼做,你能提供一個例子嗎? – JFDeveloper

+0

工作正常!非常感謝! – JFDeveloper

+0

很高興聽到它!祝好運與您的其餘項目。 –

0

下載速度可能因您的存儲區創建區域和您的存取位置而異。請確保在AWS S3中創建存儲區時選擇地理位置接近您的位置的區域。

This image taken from amazon s3 documentation

您可以參考以下中以link獲取有關鬥區的想法Amazon S3的文件。

謝謝!

相關問題