Yandex Cloud
Search
Contact UsTry it for free
  • Customer Stories
  • Documentation
  • Blog
  • All Services
  • System Status
  • Marketplace
    • Featured
    • Infrastructure & Network
    • Data Platform
    • AI for business
    • Security
    • DevOps tools
    • Serverless
    • Monitoring & Resources
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Start testing with double trial credits
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Center for Technologies and Society
    • Yandex Cloud Partner program
    • Price calculator
    • Pricing plans
  • Customer Stories
  • Documentation
  • Blog
© 2026 Direct Cursus Technology L.L.C.
Yandex Object Storage
  • Pricing policy
  • Terraform reference
    • API authentication
      • How to use the API
      • Signing requests
      • Getting started with the S3 API
        • All services and methods
          • General multipart upload procedure
          • CreateMultipartUpload
          • UploadPart
          • UploadPartCopy
          • ListParts
          • AbortMultipartUpload
          • CompleteMultipartUpload
          • ListMultipartUploads
        • Common request headers
        • Common response headers
        • Responses
  • Monitoring metrics
  • Audit Trails events
  • Bucket logs
  • Release notes
  • FAQ

In this article:

  • Request
  • Path parameters
  • Query parameters
  • Headers
  • Data schema
  • Response
  • Headers
  • Response codes
  • Data schema
  1. API reference
  2. AWS S3 REST
  3. REST
  4. Multipart upload
  5. CompleteMultipartUpload

Object Storage API, Amazon S3-compatible REST: CompleteMultipartUpload

Written by
Yandex Cloud
Updated at May 6, 2026
  • Request
    • Path parameters
    • Query parameters
    • Headers
    • Data schema
  • Response
    • Headers
    • Response codes
    • Data schema

This request completes a multipart upload.

After receiving the request Object Storage:

  • Assembles the object from parts of the upload in ascending order by part number.
  • Deletes the upload ID, which means that any subsequent requests with that ID will return the NoSuchUpload error.

Once the upload is complete, the client must provide the list of parts that were uploaded. The description of each part must contain the ETag value the client gets in response to each part upload. See Object Storage API, Amazon S3-compatible REST: UploadPart.

The operation may take several minutes depending on the object size and the number of parts.

If the request failed, the client app should be ready to retry the request.

For more information on getting started with the API and the general request format, see How to use the S3 API.

RequestRequest

POST /{bucket}/{key}?uploadId=UploadId HTTP/2

Path parametersPath parameters

Parameter Description
bucket Bucket name.
key Object key.

Query parametersQuery parameters

Parameter Description
uploadId ID of the multipart upload returned by Object Storage at startup.

HeadersHeaders

Use the appropriate common headers in your request.

Header Description
If-Match Defines the condition for performing an operation. The operation will only be performed if the current version of the object matching the specified key exists and its ETag is identical to the value in the If-Match header.
If-None-Match Defines the condition for performing an operation. The operation will only be performed if there is no object with the same key in the bucket. Specify * in the header value.

Data schemaData schema

The list of parts of a multipart upload is provided as an XML file in the following format:

<CompleteMultipartUpload>
  <Part>
    <PartNumber>PartNumber</PartNumber>
    <ETag>ETag</ETag>
  </Part>
  ...
</CompleteMultipartUpload>
Tag Description
CompleteMultipartUpload Request data.

Path: /CompleteMultipartUpload.
Part Object's uploaded part data.

Path: /CompleteMultipartUpload/Part.
PartNumber Part number.

Unique ID that identifies the part's position among other parts in the upload.

Path: /CompleteMultipartUpload/Part/PartNumber.
ETag ID the client gets from Object Storage in response to the part upload.

Path: /CompleteMultipartUpload/Part/ETag.

ResponseResponse

HeadersHeaders

Responses can only contain common headers.

Response codesResponse codes

For a list of possible responses, see Responses.

Additionally, Object Storage may return errors described in the table below.

Error Description HTTP code
NoSuchUpload The specified upload does not exist. This may happen if you specify a wrong upload ID or the upload was completed or deleted. 404 Not Found
InvalidPart Some of the specified parts were not found.

Possible reasons:
- These parts have not been uploaded.
- The provided ETag does not match the saved one.
400 Bad Request
InvalidPartOrder The list of parts is not provided in ascending order.

The list must be sorted by part number in ascending order.
400 Bad Request

A successful response contains additional data in XML format with the schema described below.

Data schemaData schema

<CompleteMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Location>http://Example-Bucket.storage.yandexcloud.net/Example-Object</Location>
  <Bucket>Example-Bucket</Bucket>
  <Key>Example-Object</Key>
  <ETag>"3858f62230ac3c915f300c664312c11f-9"</ETag>
</CompleteMultipartUploadResult>
Tag Description
CompleteMultipartUploadResult Response data.

Path: /CompleteMultipartUploadResult.
Location URI of the object created as a result of the object upload.

Path: /CompleteMultipartUploadResult/Location.
Bucket Name of the bucket containing the object.

Path: /CompleteMultipartUploadResult/Bucket.
Key Key of the new object.

Path: /CompleteMultipartUploadResult/Key.
ETag Object hash.

ETag may or may not be an MD5.

Path: /CompleteMultipartUploadResult/ETag.

Related articlesRelated articles

  • Multipart upload

  • Completing a multipart upload with a condition

See alsoSee also

  • Getting started with the AWS S3 API in Yandex Object Storage

  • Debugging requests using the AWS CLI

  • Example of sending a signed request using curl

  • Code example for generating a signature

Was the article helpful?

Previous
AbortMultipartUpload
Next
ListMultipartUploads
© 2026 Direct Cursus Technology L.L.C.