从 S3Bucket 下载的部分图像在 AWS IOS SDK 中显示为黑色
Some portion of the images downloaded from S3Bucket is appearing black in AWS IOS SDK
我正在使用以下代码使用 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 中的图像时,它会正确显示在那里。这种情况有时会发生,有时不会。所以我正在寻找解决方案。见附图。谁能帮我这个?我会很高兴的。
我自己解决了。我升级了我的 AWS SDK 并将 BFTask 替换为 AWSTask。它对我来说就像一个魅力。 AWS 引入了新的个人框架 AWSMobileAnalytics.framework,它引入了 AWSTask 来代替 Bolt 的 BFTask。因此,它不再依赖于 Bolt 框架来 运行 上传或下载文件的后台进程,因为从现在开始,AWS 现在有了独立的框架 AWSMobileAnalytics.framework。下载最新的 SDK。删除旧 SDK 中包含的所有 json。然后删除旧SDK的所有框架文件。然后在新下载的 SDK 中添加 "frameworks" 文件夹中的所有框架文件。在桥接头中,您只需将行“#import < AWSCore/ AWSCore.h>”更改为“#import < AWSMobileAnalytics/ AWSMobileAnalytics.h>”。希望对遇到同样问题的人有所帮助。
我正在使用以下代码使用 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
})
我自己解决了。我升级了我的 AWS SDK 并将 BFTask 替换为 AWSTask。它对我来说就像一个魅力。 AWS 引入了新的个人框架 AWSMobileAnalytics.framework,它引入了 AWSTask 来代替 Bolt 的 BFTask。因此,它不再依赖于 Bolt 框架来 运行 上传或下载文件的后台进程,因为从现在开始,AWS 现在有了独立的框架 AWSMobileAnalytics.framework。下载最新的 SDK。删除旧 SDK 中包含的所有 json。然后删除旧SDK的所有框架文件。然后在新下载的 SDK 中添加 "frameworks" 文件夹中的所有框架文件。在桥接头中,您只需将行“#import < AWSCore/ AWSCore.h>”更改为“#import < AWSMobileAnalytics/ AWSMobileAnalytics.h>”。希望对遇到同样问题的人有所帮助。