Graphon API

S3 · Multipart uploads

CompleteMultipartUpload

POST/{bucket}/{key}?uploadId

Joins 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.

View as Markdown
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

bucketstringrequired

The bucket name.

keystringrequired

The object key. Keep each / as it is. Percent-encode the other reserved characters.

Query parameters

uploadIdstringrequired

The upload ID from CreateMultipartUpload.

Headers

The workspace ID that must own the bucket. Another owner returns 403 AccessDenied.

Request body

The root element.

Partarrayrequired

One element for each part, in ascending part number order.

Responses

200OK

Storage wrote the object.

application/xml

The root element.

Locationstring

The path of the object, /{bucket}/{key}.

Bucketstring

The bucket name.

Keystring

The object key.

ETagstring

The entity tag of the object.

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.

Was this page helpful?