Graphon API

S3 · Multipart uploads

UploadPartCopy

PUT/{bucket}/{key}?partNumber&uploadIdwith the x-amz-copy-source header

Copies a byte range of an object into one part of a multipart upload.

Use it to build a large object from objects that you already stored, with no download.

View as Markdown
Role
Editor or higher
Support
Partial
  • The source must be in the same bucket. One byte range per part.

Path parameters

bucketstringrequired

The bucket name.

keystringrequired

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

Query parameters

partNumberintegerrequired

The part number, from 1 through 10,000.

uploadIdstringrequired

The upload ID from CreateMultipartUpload.

Headers

x-amz-copy-sourcestringrequired

The source object, as {bucket}/{key}, URL-encoded. Add ?versionId= to copy one version.

One byte range of the source, for example bytes=0-104857599. Without it, storage copies the whole source.

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

Responses

200OK

Storage copied the part.

application/xml

CopyObjectResultobjectrequired

The root element.

When storage copied the part.

ETagstring

The entity tag of the part. Send it to CompleteMultipartUpload.

Errors

Select an error in the response example to see its XML body. Any request can also get the common errors, such as SignatureDoesNotMatch.

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.

400InvalidArgument

The partNumber is not an integer from 1 through 10,000.

What to do: Number the parts from 1 through 10,000.

404NoSuchKey

The source has no object at this key or version.

What to do: Check the key and the versionId.

501NotImplemented

The source is in another bucket.

What to do: Copy parts from objects in the same bucket only.

400InvalidRequest

The x-amz-copy-source value is not {bucket}/{key}.

What to do: Send the source as {bucket}/{key}, URL-encoded.

503SlowDown

The bucket has too many writes in progress. The response has Retry-After: 1.

What to do: Wait for the Retry-After time, then send the request again. SDKs retry by themselves.

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?