PUT Object - Copy

This section provides details on StorageGRID Webscale support for the S3 PUT Object - Copy operation.

Resolving conflicts

Conflicting client requests, such as two clients writing to the same key, are resolved on a "latest-wins" basis. The timing for the "latest-wins" evaluation is based on when the StorageGRID Webscale system completes a given request, and not on when S3 clients begin an operation.

Storage class options

The x-amz-storage-class request header is supported with the following values:

Request headers

The following request headers are supported:

The following request headers are not supported and return XNotImplemented:

If the source bucket and key, specified in the x-amz-copy-source header, is different from the destination bucket and key, a copy of the source object data is written to the destination. If the source and destination match, and the x-amz-metadata-directive header is specified as REPLACE, the object’s metadata is updated with the metadata values supplied in the request.
Note: The server-side-encryption value of the object cannot be updated. Instead, make a copy with a new server-side-encryption value using x-amz-metadata-directive: REPLACE.


If the source bucket is versioned, you can use the x-amz-copy-source header to copy the latest version of an object. To copy a specific version of an object, you must explicitly specify the version to copy using the versionId subresource. If the destination bucket is versioned, the generated version is returned in the x-amz-version-id response header. If versioning is suspended for the target bucket, then x-amz-version-id returns a "null" value.