使用 HeadBucket 确定是否存在 S3 on Outposts 存储桶以及您是否具有访问权限。 - Amazon S3 on Outposts

使用 HeadBucket 确定是否存在 S3 on Outposts 存储桶以及您是否具有访问权限。

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

以下示例显示了 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

注意

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

以下 AWS Command Line Interface (AWS CLI) 和 AWS SDK for Java 示例显示如何使用 HeadBucket API 操作确定 Amazon S3 on Outposts 存储桶是否存在以及您是否有权访问该存储桶。有关更多信息,请参阅《Amazon Simple Storage Service API 参考》中的 HeadBucket

以下 S3 on Outposts AWS CLI 示例显示如何使用 head-bucket 命令确定存储桶是否存在以及您是否有权访问该存储桶。要使用此命令,请将每个 user input placeholder 替换为您自己的信息。有关此命令的更多信息,请参阅《AWS CLI 参考》中的 head-bucket

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

以下 S3 on Outposts 示例显示如何确定存储桶是否存在以及您是否有权访问该存储桶。要使用此示例,请指定 Outpost 的访问点 ARN。有关更多信息,请参阅《Amazon Simple Storage Service API 参考》中的 HeadBucket

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(); } } }