AWS services or capabilities described in AWS Documentation may vary by region/location. Click Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.
Completes a multipart upload by assembling previously uploaded parts.
Namespace: Amazon.S3.Model
Assembly: AWSSDK.dll
Version: (assembly version)
public class CompleteMultipartUploadRequest : AmazonWebServiceRequest IRequestEvents
The CompleteMultipartUploadRequest type exposes the following members
Name | Description | |
---|---|---|
CompleteMultipartUploadRequest() |
Name | Type | Description | |
---|---|---|---|
BucketName | System.String | The name of the bucketName containing the S3 object that was being uploaded in parts. | |
Key | System.String | The key of the S3 object that was being uploaded. | |
PartETags | System.Collections.Generic.List<Amazon.S3.Model.PartETag> | A collection of part numbers and corresponding etags. | |
UploadId | System.String | The upload id for the in-progress multipart upload that should be completed. |
Name | Description | |
---|---|---|
AddPartETags(PartETag[]) | Adds a collection of part numbers and corresponding etags. | |
AddPartETags(IEnumerable<PartETag>) | Adds a collection of part numbers and corresponding etags. | |
AddPartETags(UploadPartResponse[]) | Adds a collection of part numbers and corresponding etags by transforming the UploadPartResponses into PartETags. | |
AddPartETags(IEnumerable<UploadPartResponse>) | Adds a collection of part numbers and corresponding etags by transforming the UploadPartResponses into PartETags. | |
AddPartETags(CopyPartResponse[]) | Adds a collection of part numbers and corresponding etags by transforming the CopyPartResponse into PartETags. | |
AddPartETags(IEnumerable<CopyPartResponse>) | Adds a collection of part numbers and corresponding etags by transforming the CopyPartResponse into PartETags. |
This example shows how to upload 13MB of data using mutlipart upload.
The data is contained in a stream and the upload is done in 3 parts:
5MB, 5MB, then the remainder.
int MB = (int)Math.Pow(2, 20); // Create a client AmazonS3Client client = new AmazonS3Client(); // Define input stream Stream inputStream = Create13MBDataStream(); // Initiate multipart upload InitiateMultipartUploadRequest initRequest = new InitiateMultipartUploadRequest { BucketName = "SampleBucket", Key = "Item1" }; InitiateMultipartUploadResponse initResponse = client.InitiateMultipartUpload(initRequest); // Upload part 1 UploadPartRequest uploadRequest = new UploadPartRequest { BucketName = "SampleBucket", Key = "Item1", UploadId = initResponse.UploadId, PartNumber = 1, PartSize = 5 * MB, InputStream = inputStream }; UploadPartResponse up1Response = client.UploadPart(uploadRequest); // Upload part 2 uploadRequest = new UploadPartRequest { BucketName = "SampleBucket", Key = "Item1", UploadId = initResponse.UploadId, PartNumber = 2, PartSize = 5 * MB, InputStream = inputStream }; UploadPartResponse up2Response = client.UploadPart(uploadRequest); // Upload part 3 uploadRequest = new UploadPartRequest { BucketName = "SampleBucket", Key = "Item1", UploadId = initResponse.UploadId, PartNumber = 3, InputStream = inputStream }; UploadPartResponse up3Response = client.UploadPart(uploadRequest); // List parts for current upload ListPartsRequest listPartRequest = new ListPartsRequest { BucketName = "SampleBucket", Key = "Item1", UploadId = initResponse.UploadId }; ListPartsResponse listPartResponse = client.ListParts(listPartRequest); Debug.Assert(listPartResponse.Parts.Count == 3); // Complete the multipart upload CompleteMultipartUploadRequest compRequest = new CompleteMultipartUploadRequest { BucketName = "SampleBucket", Key = "Item1", UploadId = initResponse.UploadId, PartETags = new List<PartETag> { new PartETag { ETag = up1Response.ETag, PartNumber = 1 }, new PartETag { ETag = up2Response.ETag, PartNumber = 2 }, new PartETag { ETag = up3Response.ETag, PartNumber = 3 } } }; CompleteMultipartUploadResponse compResponse = client.CompleteMultipartUpload(compRequest);
.NET Framework:
Supported in: 4.5, 4.0, 3.5
.NET for Windows Store apps:
Supported in: Windows 8.1, Windows 8
.NET for Windows Phone:
Supported in: Windows Phone 8.1, Windows Phone 8