ListParts
Lists the parts that have been uploaded for a specific multipart upload.
Description
The ListParts operation lists the parts that have been uploaded for a specific multipart upload. To use this operation, you must provide the upload ID in the request, which you obtain from the CreateMultipartUpload response.
Important
- This operation returns at most 1,000 uploaded parts in the response. This is also the default value.
- You can restrict the number of parts in a response by specifying the
max-partsrequest parameter. - If your multipart upload consists of more than 1,000 parts, the response returns an
IsTruncatedfield with the value oftrue, and aNextPartNumberMarkerelement. - To list remaining uploaded parts, in subsequent
ListPartsrequests, include thepart-number-markerquery string parameter and set its value to theNextPartNumberMarkerfield value from the previous response.
Request Syntax
GET /ObjectKey?uploadId=UploadId&max-parts=MaxParts&part-number-marker=PartNumberMarker HTTP/1.1
Host: BucketName.qstorage.quilibrium.com
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
URI Parameters
| Name | Description | Required | Type |
|---|---|---|---|
| uploadId | Upload ID identifying the multipart upload whose parts are being listed | Yes | text |
| max-parts | Maximum number of parts to return in the response | No | number |
| part-number-marker | Part number after which to start listing parts | No | number |
Headers
| Name | Description | Required | Type |
|---|---|---|---|
| x-amz-expected-bucket-owner | The account ID of the expected bucket owner | No | text |
| x-amz-server-side-encryption-customer-algorithm | The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is needed only when the object was created using a checksum algorithm | No | text |
| x-amz-server-side-encryption-customer-key | The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm | No | text |
| x-amz-server-side-encryption-customer-key-MD5 | The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm | No | text |
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"?>
<ListPartsResult>
<Bucket>BucketName</Bucket>
<Key>ObjectKey</Key>
<UploadId>UploadId</UploadId>
<Initiator>
<ID>InitiatorId</ID>
<DisplayName>InitiatorName</DisplayName>
</Initiator>
<Owner>
<ID>OwnerId</ID>
<DisplayName>OwnerName</DisplayName>
</Owner>
<PartNumberMarker>PartNumberMarker</PartNumberMarker>
<NextPartNumberMarker>NextPartNumberMarker</NextPartNumberMarker>
<MaxParts>MaxParts</MaxParts>
<IsTruncated>true|false</IsTruncated>
<Part>
<PartNumber>PartNumber</PartNumber>
<LastModified>ISO8601Date</LastModified>
<ETag>EntityTag</ETag>
<Size>Size</Size>
</Part>
</ListPartsResult>
Values in italics indicate variable response values.
Response Elements
Response Headers
| Name | Description | Required | Type |
|---|---|---|---|
| x-amz-id-2 | An identifier for the request | No | String |
| x-amz-request-id | A unique identifier for the request | No | String |
| Date | The date and time at which the response was sent | No | String |
| x-amz-abort-date | If a lifecycle rule is configured to abort incomplete multipart uploads and the object name matches the rule's prefix, this header indicates when the upload will become eligible for abort operation. Not supported for directory buckets | No | String |
| x-amz-abort-rule-id | Returned with x-amz-abort-date, identifies the lifecycle rule that defines the abort incomplete multipart uploads action. Not supported for directory buckets | No | String |
| x-amz-request-charged | If present, indicates that the requester was successfully charged for the request Valid values: requester | No | String |
Response Body Elements
| Name | Description | Required | Type |
|---|---|---|---|
| ListPartsResult | Container for the response | Yes | String |
| Bucket | Name of the bucket to which the multipart upload was initiated | No | String |
| Key | Object key for which the multipart upload was initiated | No | String |
| UploadId | Upload ID identifying the multipart upload whose parts are being listed | No | String |
| ChecksumAlgorithm | The algorithm that was used to create a checksum of the object Valid values: CRC32 | CRC32C | SHA1 | SHA256 | CRC64NVME | No | String |
| ChecksumType | The checksum type that determines how part-level checksums are combined to create an object-level checksum for multipart objects. Used to verify the checksum type matches what was specified in the CreateMultipartUpload request Valid values: COMPOSITE | FULL_OBJECT | No | String |
| PartNumberMarker | Part number after which listing begins | No | String |
| NextPartNumberMarker | When a list is truncated, this is the part number marker to use in a subsequent request | No | Integer |
| MaxParts | Maximum number of parts allowed in the response | No | Integer |
| IsTruncated | Indicates whether the returned list of parts is truncated | No | Boolean |
| Part | Container for elements related to a particular part | No | Part |
| PartNumber | Part number identifying the part | No | Integer |
| LastModified | Date and time at which the part was uploaded | No | String |
| Size | Size in bytes of the uploaded part data | No | String |
| Owner | Container element that identifies the object owner | No | Owner |
| Initiator | Container element that identifies who initiated the multipart upload. | No | Initiator |
Special Errors
| Error Code | Description |
|---|---|
| NoSuchBucket | The specified bucket does not exist |
| NoSuchUpload | The specified multipart upload does not exist |
| 403 | Forbidden. Authentication failed or you do not have permission to list parts |
Permissions
You must have the s3:ListMultipartUploadParts permission on the bucket. If the upload was created using server-side encryption with KMS keys (SSE-KMS), you must also have permission to the kms:Decrypt action.
Related Operations
The following operations are related to ListParts:
- CreateMultipartUpload
- UploadPart
- CompleteMultipartUpload
- AbortMultipartUpload
- ListMultipartUploads
Examples
Example 1: List all parts of a multipart upload
GET /large-file.zip?uploadId=VXBsb2FkIElEIGZvciA2aWWpbmcncyBteS1tb3ZpZS5tMnRzIHVwbG9hZA HTTP/1.1
Host: my-bucket.qstorage.quilibrium.com
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"?>
<ListPartsResult>
<Bucket>my-bucket</Bucket>
<Key>large-file.zip</Key>
<UploadId>VXBsb2FkIElEIGZvciA2aWWpbmcncyBteS1tb3ZpZS5tMnRzIHVwbG9hZA</UploadId>
<Initiator>
<ID>123456789012</ID>
<DisplayName>Qm12311</DisplayName>
</Initiator>
<Owner>
<ID>123456789012</ID>
<DisplayName>Qm12345</DisplayName>
</Owner>
<PartNumberMarker>0</PartNumberMarker>
<NextPartNumberMarker>2</NextPartNumberMarker>
<MaxParts>1000</MaxParts>
<IsTruncated>false</IsTruncated>
<Part>
<PartNumber>1</PartNumber>
<LastModified>2024-03-01T11:30:00.000Z</LastModified>
<ETag>"7778aef83f66abc1fa1e8477f296d394"</ETag>
<Size>5242880</Size>
</Part>
<Part>
<PartNumber>2</PartNumber>
<LastModified>2024-03-01T11:45:00.000Z</LastModified>
<ETag>"7778aef83f66abc1fa1e8477f296d394"</ETag>
<Size>5242880</Size>
</Part>
</ListPartsResult>
Values in italics indicate variable response values.
Example 2: List parts with a maximum limit and part number marker
GET /large-file.zip?uploadId=VXBsb2FkIElEIGZvciA2aWWpbmcncyBteS1tb3ZpZS5tMnRzIHVwbG9hZA&max-parts=2&part-number-marker=1 HTTP/1.1
Host: my-bucket.qstorage.quilibrium.com
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"?>
<ListPartsResult>
<Bucket>my-bucket</Bucket>
<Key>large-file.zip</Key>
<UploadId>VXBsb2FkIElEIGZvciA2aWWpbmcncyBteS1tb3ZpZS5tMnRzIHVwbG9hZA</UploadId>
<Initiator>
<ID>123456789012</ID>
<DisplayName>Qm12311</DisplayName>
</Initiator>
<Owner>
<ID>123456789012</ID>
<DisplayName>_Qm12345</DisplayName>
</Owner>
<PartNumberMarker>1</PartNumberMarker>
<NextPartNumberMarker>3</NextPartNumberMarker>
<MaxParts>2</MaxParts>
<IsTruncated>true</IsTruncated>
<Part>
<PartNumber>2</PartNumber>
<LastModified>2024-03-01T11:30:00.000Z</LastModified>
<ETag>"7778aef83f66abc1fa1e8477f296d394"</ETag>
<Size>10485760</Size>
</Part>
<Part>
<PartNumber>3</PartNumber>
<LastModified>2024-03-01T11:45:00.000Z</LastModified>
<ETag>"aaaa18db4cc2f85cedef654fccc4a4x8"</ETag>
<Size>10485760</Size>
</Part>
</ListPartsResult>
Values in italics indicate variable response values.
Try It Out
Test ListParts
List the parts that have been uploaded for a specific multipart upload.
Coming Soon
This feature is currently under development and will be available soon.
/> />