

# 创建带有标签的目录存储桶
<a name="directory-bucket-create-tag"></a>

您可以在创建 Amazon S3 目录存储桶时为它们添加标签。在超过标准 S3 API 请求速率的目录存储桶上使用标签无需额外付费。有关更多信息，请参阅 [Amazon S3 定价](https://docs.aws.amazon.com/s3/pricing/)。有关为目录存储桶添加标签的更多信息，请参阅[将标签与 S3 目录存储桶结合使用](directory-buckets-tagging.md)。

## 权限
<a name="create-tag-permissions"></a>

要创建带有标签的目录存储桶，您必须具有以下权限：
+ `s3express:CreateBucket`
+ `s3express:TagResource`

## 错误故障排除
<a name="create-tag-troubleshooting"></a>

如果您在尝试创建带有标签的目录存储桶时遇到错误，可以执行以下操作：
+ 确认您具备创建目录存储桶并向其添加标签所需的[权限](#create-tag-permissions)。
+ 检查 IAM 用户策略，了解是否存在任何基于属性的访问权限控制（ABAC）条件。您可能需要仅使用特定的标签键和值来标记目录存储桶。有关更多信息，请参阅 [使用标签进行基于属性的访问权限控制（ABAC）](tagging.md#using-tags-for-abac)。

## Steps
<a name="create-tag-steps"></a>

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

## 使用 S3 控制台
<a name="directory-bucket-create-tag-console"></a>

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

1. 登录到 Amazon S3 控制台，网址为：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择**目录存储桶**。

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

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

   在可用区中创建用于处理高性能工作负载的目录存储桶。有关更多信息，请参阅 [高性能工作负载](directory-bucket-high-performance.md)。

   在本地区域中创建用于处理数据驻留工作负载的目录存储桶。有关更多信息，请参阅 [数据驻留工作负载](directory-bucket-data-residency.md)。

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

1. 输入存储桶的名称。有关更多信息，请参阅 [目录存储桶命名规则](directory-bucket-naming-rules.md)。

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

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

1. 在您完成为新的目录存储桶指定选项后，选择**创建存储桶**。

## 使用 AWS SDK
<a name="directory-bucket-create-tag-sdks"></a>

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

------

## 使用 REST API
<a name="directory-bucket-tag-delete-api"></a>

有关 Amazon S3 REST API 支持创建带有标签的目录存储桶的信息，请参阅《Amazon Simple Storage Service API Reference》**中的以下部分：
+ [:CreateBucket](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)

## 使用 AWS CLI
<a name="directory-bucket-create-tag-cli"></a>

要安装 AWS CLI，请参阅《AWS Command Line Interface 用户指南》**中的[安装 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

以下 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/"
}
```