Skip to main content

CreateMultipartUpload

Initiates a multipart upload and returns an upload ID.

Description

The CreateMultipartUpload operation initiates a multipart upload and returns an upload ID. This upload ID is used to associate all of the parts in the specific multipart upload. You specify this upload ID in each of your subsequent UploadPart operations.

note
  • Use multipart upload for objects larger than 5 GB.
  • After you initiate the multipart upload and upload one or more parts, you must either complete or abort the multipart upload.
  • QStorage will not process any additional requests until the multipart upload is either completed or aborted.
  • You can use SSE, but this means your uploaded data will be encrypted twice, once with the specified key, and again for storage.

Request Syntax

POST /ObjectKey?uploads HTTP/1.1
Host: BucketName.qstorage.quilibrium.com
Content-Type: Type
x-amz-tagging: TagSet
x-amz-expected-bucket-owner: OwnerAccountId
Values in italics indicate user input and should be replaced with actual values.

This operation does not have a request body.

Request Parameters

Headers

NameDescriptionRequiredType
Content-TypeA standard MIME type describing the format of the object dataNotext
x-amz-aclThe canned ACL to apply to the object

Valid values: private | public-read | public-read-write | authenticated-read | aws-exec-read | bucket-owner-read | bucket-owner-full-control
Notext
x-amz-taggingThe tag-set for the object. The tag-set must be encoded as URL Query parametersNotext
x-amz-server-side-encryptionServer-side encryption algorithm to use

Valid values: AES256 | verenc
Notext
x-amz-server-side-encryption-aws-kms-key-idIf x-amz-server-side-encryption is verenc, this specifies the ID of the QKMS key to useNotext
x-amz-server-side-encryption-contextIf x-amz-server-side-encryption is verenc, this specifies the encryption context to useNotext
x-amz-server-side-encryption-bucket-key-enabledSpecifies whether to use an QStorage Bucket Key for object encryption with SSE-KMS

Valid values: true | false
Notext
x-amz-metadata-directiveSpecifies whether the metadata is copied from the source object or replaced

Valid values: COPY | REPLACE
Notext
x-amz-website-redirect-locationIf the bucket is configured as a website, redirects requests for this object to another object or URLNotext
x-amz-expected-bucket-ownerThe account ID of the expected bucket ownerNotext

Response Syntax

HTTP/1.1 200 OK
x-amz-id-2: RequestId
x-amz-request-id: AmazonRequestId
Date: ISO8601Date
<?xml version="1.0" encoding="UTF-8"?> <InitiateMultipartUploadResult> <Bucket>BucketName</Bucket> <Key>ObjectKey</Key> <UploadId>UploadId</UploadId> </InitiateMultipartUploadResult>
Values in italics indicate variable response values.

Response Elements

Response Headers

NameDescriptionRequiredType
x-amz-id-2An identifier for the requestNoString
x-amz-request-idA unique identifier for the requestNoString
x-amz-server-side-encryptionThe server-side encryption algorithm used when storing this objectNoString
x-amz-server-side-encryption-aws-kms-key-idIf x-amz-server-side-encryption is verenc, this indicates the ID of the QKMS key usedNoString
x-amz-server-side-encryption-contextIf x-amz-server-side-encryption is verenc, this is the encryption context usedNoString
x-amz-server-side-encryption-bucket-key-enabledIndicates whether the multipart upload uses an S3 Bucket Key for SSE-KMSNoString
x-amz-abort-dateIf the bucket has a lifecycle rule for incomplete multipart uploads, this header indicates when the upload becomes eligible for deletionNoString
x-amz-abort-rule-idIf the bucket has a lifecycle rule for incomplete multipart uploads, this header provides the ID of that ruleNoString
DateThe date and time at which the response was sentNoString

Response Body Elements

NameDescriptionRequiredType
BucketName of the bucket to which the multipart upload was initiatedNoString
KeyObject key for which the multipart upload was initiatedNoString
UploadIdID for the initiated multipart upload. This ID must be used in subsequent UploadPart and CompleteMultipartUpload operationsNoString

Special Errors

Error CodeDescription
NoSuchBucketThe specified bucket does not exist
InvalidRequestThe request is not valid with the current state of the bucket
403Forbidden. Authentication failed or you do not have permission to initiate multipart upload

Permissions

You must have the s3:PutObject permission.

Examples

Example 1: Initiate a multipart upload

POST /large-file.zip?uploads HTTP/1.1
Host: my-bucket.qstorage.quilibrium.com
Content-Type: application/zip
Values in italics indicate user input and should be replaced with actual values.
HTTP/1.1 200 OK
x-amz-id-2: Example7qoYGN7uMuFuYS6m7a4l
x-amz-request-id: TX234S0F24A06C7
Date: Wed, 01 Mar 2024 12:00:00 GMT
<?xml version="1.0" encoding="UTF-8"?> <InitiateMultipartUploadResult> <Bucket>my-bucket</Bucket> <Key>large-file.zip</Key> <UploadId>VXBsb2FkIElEIGZvciA2aWWpbmcncyBteS1tb3ZpZS5tMnRzIHVwbG9hZA</UploadId> </InitiateMultipartUploadResult>
Values in italics indicate variable response values.

Example 2: Initiate a multipart upload with tags

POST /large-document.pdf?uploads HTTP/1.1
Host: my-bucket.qstorage.quilibrium.com
Content-Type: application/pdf
x-amz-tagging: project=documentation&confidential=true
Values in italics indicate user input and should be replaced with actual values.
HTTP/1.1 200 OK
x-amz-id-2: Example7qoYGN7uMuFuYS6m7a4l
x-amz-request-id: TX234S0F24A06C7
Date: Wed, 01 Mar 2024 12:00:00 GMT
<?xml version="1.0" encoding="UTF-8"?> <InitiateMultipartUploadResult> <Bucket>my-bucket</Bucket> <Key>large-document.pdf</Key> <UploadId>VXBsb2FkIElEIGZvciA2aWWpbmcncyBteS1tb3ZpZS5tMnRzIHVwbG9hZA</UploadId> </InitiateMultipartUploadResult>
Values in italics indicate variable response values.

Try It Out

Test CreateMultipartUpload

Initiate a multipart upload and get an upload ID.

Coming Soon

This feature is currently under development and will be available soon.