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