针对iOS SDK v2的Amazon S3video上传问题

亲爱的开发者,我有与亚马逊S3video上传相关的问题。

我正在使用iOS SDK V2来安排iOS Client和Amazon之间的交互。 我已经阅读了所有文档,并调查了由Amazon开发人员提供的手册,并且发生了一些没有logging的问题。

我将从一开始就开始解释问题。

1) 身份validation,我使用STS方法来validation用户的亚马逊S3请求。 这个步骤并不是因为我使用这个authenticationconfiguration来上传图片,而且一切都很完美。

2) 对于我正在使用的video文件的上传:

AWSS3TransferManager

上传的示例代码:

AWSS3PutObjectRequest *logFile = [AWSS3PutObjectRequest new]; logFile.bucket = uploadTokenData_.bucket; logFile.key = key; logFile.contentType = contentType; logFile.body = data_; logFile.contentLength = [NSNumber numberWithInteger:[data_ length]]; AWSS3 *S3 = [[AWSS3 alloc] initWithConfiguration:[AWSCredentialsProvider runServiceWithStsCredential]]; AWSS3TransferManager *transferManager = [[AWSS3TransferManager alloc] initWithS3:S3]; [[transferManager.s3 putObject:logFile] continueWithBlock:^id(BFTask *task) { NSLog(@"Error : %@", task.error); if (task.error == nil) { NSLog(@"Uploadet"); } } 

3)出现问题。

1)-1001:几乎立即的错误响应s3file upload更准确,我会为您提供来自亚马逊响应的debugging线。

AWSiOSSDKv2 [Debug] AWSSignature.m行:642 | – [AWSS3ChunkedEncodingInputStream nextChunk] | stream读取:32677,块大小:32768

域= NSURLErrorDomain代码= -1001“请求超时。”

2)堆叠在文件的随机块上,停止上传到服务器。写入networking连接丢失,但Internet连接正常。

错误域= NSURLErrorDomain代码= -1005“networking连接丢失。”

4) 结论

但是这种方法不时上传video文件到亚马逊,这是相当奇怪的。例如,从早上我上传video文件为77 MB,现在每次我收到。

域= NSURLErrorDomain代码= -1001

如果有人知道甚至有一些想法如何解决这个问题,请给我一些build议。

非常感谢您的时间!

当您实例化AWSS3AWSS3TransferManager实例(而不是使用defaultS3defaultS3TransferManager )时,您需要手动保留对客户端对象的强引用。 在你的代码片段中,你的transfer manager对象可以在putObject:之前被释放,S3客户端也可以被释放。

您可以在-setService:forKey: defaultServiceManager上使用-setService:forKey:让服务pipe理器为您pipe理强引用。