This section describes how the StorageGRID Webscale system implements S3 REST API operations for objects.
All of the operations on objects, except GET Object ACL and OPTIONS /, support StorageGRID Webscale consistency controls.
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.
All objects in a StorageGRID Webscale bucket are owned by the bucket owner, including objects created by an anonymous user, or by another account.
Data objects ingested to the StorageGRID Webscale system through Swift cannot be accessed through S3.
Operation | Implementation |
---|---|
DELETE Object | Multi-Factor Authentication (MFA) and the response header x-amz-mfa are not supported. Versioning To remove a specific version, the requestor must be the bucket owner and use the versionId subresource. Using this subresource permanently deletes the version. If the versionId corresponds to a delete marker, the response header x-amz-delete-marker is returned set to true.
|
DELETE Multiple Objects | Multi-Factor Authentication (MFA) and the response header x-amz-mfa are not supported. Multiple objects can be deleted in the same request message. Note: The DELETE Multiple Objects request is not supported on versioned buckets.
Unlike the PUT Object operation, the DELETE Multiple Objects operation does not support chunked transfer encoding and the content encoding gzip attributes. |
DELETE Object tagging | Uses the tagging subresource to remove all tags from an object. Implemented with all Amazon S3 REST API behavior. Versioning If the versionId query parameter is not specified in the request, the operation deletes all tags from the most recent version of the object in a versioned bucket. If the current version of the object is a delete marker, a "MethodNotAllowed" status is returned with the x-amz-delete-marker response header set to true. |
GET Object | The following request headers are not supported and return XNotImplemented:
Versioning If a versionId subresource is not specified, the operation fetches the most recent version of the object in a versioned bucket. If the current version of the object is a delete marker, a "Not Found" status is returned with the x-amz-delete-marker response header set to true. |
GET Object ACL | If the necessary access credentials are provided for the account, the operation returns a positive response and the ID, DisplayName, and Permission of the object owner, indicating that the owner has full access to the object. |
GET Object tagging | Uses the tagging subresource to return all tags for an object. Implemented with all Amazon S3 REST API behavior Versioning If the versionId query parameter is not specified in the request, the operation returns all tags from the most recent version of the object in a versioned bucket. If the current version of the object is a delete marker, a "MethodNotAllowed" status is returned with the x-amz-delete-marker response header set to true. |
HEAD Object | The following request headers are not supported and return XNotImplemented:
Versioning If a versionId subresource is not specified, the operation fetches the most recent version of the object in a versioned bucket. If the current version of the object is a delete marker, a "Not Found" status is returned with the x-amz-delete-marker response header set to true. |
PUT Object | |
PUT Object - Copy | |
PUT Object tagging | Uses the tagging subresource to add a set of tags to an existing object. Implemented with all Amazon S3 REST API behavior 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. Versioning If the versionId query parameter is not specified in the request, the operation add tags to the most recent version of the object in a versioned bucket. If the current version of the object is a delete marker, a "MethodNotAllowed" status is returned with the x-amz-delete-marker response header set to true. |