创建带有标签的目录存储桶 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

创建带有标签的目录存储桶

您可以在创建 Amazon S3 目录存储桶时为它们添加标签。在超过标准 S3 API 请求速率的目录存储桶上使用标签无需额外付费。有关更多信息,请参阅 Amazon S3 定价。有关为目录存储桶添加标签的更多信息,请参阅将标签与 S3 目录存储桶结合使用

权限

要创建带有标签的目录存储桶,您必须具有以下权限:

  • s3express:CreateBucket

  • s3express:TagResource

错误故障排除

如果您在尝试创建带有标签的目录存储桶时遇到错误,可以执行以下操作:

  • 确认您具备创建目录存储桶并向其添加标签所需的权限

  • 检查您的 IAM 用户策略,了解是否存在任何基于属性的访问权限控制(ABAC)条件。您可能需要仅使用特定的标签键和值来标记目录存储桶。有关更多信息,请参阅 使用标签进行基于属性的访问权限控制(ABAC)

步数

您可以使用 Amazon S3 控制台、Amazon Command Line Interface(Amazon CLI)、Amazon S3 REST API 和 Amazon SDK 来创建应用了标签的目录存储桶。

使用 Amazon S3 控制台创建带有标签的目录存储桶:

  1. 登录到 Amazon S3 控制台,网址为:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择目录存储桶

  3. 选择创建存储桶以创建新的目录存储桶。

  4. 您可以创建两种类型的目录存储桶:

    在可用区中创建用于处理高性能工作负载的目录存储桶。有关更多信息,请参阅 高性能工作负载

    在本地区域中创建用于处理数据驻留工作负载的目录存储桶。有关更多信息,请参阅 数据驻留工作负载

  5. 对于这两种类型的目录存储桶,当创建新的目录存储桶时,在创建存储桶页面上,标签是一个选项。

  6. 输入存储桶的名称。有关更多信息,请参阅

  7. 选择添加新标签以打开标签编辑器并输入标签键值对。标签键是必需的,但值是可选的。

  8. 要添加其它标签,请再次选择添加新标签。最多可输入 50 个标签键值对。

  9. 在您完成为新的目录存储桶指定选项后,选择创建存储桶

SDK for Java 2.x

此示例说明如何使用Amazon SDK for Java 2.x 创建带有标签的目录存储桶。要使用该命令,请将用户输入占位符 替换为您自己的信息。

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.BucketInfo; import software.amazon.awssdk.services.s3.model.BucketType; import software.amazon.awssdk.services.s3.model.CreateBucketConfiguration; import software.amazon.awssdk.services.s3.model.CreateBucketRequest; import software.amazon.awssdk.services.s3.model.CreateBucketResponse; import software.amazon.awssdk.services.s3.model.DataRedundancy; import software.amazon.awssdk.services.s3.model.LocationInfo; import software.amazon.awssdk.services.s3.model.LocationType; import software.amazon.awssdk.services.s3.model.Tag; public class CreateBucketWithTagsExample { public static void createBucketWithTagsExample() { S3Client s3 = S3Client.builder().region(Region.US_WEST_2).build(); CreateBucketConfiguration bucketConfiguration = CreateBucketConfiguration.builder() .location(LocationInfo.builder() .type(LocationType.AVAILABILITY_ZONE) .name("usw2-az1").build()) .bucket(BucketInfo.builder() .type(BucketType.DIRECTORY) .dataRedundancy(DataRedundancy.SINGLE_AVAILABILITY_ZONE) .build()) .tags(Tag.builder().key("MyTagKey").value("MyTagValue").build()) .build(); CreateBucketRequest createBucketRequest = CreateBucketRequest.builder() .bucket("amzn-s3-demo-bucket--usw2-az1--x-s3--usw2-az1--x-s3") .createBucketConfiguration(bucketConfiguration) .build(); CreateBucketResponse response = s3.createBucket(createBucketRequest); System.out.println("Status code (should be 200):"); System.out.println(response.sdkHttpResponse().statusCode()); } }

有关 Amazon S3 REST API 支持创建带有标签的目录存储桶的信息,请参阅《Amazon Simple Storage Service API Reference》中的以下部分:

要安装 Amazon CLI,请参阅《Amazon Command Line Interface 用户指南》中的安装 Amazon CLI

以下 CLI 示例说明如何使用 Amazon CLI 创建带有标签的目录存储桶。要使用该命令,请将用户输入占位符 替换为您自己的信息。

创建目录存储桶时,必须提供配置详细信息并使用以下命名约定:bucket-base-name--zone-id--x-s3

请求:

aws s3api create-bucket \ --bucket bucket-base-name--zone-id--x-s3 \ --create-bucket-configuration "Location={Type=AvailabilityZone,Name=zone-id},Bucket={DataRedundancy=SingleAvailabilityZone,Type=Directory},Tags=[{Key=mykey1,Value=myvalue1}, {Key=mykey2,Value=myvalue2}]"

响应:

{ "Location": "http://bucket--use1-az4--x-s3.s3express-use1-az4.us-east-1.amazonaws.com/" }