HeadBucket - Amazon Simple Storage Service (original) (raw)
You can use this operation to determine if a bucket exists and if you have permission to access it. The action returns a 200 OK
if the bucket exists and you have permission to access it.
Note
If the bucket does not exist or you do not have permission to access it, theHEAD
request returns a generic 400 Bad Request
, 403 Forbidden
or 404 Not Found
code. A message body is not included, so you cannot determine the exception beyond these HTTP response codes.
Authentication and authorization
General purpose buckets - Request to public buckets that grant the s3:ListBucket permission publicly do not need to be signed. All other HeadBucket
requests must be authenticated and signed by using IAM credentials (access key ID and secret access key for the IAM identities). All headers with the x-amz-
prefix, includingx-amz-copy-source
, must be signed. For more information, seeREST Authentication.
Directory buckets - You must use IAM credentials to authenticate and authorize your access to theHeadBucket
API operation, instead of using the temporary security credentials through the CreateSession
API operation.
AWS CLI or SDKs handles authentication and authorization on your behalf.
Permissions
- General purpose bucket permissions - To use this operation, you must have permissions to perform the
s3:ListBucket
action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Managing access permissions to your Amazon S3 resources in the_Amazon S3 User Guide_. - Directory bucket permissions - You must have the
s3express:CreateSession
permission in theAction
element of a policy. By default, the session is in theReadWrite
mode. If you want to restrict the access, you can explicitly set thes3express:SessionMode
condition key toReadOnly
on the bucket.
For more information about example bucket policies, see Example bucket policies for S3 Express One Zone and AWS Identity and Access Management (IAM) identity-based policies for S3 Express One Zone in the Amazon S3 User Guide.
HTTP Host header syntax
Directory buckets - The HTTP Host header syntax is _Bucket-name_.s3express-_zone-id_._region-code_.amazonaws.com
.
Request Syntax
HEAD / HTTP/1.1
Host: Bucket.s3.amazonaws.com
x-amz-expected-bucket-owner: ExpectedBucketOwner
URI Request Parameters
The request uses the following URI parameters.
The bucket name.
Directory buckets - When you use this operation with a directory bucket, you must use virtual-hosted-style requests in the format _Bucket-name_.s3express-_zone-id_._region-code_.amazonaws.com
. Path-style requests are not supported. Directory bucket names must be unique in the chosen Zone (Availability Zone or Local Zone). Bucket names must follow the format _bucket-base-name_--_zone-id_--x-s3
(for example, _amzn-s3-demo-bucket_--_usw2-az1_--x-s3
). For information about bucket naming restrictions, see Directory bucket naming rules in the Amazon S3 User Guide.
Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form _AccessPointName_-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.
Object Lambda access points - When you use this API operation with an Object Lambda access point, provide the alias of the Object Lambda access point in place of the bucket name. If the Object Lambda access point alias in a request is not valid, the error code InvalidAccessPointAliasError
is returned. For more information about InvalidAccessPointAliasError
, see List of Error Codes.
Note
Object Lambda access points are not supported by directory buckets.
S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form _AccessPointName_-_AccountId_._outpostID_.s3-outposts._Region_.amazonaws.com
. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.
Required: Yes
The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden
(access denied).
Request Body
The request does not have a request body.
Response Syntax
HTTP/1.1 200
x-amz-bucket-location-type: BucketLocationType
x-amz-bucket-location-name: BucketLocationName
x-amz-bucket-region: BucketRegion
x-amz-access-point-alias: AccessPointAlias
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The response returns the following HTTP headers.
Indicates whether the bucket name used in the request is an access point alias.
Note
For directory buckets, the value of this field is false
.
The name of the location where the bucket will be created.
For directory buckets, the Zone ID of the Availability Zone or the Local Zone where the bucket is created. An example Zone ID value for an Availability Zone is usw2-az1
.
Note
This functionality is only supported by directory buckets.
The type of location where the bucket is created.
Note
This functionality is only supported by directory buckets.
Valid Values: AvailabilityZone | LocalZone
The Region that the bucket is located.
Length Constraints: Minimum length of 0. Maximum length of 20.
Errors
NoSuchBucket
The specified bucket does not exist.
HTTP Status Code: 404
Examples
Sample Request for general purpose buckets
This example illustrates one usage of HeadBucket.
HEAD / HTTP/1.1
Date: Fri, 10 Feb 2012 21:34:55 GMT
Authorization: authorization string
Host: myawsbucket.s3.amazonaws.com
Connection: Keep-Alive
Sample Response for general purpose buckets
This example illustrates one usage of HeadBucket.
HTTP/1.1 200 OK
x-amz-id-2: JuKZqmXuiwFeDQxhD7M8KtsKobSzWA1QEjLbTMTagkKdBX2z7Il/jGhDeJ3j6s80
x-amz-request-id: 32FE2CEB32F5EE25
x-amz-bucket-region: us-west-2
x-amz-access-point-alias: false
Date: Fri, 10 2012 21:34:56 GMT
Server: AmazonS3
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: