

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 HeadBucket 判斷 S3 on Outposts 儲存貯體是否存在，並且您是否擁有存取許可
<a name="S3OutpostsHeadBucket"></a>

物件是存放在 Amazon S3 on Outposts 中的基本實體。每個物件都包含在儲存貯體中。您必須使用存取點來存取 Outpost 儲存貯體中的任何物件。針對物件操作指定儲存貯體時，您可以使用存取點 Amazon Resource Name (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 SDKs 透過存取點上傳和管理物件。

下列 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 開發套件
<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();
        }
    }
}
```