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