ios - S3GetObjectMetadataResponse 错误,崩溃。我怎样才能检查它?

标签 ios objective-c amazon-web-services sdk

我有一个应用程序可以使用 Amazon S3 iOS SDK 构建要下载的文件的动态列表。无论我从队列中的哪个位置开始下载,同一个文件始终会使应用程序崩溃。

我已经使用中断查明了问题,它来 self 的 S3GetObjectMetadataResponse 行,因为我试图在下载之前获取文件的大小,以便配置进度条。

self.S3 = [[AmazonS3Client alloc] initWithAccessKey:@"xxxxxxxxxxxxxxxxxxxx" withSecretKey:@"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"];    
S3GetObjectMetadataRequest *getMetadataRequest = [[S3GetObjectMetadataRequest alloc] initWithKey:self.file.fileName withBucket:[self.file contentURLBucket]];
S3GetObjectMetadataResponse *metadataResponse = [self.S3 getObjectMetadata:getMetadataRequest];

如果我注释掉最后一行,一切都会按预期进行 - 当然,除了进度条。

如何处理 S3GetObjectMetadataResponse 错误?有没有更好的方法可以在下载前检查文件大小?

谢谢!

最佳答案

正如我在评论中提到的,您需要确保在 AWS SDK for iOS 中禁用任一异常。或者您在使用 SDK 时在代码中围绕同步调用使用 @try/@catch block 。

This post在我们的博客上解释了如何禁用异常以及在禁用异常时如何使用 SDK。

This post是解释异步使用 SDK 的各种方法的系列中的第一篇。值得注意的是,如果您发出启用异常的异步请求,则不需要 @try/@catch block 。

关于ios - S3GetObjectMetadataResponse 错误,崩溃。我怎样才能检查它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22395139/

相关文章:

iOS通过脚本创建.h文件,自动构建上传

ios - 找不到 Xcode 链接的项目头文件

ios - 添加 Action 以编程方式创建UIButton

amazon-web-services - 如何更改存储在 AWS S3 上的 video.mp4 文件的分辨率?

java - Apache Spark 错误使用 hadoop 将数据卸载到 AWS S3

python - AWS IOT 连接超时异常

ios - 使用 Ionic 4 在 iOS 中直接调用,无需额外对话框

ios - 为什么 UIKit 不喜欢 Swift 3 的可选项?

iOS 4.2.1 Release模式下的视觉错误,但不是 Debug模式或 iOS 5

iphone - 如何设置 UILabel 以使用 Arial Narrow(以编程方式),就像我们在 Storyboard上所做的那样?