

# 使用 HeadBucket 确定是否存在 S3 on Outposts 存储桶以及您是否具有访问权限。
<a name="S3OutpostsHeadBucket"></a>

对象是 Amazon S3 on Outposts 中存储的基础实体。每个对象都储存在一个存储桶中。您必须使用访问点才能访问 Outpost 存储桶中的任何对象。当您为对象操作指定桶时，可以使用访问点 Amazon 资源名称（ARN）或访问点别名。有关访问点别名的更多信息，请参阅[为您的 S3 on Outposts 桶访问点使用桶式别名](s3-outposts-access-points-alias.md)。

以下示例显示了 S3 on Outposts 访问点的 ARN 格式，其中包括 Outpost 所属区域的 AWS 区域 代码、AWS 账户 ID、Outpost ID 和访问点名称：

```
arn:aws:s3-outposts:{{region}}:{{account-id}}:outpost/{{outpost-id}}/accesspoint/{{accesspoint-name}}
```

有关 S3 on Outposts ARN 的更多信息，请参阅[S3 on Outposts 的资源 ARN](S3OutpostsIAM.md#S3OutpostsARN)。

**注意**  
对于 Amazon S3 on Outposts，对象数据始终存储在 Outpost 上。当 AWS 安装 Outpost 机架时，您的数据将保留在 Outpost 的本地，以满足数据驻留要求。您的对象永远不会离开您的 Outpost，也不在 AWS 区域 中。由于 AWS 管理控制台 托管在区域内，您无法使用控制台上传或管理 Outpost 中的对象。但是，您可以使用 REST API、AWS Command Line Interface (AWS CLI) 和 AWS SDK 通过访问点上传和管理对象。

以下 AWS Command Line Interface (AWS CLI) 和 适用于 Java 的 AWS SDK 示例显示如何使用 HeadBucket API 操作确定 Amazon S3 on Outposts 存储桶是否存在以及您是否有权访问该存储桶。有关更多信息，请参阅《Amazon Simple Storage Service API 参考》中的 [HeadBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html)。

## 使用 AWS CLI
<a name="S3OutpostsHeadBucketCLI"></a>

以下 S3 on Outposts AWS CLI 示例显示如何使用 `head-bucket` 命令确定存储桶是否存在以及您是否有权访问该存储桶。要使用此命令，请将每个 `{{user input placeholder}}` 替换为您自己的信息。有关此命令的更多信息，请参阅《AWS CLI 参考》中的 [head-bucket](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/head-bucket.html)。

```
aws s3api head-bucket --bucket arn:aws:s3-outposts:{{region}}:{{123456789012}}:outpost/{{op-01ac5d28a6a232904}}/accesspoint/{{example-outposts-access-point}}
```

## 使用适用于 Java 的 AWS SDK
<a name="S3OutpostsHeadBucketJava"></a>

以下 S3 on Outposts 示例显示如何确定存储桶是否存在以及您是否有权访问该存储桶。要使用此示例，请指定 Outpost 的访问点 ARN。有关更多信息，请参阅《Amazon Simple Storage Service API 参考》中的 [HeadBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html)。

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.HeadBucketRequest;

public class HeadBucket {
    public static void main(String[] args) {
        String accessPointArn = "{{*** access point ARN ***}}";

        try {
            // This code expects that you have AWS credentials set up per:
            // https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html
            AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                    .enableUseArnRegion()
                    .build();

            s3Client.headBucket(new HeadBucketRequest(accessPointArn));
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it, so it returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```