Method: Aws::S3::Client#head_object
- Defined in:
- lib/aws-sdk-s3/client.rb
#head_object(params = {}) ⇒ Types::HeadObjectOutput
The HEAD operation retrieves metadata from an object without returning the object itself. This operation is useful if you’re only interested in an object’s metadata. To use HEAD, you must have READ access to the object.
A ‘HEAD` request has the same options as a `GET` operation on an object. The response is identical to the `GET` response except that there is no response body.
If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the metadata from the object, you must use the following headers:
-
x-amz-server-side-encryption-customer-algorithm
-
x-amz-server-side-encryption-customer-key
-
x-amz-server-side-encryption-customer-key-MD5
For more information about SSE-C, see [Server-Side Encryption (Using Customer-Provided Encryption Keys)].
<note markdown=“1”> Encryption request headers, like ‘x-amz-server-side-encryption`, should not be sent for GET requests if your object uses server-side encryption with CMKs stored in AWS KMS (SSE-KMS) or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If your object does use these types of keys, you’ll get an HTTP 400 BadRequest error.
</note>
Request headers are limited to 8 KB in size. For more information, see [Common Request Headers].
Consider the following when using request headers:
-
Consideration 1 – If both of the ‘If-Match` and `If-Unmodified-Since` headers are present in the request as follows:
-
‘If-Match` condition evaluates to `true`, and;
-
‘If-Unmodified-Since` condition evaluates to `false`;
Then Amazon S3 returns ‘200 OK` and the data requested.
-
-
Consideration 2 – If both of the ‘If-None-Match` and `If-Modified-Since` headers are present in the request as follows:
-
‘If-None-Match` condition evaluates to `false`, and;
-
‘If-Modified-Since` condition evaluates to `true`;
Then Amazon S3 returns the ‘304 Not Modified` response code.
-
For more information about conditional requests, see [RFC 7232].
Permissions
You need the ‘s3:GetObject` permission for this operation. For more information, see [Specifying Permissions in a Policy]. If the object you request does not exist, the error Amazon S3 returns depends on whether you also have the s3:ListBucket permission.
-
If you have the ‘s3:ListBucket` permission on the bucket, Amazon S3 returns an HTTP status code 404 (“no such key”) error.
-
If you don’t have the ‘s3:ListBucket` permission, Amazon S3 returns an HTTP status code 403 (“access denied”) error.
The following operation is related to ‘HeadObject`:
-
GetObject
^
[1]: docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html [2]: docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html [3]: tools.ietf.org/html/rfc7232 [4]: docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
The following waiters are defined for this operation (see #wait_until for detailed usage):
* object_exists
* object_not_exists
5600 5601 5602 5603 |
# File 'lib/aws-sdk-s3/client.rb', line 5600 def head_object(params = {}, = {}) req = build_request(:head_object, params) req.send_request() end |