import { EndpointParameterInstructions } from "@aws-sdk/middleware-endpoint"; import { Command as $Command } from "@aws-sdk/smithy-client"; import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MetadataBearer as __MetadataBearer, MiddlewareStack } from "@aws-sdk/types"; import { HeadObjectOutput, HeadObjectRequest } from "../models/models_0"; import { S3ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../S3Client"; /** * @public * * The input for {@link HeadObjectCommand}. */ export interface HeadObjectCommandInput extends HeadObjectRequest { } /** * @public * * The output of {@link HeadObjectCommand}. */ export interface HeadObjectCommandOutput extends HeadObjectOutput, __MetadataBearer { } /** * @public *
The HEAD action retrieves metadata from an object without returning the object * itself. This action 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 action on an
* object. The response is identical to the GET response except that there is no
* response body. Because of this, if the HEAD request generates an error, it
* returns a generic 404 Not Found or 403 Forbidden code. It is not
* possible to retrieve the exact exception beyond these error codes.
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).
*Encryption request headers, like x-amz-server-side-encryption, should
* not be sent for GET requests if your object uses server-side encryption with KMS keys (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.
* The last modified property in this case is the creation date of the object.
*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 relevant read object (or version) 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 actions are related to HeadObject:
* GetObject *
*The specified content does not exist.
* * * @example To retrieve metadata of an object without returning the object itself * ```javascript * // The following example retrieves an object metadata. * const input = { * "Bucket": "examplebucket", * "Key": "HappyFace.jpg" * }; * const command = new HeadObjectCommand(input); * const response = await client.send(command); * /* response == * { * "AcceptRanges": "bytes", * "ContentLength": "3191", * "ContentType": "image/jpeg", * "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", * "LastModified": "Thu, 15 Dec 2016 01:19:41 GMT", * "Metadata": {}, * "VersionId": "null" * } * *\/ * // example id: to-retrieve-metadata-of-an-object-without-returning-the-object-itself-1481834820480 * ``` * */ export declare class HeadObjectCommand extends $Command