Help Center/ Object Storage Service/ API Reference/ Object APIs/ Operations on Multipart Upload/ Listing Uploaded Parts that Have Not Been Assembled
Updated on 2026-05-26 GMT+08:00

Listing Uploaded Parts that Have Not Been Assembled

Function

You can use this API to query all parts of an uncompleted multipart upload task. For details about the multipart upload, see Multipart Upload. The size of each part listed by this API is the same as the size of the part uploaded.

Authorization

To call this API, you must be the bucket owner or have the permission to list uploaded parts that have not been assembled. You are advised to use IAM or bucket policies for authorization. For details about OBS authorization methods, see Differences Between OBS Permissions Control Methods.

  • If you use IAM for authorization, you need to use either role/policy-based authorization or identity policy-based authorization and configure the required permissions:
    • If you use role/policy-based authorization (IAM v3 APIs in the old IAM version), you must have the obs:object:ListMultipartUploadParts permission. For details, see Creating a Custom IAM Policy.
    • If you use identity policy-based authorization (IAM v5 APIs in the new IAM version), you must have the obs:object:listMultipartUploadParts permission, as shown in the following table. For details, see Creating a Custom IAM Identity Policy.

      Action

      Access Level

      Resource Type (*: Required)

      Condition Key

      Alias

      Dependencies

      obs:object:listMultipartUploadParts

      List

      object *

      g:EnterpriseProjectId

      -

      -

      -

      • obs:EpochTime
      • obs:SourceIp
      • obs:TlsVersion
      • obs:CustomDomain
  • If you use bucket policies for authorization, you must have the obs:object:ListMultipartUploadParts permission. For details, see Creating a Custom Bucket Policy.

URI

GET /{object_key}

Calling Method

For details, see Calling APIs. Before calling this API, calculate the API signature and add it to the request.

You can debug this API in API Explorer.

Request Syntax

GET /ObjectName?uploadId=uploadid&max-parts=max&part-number-marker=marker HTTP/1.1 
Host: bucketname.obs.region.myhuaweicloud.com 
Date: date 
Authorization: auth

URI Parameters

This request uses URI parameters to specify which parts in a multipart upload will be listed. Table 1 describes the parameters.

Table 1 URI parameters

Parameter

Mandatory

Type

Description

uploadId

Yes

String

Definition

ID of the multipart upload

Constraints

N/A

Range

The value must contain 1 to 32 characters.

Default Value

N/A

max-parts

No

Integer

Definition

The maximum number of parts in a single response Unit: count

Constraints

N/A

Range

The value ranges from 1 to 1000. If the specified value is greater than 1000, 1000 is used.

Default Value

1000

part-number

-marker

No

Integer

Definition

Specifies the start position of the listing. Only the uploaded parts whose sequence numbers are greater than the value of this parameter are listed.

Constraints

N/A

Range

An integer ranging from 1 to 10000.

Default Value

N/A

encoding-type

No

String

Definition

Encoding type for Key in the response. If Key in the response contains control characters that are not supported by the XML 1.0 standard, you can specify this parameter to encode Key.

Constraints

N/A

Range

url

Default Value

N/A

Request Headers

This request uses common headers. For details, see Table 3.

Request Body

This request contains no request body parameters.

Response Syntax

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
HTTP/1.1 status_code
Date: date
Content-Length: length

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<ListPartsResult xmlns="http://obs.region.myhuaweicloud.com/doc/2015-06-30/">
    <Bucket>BucketName</Bucket> 
    <Key>object</Key> 
    <UploadId>uploadid</UploadId> 
    <Initiator> 
        <ID>id</ID>  
    </Initiator> 
    <Owner> 
        <ID>ownerid</ID> 
    </Owner> 
    <StorageClass>storageclass</StorageClass> 
    <PartNumberMarker>partNumbermarker</PartNumberMarker> 
    <NextPartNumberMarker>nextPartnumberMarker</NextPartNumberMarker> 
    <MaxParts>maxParts</MaxParts> 
    <IsTruncated>true</IsTruncated> 
    <Part> 
        <PartNumber>partNumber</PartNumber> 
        <LastModified>modifiedDate</LastModified> 
        <ETag>etag</ETag> 
        <Size>size</Size> 
    </Part> 
</ListPartsResult>

Response Headers

This response uses common headers. For details, see Table 1.

Response Body

This response uses elements to return information about uploaded parts. Table 2 describes the elements.

Table 2 Response body parameters

Parameter

Type

Description

ListPartsResult

Container

Definition

Container that stores the result of listing parts. ListPartsResult is the parent node of Bucket, Key, UploadId, Initiator, Owner, StorageClass, PartNumberMarker, NextPartNumberMarker, MaxParts, IsTruncated and Part.

Range

For details, see Table 3.

Table 3 Description of the ListPartsResult response body

Parameter

Type

Description

Bucket

String

Definition

Bucket name

Range

The value can contain 3 to 63 characters.

EncodingType

String

Definition

Encoding type of an object key. If this parameter is specified in the request, the Key in the response is encoded.

Range

url

Key

String

Definition

Object name

Range

1 to 1,024 characters

UploadId

String

Definition

Upload task ID

Range

The value must contain 1 to 32 characters.

Initiator

Container

Definition

Creator of the multipart upload task. Initiator is a parent node of ID.

Range

For details, see Table 4.

Owner

Container

Definition

Owner of the part. Owner is a parent node of ID.

Range

For details, see Table 5.

StorageClass

String

Definition

Storage class

Range

  • STANDARD (Standard storage)
  • WARM (Infrequent Access storage)
  • COLD (Archive storage)
  • DEEP_ARCHIVE (Deep Archive storage)

PartNumberMarker

Integer

Definition

Start number of the uploaded parts in the listing result.

Range

1–10000

NextPartNumberMarker

Integer

Definition

If not all parts are returned, the NextPartNumberMarker element is included in the response request, indicating the value of PartNumberMarker in the next request.

Range

1–10000

MaxParts

Integer

Definition

Maximum number of parts in a single response. Unit: count

Range

1–10000

IsTruncated

Boolean

Definition

Whether the returned part list is truncated.

Range

true: Not all results are returned.

false: All results are returned.

Part

Container

Definition

Container for storing part information. Part is the parent node of PartNumber, LastModified, ETag, and Size.

Range

For details, see Table 6.

Table 4 Description of the Initiator response body

Parameter

Type

Description

ID

String

Definition

URN of the multipart upload initiator. The format is domainID/{domainId}:userID/{userId}.

Range

N/A

Table 5 Description of the Owner response body

Parameter

Type

Description

ID

String

Definition

Domain ID of the multipart upload initiator. The format is {domainId}.

Range

N/A

Table 6 Description of the Part response body

Parameter

Type

Description

PartNumber

Integer

Definition

ID of the uploaded part.

Range

1–10000

LastModified

Date

Definition

Time when a part was uploaded. The time is in the ISO8601 format.

Example: 2018-01-01T00:00:00.000Z

Range

N/A

ETag

String

Definition

ETag value of the uploaded part. It is the unique identifier of the part content and is used to verify data consistency when parts are assembled.

Range

N/A

Size

Integer

Definition

Size of the uploaded part.

Range

N/A

Error Responses

  1. If the AK or signature is invalid, OBS returns 403 Forbidden and the error code is AccessDenied.
  2. If the requested bucket is not found, OBS returns 404 Not Found and the error code is NoSuchBucket.
  3. If the requested multipart upload task does not exist, OBS returns 404 Not Found and the error code is NoSuchUpload.
  4. OBS checks whether the user has the read permission for the specified bucket based on the domain ID. If the user does not have the permission, OBS returns 403 Forbidden and the error code is AccessDenied.

Other errors are included in Table 2.

Sample Request

1
2
3
4
5
6
GET /object02?uploadId=00000163D40171ED8DF4050919BD02B8 HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 05:20:35 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:xkABdSrBPrz5yqzuZdJnK5oL/yU=

Sample Response

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 8DF400000163D40C099A04EF4DD1BDD9
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSK71fr+hDnzB0JBvQC1B9+S12AWxC41
Content-Type: application/xml
Date: WED, 01 Jul 2015 05:20:35 GMT
Content-Length: 888

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListPartsResult xmlns="http://obs.ap-southeast-1.myhuaweicloud.com/doc/2015-06-30/">
  <Bucket>test333</Bucket>
  <Key>obj2</Key>
  <UploadId>00000163D40171ED8DF4050919BD02B8</UploadId>
  <Initiator>
    <ID>domainID/domainiddomainiddomainiddo000008:userID/useriduseriduseriduseridus000008</ID>
  </Initiator>
  <Owner>
    <ID>domainiddomainiddomainiddo000008</ID>
  </Owner>
  <StorageClass>STANDARD</StorageClass>
  <PartNumberMarker>0</PartNumberMarker>
  <NextPartNumberMarker>2</NextPartNumberMarker>
  <MaxParts>1000</MaxParts>
  <IsTruncated>false</IsTruncated>
  <Part>
    <PartNumber>1</PartNumber>
    <LastModified>2018-06-06T07:39:32.522Z</LastModified>
    <ETag>"b026324c6904b2a9cb4b88d6d61c81d1"</ETag>
    <Size>2058462721</Size>
  </Part>
  <Part>
    <PartNumber>2</PartNumber>
    <LastModified>2018-06-06T07:41:03.344Z</LastModified>
    <ETag>"3b46eaf02d3b6b1206078bb86a7b7013"</ETag>
    <Size>4572</Size>
  </Part>
</ListPartsResult>