当我像这样设置我的S3时
@property (nonatomic, strong) S3TransferManager *tm;
.
.
[AmazonErrorHandler shouldNotThrowExceptions];
[AmazonLogger verboseLogging];
self.tm = [S3TransferManager new];
self.tm.s3 = self.s3;
self.tm.delegate = self;然后使用
request = .......
S3TransferOperation * op = [self.tm download:request];当我获取存在于我的S3帐户上的文件时,回调将被调用。
-(void)request:(AmazonServiceRequest *)request didCompleteWithResponse:(AmazonServiceResponse *)response但是,当我试图获取不退出的文件时,回调不会被调用。
-(void)request:(AmazonServiceRequest *)request didFailWithError:(NSError *)error如果我移除
// [AmazonErrorHandler shouldNotThrowExceptions];然后我有了一个不同的问题,异常被抛出,但是尽管我有一个适当的“try.”catch块,但是应用程序崩溃了。
@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详细日志。
[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?
发布于 2013-12-13 20:24:05
我们发布了适用于iOS的AWSSDK1.7.1版本,其中包括一些与S3TransferManager相关的修复,包括您在这里注意到的问题。您可以阅读更多关于发布说明中的其他特性增强和bug修复的信息。
https://stackoverflow.com/questions/20339577
复制相似问题