OGeek|极客世界-中国程序员成长平台

标题: ios - S3GetObjectMetadataResponse 错误,崩溃。我怎样才能检查它? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 20:13
标题: ios - S3GetObjectMetadataResponse 错误,崩溃。我怎样才能检查它?

我有一个应用程序,它使用 Amazon S3 iOS 开发工具包构建要下载的文件的动态列表。无论我从队列中的哪个位置开始下载,同一个文件都会导致应用程序崩溃。

我已经使用中断查明了问题,它来 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 错误?有没有更好的方法可以在下载前检查文件大小?

谢谢!



Best Answer-推荐答案


正如我在评论中提到的,您需要确保在 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/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4