

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

您可以在创建 Amazon S3 通用存储桶时为存储桶添加标签。在存储桶上使用标签时，除了标准 S3 API 请求费率之外，没有任何其他费用。有关更多信息，请参阅 [Amazon S3 定价](https://docs.aws.amazon.com/s3/pricing/)。有关为存储桶添加标签的更多信息，请参阅[将标签与 S3 通用存储桶结合使用](buckets-tagging.md)。

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

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

Amazon S3 控制台和 CloudFormation 现在使用此功能创建带有标签的存储桶。

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

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

**注意**  
Amazon S3 和 CloudFormation 现在使用此功能创建带有标签的存储桶。创建带有标签的存储桶时，请注意，仅当您在存储桶上启用 ABAC 后，才可以使用 `aws:ResourceTag` 和 `s3:BucketTag` 条件键对存储桶进行基于标签的有条件访问。要了解更多信息，请参阅[在通用存储桶中启用 ABAC](buckets-tagging-enable-abac.md)。

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

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

## 使用 S3 控制台
<a name="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. 按照正常方式创建通用存储桶；请参阅 [创建通用存储桶](create-bucket-overview.md)。

1. 在**创建存储桶**页面上，创建新存储桶时可以看到**标签**选项。

1. 输入存储桶的名称。有关更多信息，请参阅 [通用存储桶命名规则](bucketnamingrules.md)。

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

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

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

## 使用 AWS SDK
<a name="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.BucketLocationConstraint;
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.Tag;

public class CreateBucketWithTagsExample {
    public static void createBucketWithTagsExample() {
        S3Client s3 = S3Client.builder().region(Region.US_WEST_2).build();

        CreateBucketConfiguration bucketConfiguration = CreateBucketConfiguration.builder()
                .locationConstraint(BucketLocationConstraint.US_WEST_2)
                .tags(Tag.builder().key("MyTagKey").value("MyTagValue").build())
                .build();

        CreateBucketRequest createBucketRequest = CreateBucketRequest.builder()
                .bucket("mybucket")
                .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="bucket-tag-delete-api"></a>

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

## 使用 AWS CLI
<a name="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 创建带有标签的存储桶。要使用该命令，请将*用户输入占位符* 替换为您自己的信息。

创建存储桶时，您必须提供配置详细信息并使用以下命名约定：`amzn-s3-demo-bucket`

**请求:**

```
aws s3api create-bucket \
--bucket mybucket \
--create-bucket-configuration 'LocationConstraint=us-west-2,Tags=[{Key=MyTagKey,Value=MyTagValue}]' --region us-west-2"
```

**响应:**

```
{
  "Location": "http://mybuckets3.amazonaws.com/"
}
```