S3 · Multipart uploads
UploadPartCopy
/{bucket}/{key}?partNumber&uploadIdwith the x-amz-copy-source headerCopies 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.
- Role
- Editor or higher
- Support
- Partial
- The source must be in the same bucket. One byte range per part.
Path parameters
Query parameters
The part number, from 1 through 10,000.
The upload ID from CreateMultipartUpload.
Headers
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
The root element.
LastModifiedstringWhen storage copied the part.
ETagstringThe 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-sourcevalue 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.