创建带有标签的目录存储桶 - Amazon Simple Storage Service

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

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

权限

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

  • s3express:CreateBucket

  • s3express:TagResource

错误故障排除

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

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

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

步数

您可以使用 Amazon S3 控制台、AWS Command Line Interface(AWS CLI)、Amazon S3 REST API 和 AWS 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

此示例说明如何使用AWS 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》中的以下部分:

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

以下 CLI 示例说明如何使用 AWS 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/" }