针对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议。
非常感谢您的时间!
当您实例化AWSS3
或AWSS3TransferManager
实例(而不是使用defaultS3
或defaultS3TransferManager
)时,您需要手动保留对客户端对象的强引用。 在你的代码片段中,你的transfer manager对象可以在putObject:
之前被释放,S3客户端也可以被释放。
您可以在-setService:forKey:
defaultServiceManager
上使用-setService:forKey:
让服务pipe理器为您pipe理强引用。