首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当异常关闭时未调用iOS didFailWithError的AWS

当异常关闭时未调用iOS didFailWithError的AWS
EN

Stack Overflow用户
提问于 2013-12-02 22:56:58
回答 1查看 871关注 0票数 0

当我像这样设置我的S3时

代码语言:javascript
复制
@property (nonatomic, strong) S3TransferManager *tm;

.
.

[AmazonErrorHandler shouldNotThrowExceptions];
[AmazonLogger verboseLogging];
self.tm = [S3TransferManager new];
self.tm.s3 = self.s3;
self.tm.delegate = self;

然后使用

代码语言:javascript
复制
request = .......

S3TransferOperation * op = [self.tm download:request];

当我获取存在于我的S3帐户上的文件时,回调将被调用。

代码语言:javascript
复制
-(void)request:(AmazonServiceRequest *)request didCompleteWithResponse:(AmazonServiceResponse *)response

但是,当我试图获取不退出的文件时,回调不会被调用。

代码语言:javascript
复制
-(void)request:(AmazonServiceRequest *)request didFailWithError:(NSError *)error

如果我移除

代码语言:javascript
复制
// [AmazonErrorHandler shouldNotThrowExceptions];

然后我有了一个不同的问题,异常被抛出,但是尽管我有一个适当的“try.”catch块,但是应用程序崩溃了。

代码语言:javascript
复制
    @try {

        .
        .
        .
        S3TransferOperation * op = [self.tm download:request];

    } @catch (AmazonServiceException *exception) {

        NSLog(@"========================>[S3 Module] ERROR, Unable to download file : %@", exception.error);

        return NUMBOOL(NO);

    } @catch (NSException * exception) {

        NSLog(@"*************************[S3 Module] ERROR, Unable to download file : %@", exception);

        return NUMBOOL(NO);
    }

这是禁用异常抛出时的AWS详细日志。

代码语言:javascript
复制
    [DEBUG] 2013-12-01 23:25:16.243 Ti-AWS-S3[84675:a0b] AmazonS3Client.m|-[AmazonS3Client invoke:]|443|Begin Request: S3GetObjectMetadataRequest
    [DEBUG] 2013-12-01 23:25:16.246 Ti-AWS-S3[84675:a0b] AmazonS3Client.m|-[AmazonS3Client signS3Request:]|646|In SignURLRequest: String to Sign = [HEAD
    [DEBUG] application/x-www-form-urlencoded; charset=utf-8
    [DEBUG] Sun, 01 Dec 2013 21:25:16 GMT
    [DEBUG] /hello-XXX/NDAb.pdf]
    [DEBUG] 2013-12-01 23:25:16.247 Ti-AWS-S3[84675:a0b] AmazonS3Client.m|-[AmazonS3Client invoke:]|462|HEAD https://hello-XXX.s3.amazonaws.com/NDAb.pdf?
    [DEBUG] 2013-12-01 23:25:16.248 Ti-AWS-S3[84675:a0b] AmazonS3Client.m|-[AmazonS3Client invoke:]|463|Request headers:
    [DEBUG] 2013-12-01 23:25:16.249 Ti-AWS-S3[84675:a0b] AmazonS3Client.m|-[AmazonS3Client invoke:]|466|  Date: Sun, 01 Dec 2013 21:25:16 GMT
    [DEBUG] 2013-12-01 23:25:16.250 Ti-AWS-S3[84675:a0b] AmazonS3Client.m|-[AmazonS3Client invoke:]|466|  Content-Length: 0
    [DEBUG] 2013-12-01 23:25:16.250 Ti-AWS-S3[84675:a0b] AmazonS3Client.m|-[AmazonS3Client invoke:]|466|  Authorization: AWS AKXXXXXW3YSTRRZAR4JPA:XXXXSAWELv5xAAR/mxXXXXVVJ2tr=
    [DEBUG] 2013-12-01 23:25:16.251 Ti-AWS-S3[84675:a0b] AmazonS3Client.m|-[AmazonS3Client invoke:]|466|  User-Agent: Transfer Manager, aws-sdk-iOS/1.7.0 iPhone-OS/7.0 en_US NE
    [DEBUG] 2013-12-01 23:25:16.252 Ti-AWS-S3[84675:a0b] AmazonS3Client.m|-[AmazonS3Client invoke:]|466|  Content-Type: application/x-www-form-urlencoded; charset=utf-8
    [DEBUG] 2013-12-01 23:25:16.252 Ti-AWS-S3[84675:a0b] AmazonS3Client.m|-[AmazonS3Client invoke:]|466|  Host: hello-XXXXX.s3.amazonaws.com
    [DEBUG] 2013-12-01 23:25:16.253 Ti-AWS-S3[84675:a0b] AmazonS3Client.m|-[AmazonS3Client invoke:]|468|Request body:
    [DEBUG] 2013-12-01 23:25:16.254 Ti-AWS-S3[84675:a0b] AmazonS3Client.m|-[AmazonS3Client invoke:]|470|
    [DEBUG] 2013-12-01 23:25:17.840 Ti-AWS-S3[84675:a0b] S3Response.m|-[S3Response connectionDidFinishLoading:]|182|Response:
    [DEBUG] 2013-12-01 23:25:17.841 Ti-AWS-S3[84675:a0b] AmazonS3Client.m|-[AmazonS3Client invoke:]|521|Response Status Code : 404
    [DEBUG] 2013-12-01 23:25:17.842 Ti-AWS-S3[84675:a0b] AmazonS3Client.m|-[AmazonS3Client invoke:]|530|Request threw exception: AmazonServiceException { RequestId:(null), ErrorCode:(null), Message:(null) }
    [DEBUG] 2013-12-01 23:25:17.842 Ti-AWS-S3[84675:a0b] AmazonS3Client.m|-[AmazonS3Client invoke:]|532|HTTP: 404, S3 Error Code: (null)
    [DEBUG] 2013-12-01 23:25:17.843 Ti-AWS-S3[84675:a0b] AmazonS3Client.m|-[AmazonS3Client invoke:]|534|Reason: (null)

正如你所看到的,我的回调不会被触发。是不是我做错了什么?或者这是AWS中的一个bug?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-13 20:24:05

我们发布了适用于iOS的AWSSDK1.7.1版本,其中包括一些与S3TransferManager相关的修复,包括您在这里注意到的问题。您可以阅读更多关于发布说明中的其他特性增强和bug修复的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20339577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档