2012-07-21 74 views
2

基于此示例http://aws.amazon.com/articles/0006282245644577,明确了如何使用AWS iOS SDK使用分段上传。但是,当我尝试恢复中断的上传时,似乎我的上传没有正确拼接。AWS iOS:如何恢复分段上传

我使用下面的代码恢复上传。这是设置分段上传的上传ID的正确方法吗?

S3InitiateMultipartUploadRequest *initiateRequest = [[S3InitiateMultipartUploadRequest alloc] initWithKey:key inBucket:bucketName]; 
S3InitiateMultipartUploadResponse *initiateResponse = [self.amazonS3Client initiateMultipartUpload:initiateRequest]; 
self.multipartUpload = [initiateResponse multipartUpload]; 

// Set upload id to resume upload 
self.multipartUpload.uploadId = uploadId; 

我会很感激任何帮助或指针。

回答

1

您的代码应该足够强大,以处理您可能需要跟踪哪些部件上传的情况。部分上传的分段上传可以通过多种方式完成(并行,多线程或顺序依次)。

无论上述方法如何,您都可以使用listParts API来确定成功上传了多少个零件。由于您已拥有上传ID,因此您的设计必须支持从以下零件上传中继续。

GET /ObjectName?uploadId=UploadId HTTP/1.1 
    Host: BucketName.s3.amazonaws.com 
    Date: Date 
    Authorization: Signature 

另一个有用的资源来帮助优化多上传:http://aws.typepad.com/aws/2010/11/amazon-s3-multipart-upload.html