我正在使用S3UploadPartRequest
从 iOS 设备将视频上传到 S3。我将使用异步多部分请求上传大小为 3-70 MB 的视频。
我正在设置S3UploadPartRequest
上传的数据。但它确实有很多内存影响。
我面临的主要问题是我设置的 5MB 数据对象
S3UploadPartRequest
没有正确释放。(响应完成后很久才发布)。是否以正确的方式设置数据,因为如果我要并行上传 3 个部分,则 15 MB 将驻留在内存中。
目前我正在使用 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;