S3 · Multipart uploads
CompleteMultipartUpload
/{bucket}/{key}?uploadIdJoins the uploaded parts into one object.
Storage joins the parts that you list, in order, and writes the object. Parts that you do not list are dropped. Graphon then indexes the object like any other write.
- Role
- Editor or higher
- Support
- Supported
- Send the parts in ascending order with their exact ETags.
- A retry after a success returns the object again. So a client can send this call again after a network error.
- The object gets the Content-Type from CreateMultipartUpload, and no other stored headers.
Path parameters
Query parameters
The upload ID from CreateMultipartUpload.
Headers
The workspace ID that must own the bucket. Another owner returns 403 AccessDenied.
Request body
The root element.
One element for each part, in ascending part number order.
Responses
200OK
Storage wrote the object.
application/xml
The root element.
Errors
Select an error in the response example to see its XML body. Any request can also get the common errors, such as SignatureDoesNotMatch.
- 400InvalidPartOrder
The part list is empty, or the part numbers do not go up.
What to do: List the parts in ascending part number order.
- 400InvalidPart
A part is missing, or its ETag differs from the ETag that UploadPart returned.
What to do: Call ListParts, then send each part number with its exact ETag.
- 404NoSuchUpload
The upload ID is not known for this key. The upload was completed or aborted.
What to do: Start a new upload with CreateMultipartUpload.
- 404NoSuchBucket
No bucket has this name, or the bucket was deleted.
What to do: Check the bucket name. ListBuckets shows the buckets of the workspace.
- 403AccessDenied
The key does not have the role for this operation, or the bucket is in another workspace.
What to do: Use a key of the workspace that owns the bucket, with the role above.