我使用以下代码使用AWS IOS SDK从S3Bucket下载图像
let s3BucketName = "mybucket"
let fileName = "filename.png"
let downloadFilePath = documentDirectory.stringByAppendingPathComponent(fileName)
let downloadingFileURL = NSURL.fileURLWithPath(downloadFilePath)
let downloadRequest = AWSS3TransferManagerDownloadRequest()
downloadRequest.bucket = s3BucketName
downloadRequest.key = "\(folder)\(fileName)"
downloadRequest.downloadingFileURL = downloadingFileURL
transferManager.download(downloadRequest).continueWithSuccessBlock({
(task: BFTask!) -> BFTask! in
dispatch_async(dispatch_get_main_queue(), {
var image = UIImage(named: "\(documentDirectory)/\(fileName)")
imageView.image = image
loaderCellView.hidden = true
})
return nil
})
每当图像被下载时,图像的某些部分变黑。但是当我在S3 Bucket中查看图像时,它会在那里正确显示。这种情况有时发生,有时不发生所以我正在寻找解决方案。见附图。任何人都可以帮助我吗?我会非常感激。
答案 0 :(得分:0)
我自己解决了。我升级了我的AWS SDK并用AWSTask替换了BFTask。它对我来说就像一个魅力。 AWS推出了新的个人框架AWSMobileAnalytics.framework,它引入了AWSTask代替Bolt的BFTask。因此,从现在起,AWS现在已经拥有独立的框架AWSMobileAnalytics.framework,因此不再依赖Bolt框架来运行上传或下载文件的后台进程。下载最新的SDK。删除旧SDK中包含的所有json。然后删除旧SDK的所有框架文件。然后添加来自" frameworks"的所有框架文件。新下载的SDK中的文件夹。在桥接标题中,您只需要更改行" #import< AWSCore / AWSCore.h>"到" #import< AWSMobileAnalytics / AWSMobileAnalytics.h>"。希望它能帮助任何面临同样问题的人。