GET Object

You can use the S3 GET Object request to retrieve an object from an S3 bucket.

Unsupported request header

The following request header is not supported and returns 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.

Behavior of GET Object for Cloud Storage Pool objects

If an object has been stored in a Cloud Storage Pool, the behavior of a GET Object request depends on the state of an object. See "HEAD Object" for more details.

State of object Behavior of GET Object
Object ingested into StorageGRID but not yet evaluated by ILM, or object stored in a traditional storage pool or using erasure coding

200 OK

A copy of the object is retrieved.

Object in Cloud Storage Pool but not yet transitioned to Glacier

200 OK

A copy of the object is retrieved from the Cloud Storage Pool.

Object transitioned to Glacier from the Cloud Storage Pool bucket

403 Forbidden, InvalidObjectState

Use a POST Object restore request to restore a temporary copy of the object back to the Cloud Storage Pool.

Object in process of being restored from Glacier to the Cloud Storage Pool bucket

403 Forbidden, InvalidObjectState

Wait for the POST Object restore request to complete.

Object fully restored to the Cloud Storage Pool bucket

200 OK

The response body includes a copy of the restored object.

Multipart or segmented objects in a Cloud Storage Pool

If you uploaded a multipart object or if StorageGRID split a large object into segments, StorageGRID determines whether the object is available in the Cloud Storage Pool bucket by sampling a subset of the object's parts or segments. In some cases, a GET Object request might incorrectly return 200 OK when some parts of the object have already been transitioned to Glacier or when some parts of the object have not yet been restored.

In these cases:
  • The GET Object request might return some data but stop midway through the transfer.
  • A subsequent GET Object request might return 403 Forbidden.