适用于iOS SDK v2的Amazon S3视频上传问题

Ole*_*huk 7 video file-upload amazon-s3 amazon-web-services ios

亲爱的开发人员,我有与Amazon S3视频上传相关的问题.

我正在使用iOS SDK V2来安排iOS客户端和亚马逊之间的交互.我已经阅读了所有文档并调查了亚马逊开发人员提供的手册,并且发生了一些未记录的问题.

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

1)身份验证,我正在使用STS方法对Amazon s3请求的用户进行身份验证.由于我正在使用此身份验证配置上传图像并且一切正常运行,因此这个steP不是重点.

2) 上传我正在使用的视频文件:

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");
  }
}
Run Code Online (Sandbox Code Playgroud)

3)出现的问题.

1)-1001:s3文件上传的几乎立即错误响应更精确我将为您提供来自亚马逊的响应的调试行.

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

Domain = NSURLErrorDomain Code = -1001"请求超时."

2)它堆叠在文件的随机块上并停止上传到服务器.写入网络连接丢失,但Internet连接已启动.

错误域= NSURLErrorDomain代码= -1005"网络连接丢失."

4)结论

但是这种方法不时会将视频文件上传到亚马逊,这很奇怪.例如从早上开始,我上传的视频文件为77 MB,现在每次都收到.

Domain = NSURLErrorDomain Code = -1001

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

非常感谢你的时间!

Yos*_*uda 3

AWSS3当您实例化or的实例AWSS3TransferManager(而不是使用defaultS3or defaultS3TransferManager)时,您需要手动保留对客户端对象的强引用。在您的代码片段中,您的传输管理器对象可以在完成之前释放putObject:,并且 S3 客户端也可以随后释放。

您可以使用-setService:forKey:ondefaultServiceManagerAWSServiceManager服务管理器为您管理强引用。

  • 我真的要求您向 Amazon 提供涵盖这些功能的精彩教程,因为 AWS IOS V2 非常好用,但不适合实施和研究。 (4认同)