Container for the parameters to the InitiateMultipartUpload operation.
Initiates a multipart upload and returns an upload ID.
Inheritance Hierarchy
System.Object
Amazon.Runtime.AmazonWebServiceRequest
Amazon.S3.Model.PutWithACLRequest
Amazon.S3.Model.InitiateMultipartUploadRequest
Amazon.Runtime.AmazonWebServiceRequest
Amazon.S3.Model.PutWithACLRequest
Amazon.S3.Model.InitiateMultipartUploadRequest
Namespace: Amazon.S3.Model
Assembly: AWSSDK.dll
Version: 2.0.0.3
Syntax
public class InitiateMultipartUploadRequest : PutWithACLRequest IRequestEvents
The InitiateMultipartUploadRequest type exposes the following members
Constructors
Name | Description | |
---|---|---|
![]() |
InitiateMultipartUploadRequest() |
Properties
Name | Description | |
---|---|---|
![]() |
BucketName | The name of the bucketName where the new object will be created, or existing object updated. |
![]() |
CannedACL |
A canned access control list (ACL) to apply to the object.
Please refer to |
![]() |
ContentType | This is a convenience property for Headers.ContentType. |
![]() |
Grants |
Gets the access control lists (ACLs) for this request.
Please refer to |
![]() |
Headers | The collection of headers for the request. |
![]() |
Key | The key of the object to create or update. |
![]() |
MetaData | The collection of meta data for the request. |
![]() |
ServerSideEncryptionMethod |
Specifies the encryption to be used on the server for the new object. |
![]() |
StorageClass | StorageClass property for the object. |
![]() |
WebsiteRedirectLocation | If the bucketName is configured as a website, redirects requests for this object to another object in the same bucketName or to an external URL. Amazon S3 stores the value of this header in the object metadata. |
Examples
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.
Multipart Upload Sample
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);
Version Information
.NET Framework:
Supported in: 4.5, 4.0, 3.5
.NET for Windows Store apps:
Supported in: Windows 8
.NET for Windows Phone:
Supported in: Window Phone 8