从iOS设备分段上传时,AWS IOS SDK的内存问题

时间:2013-04-22 15:36:15

标签: ios objective-c amazon-web-services amazon-s3

我正在使用S3UploadPartRequest将视频从iOS设备上传到S3。我将使用异步多部分请求上传大小为3-70 MB的视频。

我正在为上传设置S3UploadPartRequest的数据。但它确实有很多内存影响。

  1. 我面临的主要问题是我设置为S3UploadPartRequest的5MB数据对象未正确发布。 (自从回复完成以来很长一段时间后它就会被释放。)

  2. 以正确的方式设置数据,因为如果我并行上传3个部分,则15 MB将驻留在内存中。

  3. 目前我正在使用SDK 1.4.6。同样的问题似乎也发生在1.5.0上。

    这就是我上传的方式:

    我有一个NSOperation子类,我将从start方法启动以下代码

    // Uploading process will be initiated from the Mainthread
    S3UploadPartRequest* upReq = [[S3UploadPartRequest alloc] initWithMultipartUpload:self.s3MultipartUpload];
    upReq.partNumber = self.partNumber;
    
    
    NSData *the_dataToUpload1; // This data will be read from file using a file handle
    
    _partData  = [[NSData alloc] initWithData:the_dataToUpload1];
    NSInputStream *stream = [NSInputStream inputStreamWithData:self.partData ];
    
    [self.fileHandle closeFile];
    
    upReq.contentLength = self.partData.length;
    //upReq.data = the_dataToUpload;
    upReq.stream  =stream;
    
    upReq.contentType = self.client.contentType;
    upReq.delegate = self;
    
    self.partUploadReq = upReq;
    [[[S3UploadManager sharedS3Uploader] s3Client] uploadPart:self.partUploadReq];
    connection = upReq.urlConnection;
    [upReq release];
    

    请建议。

    以下是我的dealloc的样子。

    self.partData = nil;
    self.fileHandle = nil;
    self.partUploadReq.stream = nil;
    self.partUploadReq = nil;
    

0 个答案:

没有答案