

# 使用 S3 Storage Lens 组筛选和汇总指标
使用 Storage Lens 组

Amazon S3 Storage Lens 存储统计管理工具组使用基于对象元数据的自定义筛选条件聚合指标。Storage Lens 组可帮助您深入了解数据的特征，例如按龄期划分的对象分布、最常见的文件类型等。例如，您可以按对象标签筛选指标以识别增长最快的数据集，或者根据对象大小和龄期可视化存储，为制定存储存档策略提供信息。因此，Amazon S3 Storage Lens 存储统计管理工具组可以帮助您更好地了解和优化 S3 存储。

使用 Storage Lens 组时，您可以使用对象元数据（例如前缀、后缀、[对象标签](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html)、对象大小或对象龄期）来分析和筛选 S3 Storage Lens 存储统计管理工具指标。您也可以组合应用这些筛选条件。将 Storage Lens 组附加到 S3 Storage Lens 存储统计管理工具控制面板后，您可以直接在控制面板中查看 Amazon S3 Storage Lens 存储统计管理工具组聚合的 S3 Storage Lens 存储统计管理工具指标。

例如，您还可以按对象大小或龄段筛选指标，以确定存储的哪一部分由小对象组成。然后，您可以将此信息与 S3 Intelligent-Tiering 或 S3 生命周期结合使用，将小对象过渡到不同的存储类，以实现成本和存储优化。

**Topics**
+ [

# S3 Storage Lens 组工作原理
](storage-lens-groups.md)
+ [

# 使用 Storage Lens 组
](storage-lens-group-tasks.md)

# S3 Storage Lens 组工作原理
Storage Lens 组工作原理

您可以通过 Storage Lens 组，使用基于对象元数据的自定义筛选条件来聚合指标。定义自定义筛选条件时，可以使用前缀、后缀、对象标签、对象大小、对象期龄或这些自定义筛选条件的组合。在创建 Storage Lens 组期间，您还可以包括一个或多个筛选条件。要指定多个筛选条件，请使用 `And` 或 `Or` 逻辑运算符。

创建和配置 Storage Lens 组时，该 Storage Lens 组本身将充当要将该组附加到的控制面板中的自定义筛选条件。然后，在控制面板中，您可以使用 Storage Lens 组筛选条件，根据您在组中定义的自定义筛选条件来获取存储指标。

要在 S3 Storage Lens 存储统计管理工具控制面板中查看 Storage Lens 组的数据，您必须在创建该组后将其附加到控制面板。将 Storage Lens 组关联到 Storage Lens 存储统计管理工具控制面板后，您的控制面板将在 48 小时内收集存储使用情况指标。然后，您可以在 Storage Lens 存储统计管理工具控制面板中可视化这些数据，也可以通过指标导出将其导出。如果您忘记将 Storage Lens 组附加到控制面板，则不会在任何地方捕获或显示您的 Storage Lens 组数据。

**注意**  
创建 S3 Storage Lens 组时，您将创建一个 AWS 资源。因此，每个 Storage Lens 组都有自己的 Amazon 资源名称 (ARN)，您可以在[将 Storage Lens 组附加到 S3 Storage Lens 存储统计管理工具控制面板或将其从该控制面板排除](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups-dashboard-console.html)时指定该名称。
如果您的 Storage Lens 组未附加到控制面板，则创建 Storage Lens 组不会产生任何额外费用。
S3 Storage Lens 存储统计管理工具聚合了所有匹配的 Storage Lens 组下某个对象的使用情况指标。因此，如果某个对象与两个或更多 Storage Lens 组的筛选条件相匹配，则在整个存储使用情况中，您会看到同一对象的重复计数。

您可以在指定的（支持的 AWS 区域 列表中的）主区域中创建账户级别的 Storage Lens 组。然后，您可以将您的 Storage Lens 组附加到多个 Storage Lens 存储统计管理工具控制面板，前提是这些控制面板位于同一个 AWS 账户和主区域中。您最多可以为每个 AWS 账户中的每个主区域创建 50 个 Storage Lens 组。

您可以使用 Amazon S3 控制台、AWS Command Line Interface (AWS CLI)、AWS SDK 或 Amazon S3 REST API 创建和管理 S3 Storage Lens 组。

**Topics**
+ [

## 查看 Storage Lens 组聚合指标
](#storage-lens-group-aggregation)
+ [

## Storage Lens 组权限
](#storage-lens-group-permissions)
+ [

## Storage Lens 组配置
](#storage-lens-groups-configuration)
+ [

## AWS 资源标签
](#storage-lens-group-resource-tags)
+ [

## Storage Lens 组指标导出
](#storage-lens-groups-metrics-export)

## 查看 Storage Lens 组聚合指标


您可以通过将 Storage Lens 组附加到控制面板来查看这些组的聚合指标。要附加的 Storage Lens 组必须位于控制面板账户中指定的主区域内。

要将 Storage Lens 组附加到控制面板，您必须在控制面板配置的 **Storage Lens 组聚合**部分指定该组。如果您有多个 Storage Lens 组，则可以筛选 **Storage Lens 组聚合**结果，使其根据需要仅包括或排除某些组。有关将组附加到控制面板的更多信息，请参阅 [将 S3 Storage Lens 组附加到控制面板或从控制面板移除](storage-lens-groups-dashboard-console.md)。

附加组后，您将在 48 小时内在控制面板中看到新增的 Storage Lens 组聚合数据。

**注意**  
要查看您的 Storage Lens 组的聚合指标，您必须将该组附加到 S3 Storage Lens 存储统计管理工具控制面板。

## Storage Lens 组权限


Storage Lens 组需要 AWS Identity and Access Management (IAM) 中的某些权限才能授权访问 S3 Storage Lens 组操作。要授予这些权限，您可以使用基于身份的 IAM policy。您可以将此策略附加到 IAM 用户、组或角色，以授予其权限。此类权限可能包括创建或删除 Storage Lens 组、查看其配置或管理其标签。

您授予权限的 IAM 用户或角色必须属于创建或拥有 Storage Lens 组的账户。

要使用 Storage Lens 组和查看您的 Storage Lens 组指标，您必须首先拥有使用 S3 Storage Lens 存储统计管理工具的相应权限。有关更多信息，请参阅 [设置 Amazon S3 Storage Lens 存储统计管理工具权限](storage_lens_iam_permissions.md)。

要创建和管理 S3 Storage Lens 组，您必须拥有以下 IAM 权限，具体取决于您要执行的操作：


| Action | IAM 权限 | 
| --- | --- | 
|  新建 Storage Lens 组  |  `s3:CreateStorageLensGroup`  | 
|  使用标签新建 Storage Lens 组  |  `s3:CreateStorageLensGroup`, `s3:TagResource`  | 
|  更新现有 Storage Lens 组  |  `s3:UpdateStorageLensGroup`  | 
|  返回 Storage Lens 组配置的详细信息  |  `s3:GetStorageLensGroup`  | 
|  列出主区域中的所有 Storage Lens 组  |  `s3:ListStorageLensGroups`  | 
|  删除 Storage Lens 组  |  `s3:DeleteStorageLensGroup`  | 
|  列出已添加到 Storage Lens 组的标签  |  `s3:ListTagsForResource`  | 
|  为现有 Storage Lens 组添加或更新 Storage Lens 组标签  |  `s3:TagResource`  | 
|  从 Storage Lens 组删除标签  |  `s3:UntagResource`  | 

以下是如何在创建 Storage Lens 组的账户中配置 IAM policy 的示例。要使用此策略，请将 `us-east-1` 替换为您的 Storage Lens 组所在的主区域。将 `111122223333` 替换为您的 AWS 账户 ID，然后将 `example-storage-lens-group` 替换为您的 Storage Lens 组的名称。要将这些权限应用于所有 Storage Lens 组，请将 `example-storage-lens-group` 替换为 `*`。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EXAMPLE-Statement-ID",
            "Effect": "Allow",
            "Action": [
                "s3:CreateStorageLensGroup",
                "s3:UpdateStorageLensGroup",
                "s3:GetStorageLensGroup",
                "s3:ListStorageLensGroups",
                "s3:DeleteStorageLensGroup,
                "s3:TagResource",
                "s3:UntagResource",
                "s3:ListTagsForResource"
                ],
            "Resource": "arn:aws:s3:us-east-1:111122223333:storage-lens-group/example-storage-lens-group"
        }
    ]
}
```

有关 S3 Storage Lens 存储统计管理工具权限的更多信息，请参阅 [设置 Amazon S3 Storage Lens 存储统计管理工具权限](storage_lens_iam_permissions.md)。有关 IAM policy 语言的更多信息，请参阅 [Amazon S3 中的策略和权限](access-policy-language-overview.md)。

## Storage Lens 组配置


### S3 Storage Lens 组名称


我们建议您使用 Storage Lens 组的用途为其命名，这样您就可以轻松确定要将哪些组附加到控制面板。要[将 Storage Lens 组附加到控制面板](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups-dashboard-console.html)，您必须在控制面板配置的 **Storage Lens 组聚合**部分指定该组。

账户中的 Storage Lens 组名称必须唯一。长度不得超过 64 个字符，只能包含字母（a-z、A-Z）、数字 (0-9)、连字符 (`-`) 和下划线 (`_`)。

### 主区域


主区域是创建和维护 Storage Lens 组的 AWS 区域。您的 Storage Lens 组是在与 Amazon S3 Storage Lens 存储统计管理工具控制面板相同的主区域创建的。Storage Lens 组配置和指标也存储在该区域中。您最多可以在主区域中创建 50 个 Storage Lens 组。

 创建 Storage Lens 组后，您无法编辑主区域。

### 范围


要将对象包含在 Storage Lens 组中，这些对象必须在 Amazon S3 Storage Lens 存储统计管理工具控制面板的范围内。Storage Lens 存储统计管理工具控制面板的范围由您在 S3 Storage Lens 存储统计管理工具控制面板配置的**控制面板范围**中包含的桶决定。

您可以为对象使用不同的筛选条件来定义 Storage Lens 组的范围。要在 S3 Storage Lens 存储统计管理工具控制面板中查看这些 Storage Lens 组指标，对象必须与您在 Storage Lens 组中包含的筛选条件相匹配。例如，假设您的 Storage Lens 组要包括带有前缀 `marketing` 和后缀 `.png` 的对象，但没有对象与这些条件相匹配。在这种情况下，在您的每日指标导出中不会生成此 Storage Lens 组的指标，并且您的控制面板中也不会显示该组的指标。

### 筛选条件


您可以在 S3 Storage Lens 组中使用以下筛选条件：
+ **前缀** – 指定要包括的对象的[前缀](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html)，该前缀是对象键名称开头的一串字符。例如，如果**前缀**筛选条件的值为 `images`，则将包括带有以下任何前缀的对象：`images/`、`images-marketing` 和 `images/production`。前缀的最大长度是 1024 个字节。
+ **后缀** – 指定要包括的对象的后缀（例如 `.png`、`.jpeg` 或 `.csv`）。后缀的最大长度是 1024 个字节。
+ **对象标签** – 指定要用于筛选的[对象标签](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html)列表。标签键不能超过 128 个 Unicode 字符，标签值不能超过 256 个 Unicode 字符。请注意，如果将对象标签值字段留空，则 S3 Storage Lens 组仅将该对象与标签值也为空的其它对象进行匹配。
+ **龄期** – 指定要包括的对象的对象龄期范围（以天为单位）。仅支持整数。
+ **大小** – 指定要包括的对象的对象大小范围（以字节为单位）。仅支持整数。允许的最大值为 50 TB。

### Storage Lens 组对象标签


您可以[创建最多包含 10 个对象标签筛选条件的 Storage Lens 组](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups-create.html)。以下示例包含两个对象标签键值对作为名为 `Marketing-Department` 的 Storage Lens 组的筛选条件。要使用此示例，请使用您的组名称替换 `Marketing-Department`，并将 `object-tag-key-1`、`object-tag-value-1` 等替换为要用于筛选的对象标签键值对。

```
{
    "Name": "Marketing-Department",
    "Filter": {
     "MatchAnyTag":[
                {
                    "Key": "object-tag-key-1",
                    "Value": "object-tag-value-1"
                },
                {
                    "Key": "object-tag-key-2",
                    "Value": "object-tag-value-2"
                }
            ]
    }
}
```

### 逻辑运算符（`And` 或 `Or`）


要在 Storage Lens 组中包含多个筛选条件，可以使用逻辑运算符（`And` 或 `Or`）。在以下示例中，名为 `Marketing-Department` 的 Storage Lens 组使用 `And` 运算符包含 `Prefix`、`ObjectAge` 和 `ObjectSize` 筛选条件。由于使用 `And` 运算符，因此只有与**所有**这些筛选条件匹配的对象才会包括在 Storage Lens 组的范围内。

要使用此示例，请将 `user input placeholders` 替换为要用于筛选的值。

```
{
    "Name": "Marketing-Department",
    "Filter": {
        "And": {
            "MatchAnyPrefix": [
                "prefix-1",
                "prefix-2",
                "prefix-3/sub-prefix-1" 
            ],
             "MatchObjectAge": {
                "DaysGreaterThan": 10,
                "DaysLessThan": 60
            },
            "MatchObjectSize": {
                "BytesGreaterThan": 10,
                "BytesLessThan": 60 
            }
        }
    }
}
```

**注意**  
如果要包括与**任何**筛选条件相匹配的对象，请将此示例中的 `And` 逻辑运算符替换为 `Or` 逻辑运算符。

## AWS 资源标签


每个 S3 Storage Lens 组都视为一个 AWS 资源，有自己的 Amazon 资源名称 (ARN)。因此，在配置 Storage Lens 组时，可以选择向该组添加 AWS 资源标签。最多可以为每个 Storage Lens 组添加 50 个标签。要创建带标签的 Storage Lens 组，您必须拥有 `s3:CreateStorageLensGroup` 和 `s3:TagResource` 权限。

您可以使用 AWS 资源标签根据部门、业务线或项目对资源进行分类。如果您有许多相同类型的资源，这样做会非常有用。通过应用标签，您可以根据分配给特定 Storage Lens 组的标签快速识别该组。您还可以使用标签对成本进行跟踪和分配。

此外，当您向 Storage Lens 组添加 AWS 资源标签时，将激活[基于属性的访问权限控制 (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)。ABAC 是一种基于属性（在本文中，也就是标签）定义权限的授权策略。您还可以在 IAM policy 中使用指定资源标签的条件，从而[控制对 AWS 资源的访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources)。

您可以修改标签的键和值，还可以随时删除资源的标签。此外，请注意以下限制：
+ 标签键和标签值区分大小写。
+ 如果您添加的标签的值与该实例上现有标签的值相同，新的值就会覆盖旧值。
+ 如果删除资源，资源的所有标签也会被删除。
+ 不要在 AWS 资源标签中包含隐私或敏感数据。
+ 不支持系统标签（或标签键以 `aws:` 开头的标签）。
+ 每个标签键的长度不能超过 128 个字符。每个标签值的长度不能超过 256 个字符。

## Storage Lens 组指标导出


S3 Storage Lens 组指标包含在 Storage Lens 组所附加到的控制面板的 [Amazon S3 Storage Lens 存储统计管理工具指标导出](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens_understanding_metrics_export_schema.html)中。有关 Storage Lens 指标导出功能的一般信息，请参阅 [使用数据导出查看 Amazon S3 Storage Lens 存储统计管理工具指标](storage_lens_view_metrics_export.md)。

Storage Lens 组的指标导出包括您将 Storage Lens 组附加到的控制面板范围内的任何 S3 Storage Lens 指标。导出还包括 Storage Lens 组的其它指标数据。

创建 Storage Lens 组后，您的指标导出每天都会发送到您在为组所附加到的控制面板配置指标导出时选择的桶。您最长可能需要 48 小时才能收到第一份指标导出。

要在每日导出中生成指标，对象必须与您在 Storage Lens 组中包含的筛选条件相匹配。如果没有对象与您在 Storage Lens 组中包含的筛选条件相匹配，则不会生成任何指标。但是，如果某个对象与两个或更多 Storage Lens 组相匹配，则当该对象出现在指标导出中时，该对象将针对每个组单独列出。

您可以通过在控制面板指标导出的 `record_type` 列中查找以下值之一来识别 Storage Lens 组的指标：
+ `STORAGE_LENS_GROUP_BUCKET`
+ `STORAGE_LENS_GROUP_ACCOUNT`

`record_value` 列显示 Storage Lens 组的资源 ARN（例如 `arn:aws:s3:us-east-1:111122223333:storage-lens-group/Marketing-Department`）。

# 使用 Storage Lens 组


Amazon S3 Storage Lens 存储统计管理工具组使用基于对象元数据的自定义筛选条件聚合指标。您可以使用前缀、后缀、对象标签、对象大小或对象龄期来分析和筛选 S3 Storage Lens 存储统计管理工具指标。使用 Amazon S3 Storage Lens 存储统计管理工具组，您还可以在 Amazon S3 桶内以及跨多个桶，对使用情况进行分类。因此，您将能够更好地了解和优化 S3 存储。

要开始可视化 Storage Lens 组的数据，必须先[将 Storage Lens 组附加到 S3 Storage Lens 存储统计管理工具控制面板](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups-dashboard-console.html#storage-lens-groups-attach-dashboard-console)。如果您需要在控制面板中管理 Storage Lens 组，可以编辑控制面板配置。要查看您的账户下有哪些 Storage Lens 组，您可以将其列出。要查看哪些 Storage Lens 组已附加到控制面板，您可以随时查看控制面板中的 **Storage Lens 组**选项卡。要查看或更新现有 Storage Lens 组的范围，可以查看其详细信息。您还可以永久删除 Storage Lens 组。

要管理权限，您可以创建用户定义的 AWS 资源标签并将其添加到 Storage Lens 组。您可以使用 AWS 资源标签根据部门、业务线或项目对资源进行分类。如果您有许多相同类型的资源，这样做会非常有用。通过应用标签，您可以根据分配给特定 Storage Lens 组的标签快速识别该组。

此外，当您向 Storage Lens 组添加 AWS 资源标签时，将激活[基于属性的访问权限控制 (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)。ABAC 是一种基于属性（在本文中，也就是标签）定义权限的授权策略。您还可以在 IAM policy 中使用指定资源标签的条件，从而[控制对 AWS 资源的访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources)。

**Topics**
+ [

# 创建 Storage Lens 组
](storage-lens-groups-create.md)
+ [

# 将 S3 Storage Lens 组附加到控制面板或从控制面板移除
](storage-lens-groups-dashboard-console.md)
+ [

# 可视化 Storage Lens 组数据
](storage-lens-groups-visualize.md)
+ [

# 更新 Storage Lens 组
](storage-lens-groups-update.md)
+ [

# 使用 Storage Lens 组管理 AWS 资源标签
](storage-lens-groups-manage-tags.md)
+ [

# 列出所有 Storage Lens 组
](storage-lens-groups-list.md)
+ [

# 查看 Storage Lens 组详细信息
](storage-lens-groups-view.md)
+ [

# 删除 Storage Lens 组
](storage-lens-groups-delete.md)

# 创建 Storage Lens 组
创建 Storage Lens 组

以下示例演示如何使用 Amazon S3 控制台、AWS Command Line Interface (AWS CLI) 和 适用于 Java 的 AWS SDK 创建 Amazon S3 Storage Lens 存储统计管理工具组。

## 使用 S3 控制台


**创建 Storage Lens 组**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在页面顶部的导航栏中，选择当前所显示 AWS 区域的名称。接下来，选择要切换到的区域。

1. 在左侧导航窗格中，选择 **Storage Lens 组**。

1. 选择**创建 Storage Lens 组**。

1. 在**常规**下，查看您的**主区域**，然后输入 **Storage Lens 组名称**。

1. 在**范围**下，选择要应用于 Storage Lens 组的筛选条件。要应用多个筛选条件，请选择您的筛选条件，然后选择 **AND** 或 **OR** 逻辑运算符。
   + 对于**前缀**筛选条件，请选择**前缀**，然后输入前缀字符串。要添加多个前缀，请选择**添加前缀**。要移除前缀，请选择要移除的前缀旁的**移除**。
   + 对于**对象标签**筛选条件，请选择**对象标签**，然后输入对象的键值对。然后选择**添加标签**。要移除标签，请选择要移除的标签旁的**移除**。
   + 对于**后缀**筛选条件，请选择**后缀**，然后输入后缀字符串。要添加多个后缀，请选择**添加后缀**。要移除后缀，请选择要移除的后缀旁的**移除**。
   + 对于**龄期**筛选条件，请以天为单位指定对象的龄期范围。选择**指定最小对象龄期**，然后输入最小对象龄期。然后，选择**指定最大对象龄期**并输入最大对象龄期。
   + 对于**大小**筛选条件，请指定对象大小范围和衡量单位。选择**指定最小对象大小**，然后输入最小对象大小。选择**指定最大对象大小**，然后输入最大对象大小。

1. （可选）对于 AWS 资源标签，请添加键值对，然后选择**添加标签**。

1. 选择**创建 Storage Lens 组**。

## 使用 AWS CLI


以下示例 AWS CLI 命令将创建一个 Storage Lens 组。要使用此示例命令，请将 `user input placeholders` 替换为您自己的信息。

```
aws s3control create-storage-lens-group --account-id 111122223333 \ 
--region us-east-1 --storage-lens-group=file://./marketing-department.json
```

以下示例 AWS CLI 命令将创建一个具有两个 AWS 资源标签的 Storage Lens 组。要使用此示例命令，请将 `user input placeholders` 替换为您自己的信息。

```
aws s3control create-storage-lens-group --account-id 111122223333 \ 
--region us-east-1 --storage-lens-group=file://./marketing-department.json \
--tags Key=k1,Value=v1 Key=k2,Value=v2
```

有关示例 JSON 配置，请参阅 [Storage Lens 组配置](storage-lens-groups.md#storage-lens-groups-configuration)。

## 使用适用于 Java 的 AWS SDK


以下 适用于 Java 的 AWS SDK 示例将创建一个 Storage Lens 组。要使用此示例，请将 `user input placeholders` 替换为您自己的信息。

**Example – 创建包含单个筛选条件的 Storage Lens 组**  
以下示例将创建一个名为 `Marketing-Department` 的 Storage Lens 组。该组有一个对象龄期筛选条件，指定了 `30` 至 `90` 天的龄期范围。要使用此示例，请将 `user input placeholders` 替换为您自己的信息。  

```
package aws.example.s3control;
 
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.CreateStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.MatchObjectAge;
import software.amazon.awssdk.services.s3control.model.StorageLensGroup;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupFilter;
 
public class CreateStorageLensGroupWithObjectAge {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";
        
        try {
            StorageLensGroupFilter objectAgeFilter = StorageLensGroupFilter.builder()
                    .matchObjectAge(MatchObjectAge.builder()
                            .daysGreaterThan(30)
                            .daysLessThan(90)
                            .build())
                    .build();

            StorageLensGroup storageLensGroup = StorageLensGroup.builder()
                    .name(storageLensGroupName)
                    .filter(objectAgeFilter)
                    .build();

            CreateStorageLensGroupRequest createStorageLensGroupRequest = CreateStorageLensGroupRequest.builder()
                    .storageLensGroup(storageLensGroup)
                    .accountId(accountId).build();

            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.createStorageLensGroup(createStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and 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();
        }
    }
}
```

**Example – 使用 `AND` 运算符创建包含多个筛选条件的 Storage Lens 组**  
以下示例将创建一个名为 `Marketing-Department` 的 Storage Lens 组。该组使用 `AND` 运算符来指示对象必须匹配**所有**筛选条件。要使用此示例，请将 `user input placeholders` 替换为您自己的信息。  

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.CreateStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.MatchObjectAge;
import software.amazon.awssdk.services.s3control.model.MatchObjectSize;
import software.amazon.awssdk.services.s3control.model.S3Tag;
import software.amazon.awssdk.services.s3control.model.StorageLensGroup;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupAndOperator;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupFilter;


public class CreateStorageLensGroupWithAndFilter {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";

        try {
            // Create object tags.
            S3Tag tag1 = S3Tag.builder()
                    .key("object-tag-key-1")
                    .value("object-tag-value-1")
                    .build();
            S3Tag tag2 = S3Tag.builder()
                    .key("object-tag-key-2")
                    .value("object-tag-value-2")
                    .build();

            StorageLensGroupAndOperator andOperator = StorageLensGroupAndOperator.builder()
                    .matchAnyPrefix("prefix-1", "prefix-2", "prefix-3/sub-prefix-1")
                    .matchAnySuffix(".png", ".gif", ".jpg")
                    .matchAnyTag(tag1, tag2)
                    .matchObjectAge(MatchObjectAge.builder()
                            .daysGreaterThan(30)
                            .daysLessThan(90).build())
                    .matchObjectSize(MatchObjectSize.builder()
                            .bytesGreaterThan(1000L)
                            .bytesLessThan(6000L).build())
                    .build();

            StorageLensGroupFilter andFilter = StorageLensGroupFilter.builder()
                    .and(andOperator)
                    .build();

            StorageLensGroup storageLensGroup = StorageLensGroup.builder()
                    .name(storageLensGroupName)
                    .filter(andFilter)
                    .build();

            CreateStorageLensGroupRequest createStorageLensGroupRequest = CreateStorageLensGroupRequest.builder()
                    .storageLensGroup(storageLensGroup)
                    .accountId(accountId).build();

            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.createStorageLensGroup(createStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and 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();
        }
    }
}
```

**Example – 使用 `OR` 运算符创建包含多个筛选条件的 Storage Lens 组**  
以下示例将创建一个名为 `Marketing-Department` 的 Storage Lens 组。该组使用 `OR` 运算符来应用前缀筛选条件（`prefix-1`、`prefix-2`、`prefix3/sub-prefix-1`）或对象大小筛选条件（大小范围在 `1000` 字节至 `6000` 字节之间）。要使用此示例，请将 `user input placeholders` 替换为您自己的信息。  

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.CreateStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.MatchObjectSize;
import software.amazon.awssdk.services.s3control.model.StorageLensGroup;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupFilter;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupOrOperator;

public class CreateStorageLensGroupWithOrFilter {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";

        try {
            StorageLensGroupOrOperator orOperator = StorageLensGroupOrOperator.builder()
                    .matchAnyPrefix("prefix-1", "prefix-2", "prefix-3/sub-prefix-1")
                    .matchObjectSize(MatchObjectSize.builder()
                            .bytesGreaterThan(1000L)
                            .bytesLessThan(6000L)
                            .build())
                    .build();

            StorageLensGroupFilter orFilter = StorageLensGroupFilter.builder()
                    .or(orOperator)
                    .build();

            StorageLensGroup storageLensGroup = StorageLensGroup.builder()
                    .name(storageLensGroupName)
                    .filter(orFilter)
                    .build();

            CreateStorageLensGroupRequest createStorageLensGroupRequest = CreateStorageLensGroupRequest.builder()
                    .storageLensGroup(storageLensGroup)
                    .accountId(accountId).build();

            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.createStorageLensGroup(createStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and 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();
        }
    }
}
```

**Example – 使用单个筛选条件和两个 AWS 资源标签创建 Storage Lens 组**  
以下示例将创建一个名为 `Marketing-Department` 的 Storage Lens 组，该组具有后缀筛选条件。此示例还向 Storage Lens 组添加了两个 AWS 资源标签。要使用此示例，请将 `user input placeholders` 替换为您自己的信息。  

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.CreateStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.StorageLensGroup;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupFilter;
import software.amazon.awssdk.services.s3control.model.Tag;

public class CreateStorageLensGroupWithResourceTags {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";

        try {
            // Create AWS resource tags.
            Tag resourceTag1 = Tag.builder()
                    .key("resource-tag-key-1")
                    .value("resource-tag-value-1")
                    .build();
            Tag resourceTag2 = Tag.builder()
                    .key("resource-tag-key-2")
                    .value("resource-tag-value-2")
                    .build();

            StorageLensGroupFilter suffixFilter = StorageLensGroupFilter.builder()
                    .matchAnySuffix(".png", ".gif", ".jpg")
                    .build();

            StorageLensGroup storageLensGroup = StorageLensGroup.builder()
                    .name(storageLensGroupName)
                    .filter(suffixFilter)
                    .build();

            CreateStorageLensGroupRequest createStorageLensGroupRequest = CreateStorageLensGroupRequest.builder()
                    .storageLensGroup(storageLensGroup)
                    .tags(resourceTag1, resourceTag2)
                    .accountId(accountId).build();

            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.createStorageLensGroup(createStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and 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();
        }
    }
}
```

有关示例 JSON 配置，请参阅 [Storage Lens 组配置](storage-lens-groups.md#storage-lens-groups-configuration)。

# 将 S3 Storage Lens 组附加到控制面板或从控制面板移除
附加或移除 Storage Lens 组

在 Amazon S3 Storage Lens 存储统计管理工具中升级到高级级别后，您可以将 [Storage Lens 组](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups-overview.html)附加到控制面板。如果您有多个 Storage Lens 组，则可以根据需要包括或排除组。

您的 Storage Lens 组必须位于控制面板账户中指定的主区域内。将 Storage Lens 组附加到控制面板后，您将在 48 小时内在指标导出中收到新增的 Storage Lens 组聚合数据。

**注意**  
如果要查看 Storage Lens 组的聚合指标，则必须将其附加到 Storage Lens 控制面板。有关 Storage Lens 组 JSON 配置文件的示例，请参阅 [JSON 格式的 S3 Storage Lens 存储统计管理工具示例配置（带 Storage Lens 组）](S3LensHelperFilesCLI.md#StorageLensGroupsHelperFilesCLI)。

## 使用 S3 控制台


**将 Storage Lens 组附加到 Storage Lens 控制面板**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，在 **Storage Lens** 下选择**控制面板**。

1. 选择要将 Storage Lens 组附加到的 Storage Lens 控制面板的选项按钮。

1. 选择**编辑**。

1. 在 **Metrics selection**（指标选择）下方，请选择 **Advanced metrics and recommendations**（高级指标和建议）。

1. 选择 **Storage Lens 组聚合**。
**注意**  
默认情况下，还会选中**高级指标**。但是，您也可以取消选中此设置，因为聚合 Storage Lens 组数据并非必须。

1. 向下滚动到 **Storage Lens 组聚合**，然后指定要在数据聚合中包括或排除的一个或多个 Storage Lens 组。您可以使用以下筛选条件选项：
   + 如果要包括某些 Storage Lens 组，请选择**包括 Storage Lens 组**。在**要包括的 Storage Lens 组**下，选择您的 Storage Lens 组。
   + 如果要包括所有 Storage Lens 组，请选择**包括此账户中主区域中的所有 Storage Lens 组**。
   + 如果要排除某些 Storage Lens 组，请选择**排除 Storage Lens 组**。在**要排除的 Storage Lens 组**下，选择要排除的 Storage Lens 组。

1. 选择**保存更改**。如果您正确配置了 Storage Lens 组，则将在 48 小时内在控制面板中看到新增的 Storage Lens 组聚合数据。

**从 S3 Storage Lens 存储统计管理工具控制面板移除 Storage Lens 组**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，在 **Storage Lens** 下选择**控制面板**。

1. 选择要从中移除 Storage Lens 组的 Storage Lens 控制面板的选项按钮。

1. 选择**查看控制面板配置**。

1. 选择**编辑**。

1. 向下滚动到**指标选择**部分。

1. 在 **Storage Lens 组聚合**下，选择要移除的 Storage Lens 组旁的 **X**。这将移除 Storage Lens 组。

   如果您在控制面板中包括了所有 Storage Lens 组，请清除**包括此账户中主区域中的所有 Storage Lens 组**旁的复选框。

1. 选择**保存更改**。
**注意**  
最多需要等待 48 小时，控制面板才会反映配置更新。

## 使用适用于 Java 的 AWS SDK


**Example – 将所有 Storage Lens 组附加到控制面板**  
以下 Java 版 SDK 示例将账户 *111122223333* 中的所有 Storage Lens 组附加到 *DashBoardConfigurationId* 控制面板：  

```
package aws.example.s3control;


import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.services.s3control.AWSS3Control;
import com.amazonaws.services.s3control.AWSS3ControlClient;
import com.amazonaws.services.s3control.model.BucketLevel;
import com.amazonaws.services.s3control.model.PutStorageLensConfigurationRequest;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3control.model.AccountLevel;
import com.amazonaws.services.s3control.model.StorageLensConfiguration;
import com.amazonaws.services.s3control.model.StorageLensGroupLevel;

import static com.amazonaws.regions.Regions.US_WEST_2;

public class CreateDashboardWithStorageLensGroups {
    public static void main(String[] args) {
        String configurationId = "ExampleDashboardConfigurationId";
        String sourceAccountId = "111122223333";

        try {
            StorageLensGroupLevel storageLensGroupLevel = new StorageLensGroupLevel();

            AccountLevel accountLevel = new AccountLevel()
                    .withBucketLevel(new BucketLevel())
                    .withStorageLensGroupLevel(storageLensGroupLevel);

            StorageLensConfiguration configuration = new StorageLensConfiguration()
                    .withId(configurationId)
                    .withAccountLevel(accountLevel)
                    .withIsEnabled(true);

            AWSS3Control s3ControlClient = AWSS3ControlClient.builder()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(US_WEST_2)
                    .build();

            s3ControlClient.putStorageLensConfiguration(new PutStorageLensConfigurationRequest()
                    .withAccountId(sourceAccountId)
                    .withConfigId(configurationId)
                    .withStorageLensConfiguration(configuration)
            );
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and 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();
        }
    }
}
```

**Example – 将两个 Storage Lens 组附加到控制面板**  
以下适用于 Java 的 AWS SDK 示例将两个 Storage Lens 组（*StorageLensGroupName1* 和 *StorageLensGroupName2*）附加到 *ExampleDashboardConfigurationId* 控制面板。  

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3control.AWSS3Control;
import com.amazonaws.services.s3control.AWSS3ControlClient;
import com.amazonaws.services.s3control.model.AccountLevel;
import com.amazonaws.services.s3control.model.BucketLevel;
import com.amazonaws.services.s3control.model.PutStorageLensConfigurationRequest;
import com.amazonaws.services.s3control.model.StorageLensConfiguration;
import com.amazonaws.services.s3control.model.StorageLensGroupLevel;
import com.amazonaws.services.s3control.model.StorageLensGroupLevelSelectionCriteria;

import static com.amazonaws.regions.Regions.US_WEST_2;

public class CreateDashboardWith2StorageLensGroups {
    public static void main(String[] args) {
        String configurationId = "ExampleDashboardConfigurationId";
        String storageLensGroupName1 = "StorageLensGroupName1";
        String storageLensGroupName2 = "StorageLensGroupName2";
        String sourceAccountId = "111122223333";

        try {
            StorageLensGroupLevelSelectionCriteria selectionCriteria = new StorageLensGroupLevelSelectionCriteria()
                    .withInclude(
                            "arn:aws:s3:" + US_WEST_2.getName() + ":" + sourceAccountId + ":storage-lens-group/" + storageLensGroupName1,
                            "arn:aws:s3:" + US_WEST_2.getName() + ":" + sourceAccountId + ":storage-lens-group/" + storageLensGroupName2);

            System.out.println(selectionCriteria);
            StorageLensGroupLevel storageLensGroupLevel = new StorageLensGroupLevel()
                    .withSelectionCriteria(selectionCriteria);

            AccountLevel accountLevel = new AccountLevel()
                    .withBucketLevel(new BucketLevel())
                    .withStorageLensGroupLevel(storageLensGroupLevel);

            StorageLensConfiguration configuration = new StorageLensConfiguration()
                    .withId(configurationId)
                    .withAccountLevel(accountLevel)
                    .withIsEnabled(true);

            AWSS3Control s3ControlClient = AWSS3ControlClient.builder()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(US_WEST_2)
                    .build();

            s3ControlClient.putStorageLensConfiguration(new PutStorageLensConfigurationRequest()
                    .withAccountId(sourceAccountId)
                    .withConfigId(configurationId)
                    .withStorageLensConfiguration(configuration)
            );
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and 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();
        }
    }
}
```

**Example – 附加除排除项之外的所有 Storage Lens 组**  
以下 Java 版 SDK 示例将所有 Storage Lens 组附加到 *ExampleDashboardConfigurationId* 控制面板，但不包括指定的两个组（*StorageLensGroupName1* 和 *StorageLensGroupName2*）：  

```
package aws.example.s3control;


import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.s3control.AWSS3Control;
import com.amazonaws.services.s3control.AWSS3ControlClient;
import com.amazonaws.services.s3control.model.AccountLevel;
import com.amazonaws.services.s3control.model.BucketLevel;
import com.amazonaws.services.s3control.model.PutStorageLensConfigurationRequest;
import com.amazonaws.services.s3control.model.StorageLensConfiguration;
import com.amazonaws.services.s3control.model.StorageLensGroupLevel;
import com.amazonaws.services.s3control.model.StorageLensGroupLevelSelectionCriteria;

import static com.amazonaws.regions.Regions.US_WEST_2;

public class CreateDashboardWith2StorageLensGroupsExcluded {
    public static void main(String[] args) {
        String configurationId = "ExampleDashboardConfigurationId";
        String storageLensGroupName1 = "StorageLensGroupName1";
        String storageLensGroupName2 = "StorageLensGroupName2";
        String sourceAccountId = "111122223333";

        try {
            StorageLensGroupLevelSelectionCriteria selectionCriteria = new StorageLensGroupLevelSelectionCriteria()
                    .withInclude(
                            "arn:aws:s3:" + US_WEST_2.getName() + ":" + sourceAccountId + ":storage-lens-group/" + storageLensGroupName1,
                            "arn:aws:s3:" + US_WEST_2.getName() + ":" + sourceAccountId + ":storage-lens-group/" + storageLensGroupName2);

            System.out.println(selectionCriteria);
            StorageLensGroupLevel storageLensGroupLevel = new StorageLensGroupLevel()
                    .withSelectionCriteria(selectionCriteria);

            AccountLevel accountLevel = new AccountLevel()
                    .withBucketLevel(new BucketLevel())
                    .withStorageLensGroupLevel(storageLensGroupLevel);

            StorageLensConfiguration configuration = new StorageLensConfiguration()
                    .withId(configurationId)
                    .withAccountLevel(accountLevel)
                    .withIsEnabled(true);

            AWSS3Control s3ControlClient = AWSS3ControlClient.builder()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(US_WEST_2)
                    .build();

            s3ControlClient.putStorageLensConfiguration(new PutStorageLensConfigurationRequest()
                    .withAccountId(sourceAccountId)
                    .withConfigId(configurationId)
                    .withStorageLensConfiguration(configuration)
            );
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and 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();
        }
    }
}
```

# 可视化 Storage Lens 组数据
可视化 Storage Lens 组数据

通过[将 Storage Lens 组附加到 Amazon S3 Storage Lens 存储统计管理工具控制面板](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups-dashboard-console.html#storage-lens-groups-attach-dashboard-console)，您可以将该组数据可视化。在控制面板配置中将 Storage Lens 组包含在 Storage Lens 组聚合中后，最长可能需要 48 小时才能在控制面板中显示 Storage Lens 组的数据。

更新控制面板配置后，任何新附加的 Storage Lens 组都将显示在 **Storage Lens 组**选项卡下的可用资源列表中。您还可以在**概览**选项卡中，通过按其它维度对数据进行切片，来进一步分析存储使用情况。例如，您可以选择**前 3 个**类别下列出的项目之一，然后选择**分析依据**，按另一个维度对数据进行切片。不能应用与筛选条件本身相同的维度。

**注意**  
您不能将 Storage Lens 组筛选条件与前缀筛选条件一起应用，反之亦然。您也无法使用前缀筛选条件进一步分析 Storage Lens 组。

您可以使用 Amazon S3 Storage Lens 存储统计管理工具控制面板中的 **Storage Lens 组**选项卡，为附加到控制面板的 Storage Lens 组自定义数据可视化。您可以可视化附加到控制面板的某些 Storage Lens 组的数据，也可以将所有组的数据可视化。

在 S3 Storage Lens 存储统计管理工具控制面板中可视化 Storage Lens 组数据时，请注意以下几点：
+ S3 Storage Lens 存储统计管理工具聚合了所有匹配的 Storage Lens 组下某个对象的使用情况指标。因此，如果某个对象与两个或更多 Storage Lens 组的筛选条件相匹配，则在整个存储使用情况中，您会看到同一对象的重复计数。
+ 对象必须与您在 Storage Lens 组中包含的筛选条件相匹配。如果没有对象与您在 Storage Lens 组中包含的筛选条件相匹配，则不会生成任何指标。要确定是否有任何未分配的对象，请在控制面板中查看账户级别和桶级别的对象总数。

# 更新 Storage Lens 组
更新 Storage Lens 组

以下示例演示如何更新 Amazon S3 Storage Lens 存储统计管理工具组。您可以使用 Amazon S3 控制台、AWS Command Line Interface (AWS CLI) 和 适用于 Java 的 AWS SDK 更新 Storage Lens 组。

## 使用 S3 控制台


**更新 Storage Lens 组**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择 **Storage Lens 组**。

1. 在 **Storage Lens 组**下，选择要更新的 Storage Lens 组。

1. 在**范围**下，选择**编辑**。

1. 在**范围**页面上，选择要应用于 Storage Lens 组的筛选条件。要应用多个筛选条件，请选择您的筛选条件，然后选择 **AND** 或 **OR** 逻辑运算符。
   + 对于**前缀**筛选条件，请选择**前缀**，然后输入前缀字符串。要添加多个前缀，请选择**添加前缀**。要移除前缀，请选择要移除的前缀旁的**移除**。
   + 对于**对象标签**筛选条件，请输入对象的键值对。然后选择**添加标签**。要移除标签，请选择要移除的标签旁的**移除**。
   + 对于**后缀**筛选条件，请选择**后缀**，然后输入后缀字符串。要添加多个后缀，请选择**添加后缀**。要移除后缀，请选择要移除的后缀旁的**移除**。
   + 对于**龄期**筛选条件，请以天为单位指定对象的龄期范围。选择**指定最小对象龄期**，然后输入最小对象龄期。对于**指定最大对象龄期**，请输入最大对象龄期。
   + 对于**大小**筛选条件，请指定对象大小范围和衡量单位。选择**指定最小对象大小**，然后输入最小对象大小。对于**指定最大对象大小**，请输入最大对象大小。

1. 选择**保存更改**。将显示 Storage Lens 组的详细信息页面。

1. （可选）如果要添加新的 AWS 资源标签，请滚动到 **AWS 资源标签**部分，然后选择**添加标签**。此时将显示**添加标签**页面。

   添加新的键值对，然后选择**保存更改**。将显示 Storage Lens 组的详细信息页面。

1. （可选）如果要移除现有 AWS 资源标签，请滚动到 **AWS 资源标签**部分，然后选择资源标签。然后选择 **Delete**(删除)。将出现**删除 AWS 标签**对话框。

   再次选择**删除**可永久删除 AWS 资源标签。
**注意**  
永久删除 AWS 资源标签后，该标签将无法还原。

## 使用 AWS CLI


以下 AWS CLI 示例命令将返回名为 `marketing-department` 的 Storage Lens 组的配置详细信息。要使用此示例命令，请将 `user input placeholders` 替换为您自己的信息。



```
aws s3control get-storage-lens-group --account-id 111122223333 \ 
--region us-east-1 --name marketing-department
```

以下 AWS CLI 示例将更新 Storage Lens 组。要使用此示例命令，请将 `user input placeholders` 替换为您自己的信息。

```
aws s3control update-storage-lens-group --account-id 111122223333 \ 
--region us-east-1 --storage-lens-group=file://./marketing-department.json
```

有关示例 JSON 配置，请参阅 [Storage Lens 组配置](storage-lens-groups.md#storage-lens-groups-configuration)。

## 使用适用于 Java 的 AWS SDK


以下 适用于 Java 的 AWS SDK 示例将返回账户 `111122223333` 中 `Marketing-Department` Storage Lens 组的配置详细信息。要使用此示例，请将 `user input placeholders` 替换为您自己的信息。

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.GetStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.GetStorageLensGroupResponse;

public class GetStorageLensGroup {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";

        try {
            GetStorageLensGroupRequest getRequest = GetStorageLensGroupRequest.builder()
                    .name(storageLensGroupName)
                    .accountId(accountId).build();
            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            GetStorageLensGroupResponse response = s3ControlClient.getStorageLensGroup(getRequest);
            System.out.println(response);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and 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();
        }
    }
}
```

以下示例将更新账户 `111122223333` 中名为 `Marketing-Department` 的 Storage Lens 组。此示例将更新控制面板范围，使其包含与以下任何后缀匹配的对象：`.png`、`.gif`、`.jpg` 或 `.jpeg`。要使用此示例，请将 `user input placeholders` 替换为您自己的信息。

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.StorageLensGroup;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupFilter;
import software.amazon.awssdk.services.s3control.model.UpdateStorageLensGroupRequest;

public class UpdateStorageLensGroup {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";

        try {
            // Create updated filter.
            StorageLensGroupFilter suffixFilter = StorageLensGroupFilter.builder()
                    .matchAnySuffix(".png", ".gif", ".jpg", ".jpeg")
                    .build();

            StorageLensGroup storageLensGroup = StorageLensGroup.builder()
                    .name(storageLensGroupName)
                    .filter(suffixFilter)
                    .build();

            UpdateStorageLensGroupRequest updateStorageLensGroupRequest = UpdateStorageLensGroupRequest.builder()
                    .name(storageLensGroupName)
                    .storageLensGroup(storageLensGroup)
                    .accountId(accountId)
                    .build();

            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.updateStorageLensGroup(updateStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and 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();
        }
    }
}
```

有关示例 JSON 配置，请参阅 [Storage Lens 组配置](storage-lens-groups.md#storage-lens-groups-configuration)。

# 使用 Storage Lens 组管理 AWS 资源标签
使用 Storage Lens 组管理 AWS 资源标签

每个 Amazon S3 Storage Lens 存储统计管理工具组都视为一个 AWS 资源，具有自己的 Amazon 资源名称 (ARN)。因此，在配置 Storage Lens 组时，可以选择向该组添加 AWS 资源标签。最多可以为每个 Storage Lens 组添加 50 个标签。要创建带标签的 Storage Lens 组，您必须拥有 `s3:CreateStorageLensGroup` 和 `s3:TagResource` 权限。

您可以使用 AWS 资源标签根据部门、业务线或项目对资源进行分类。如果您有许多相同类型的资源，这样做会非常有用。通过应用标签，您可以根据分配给特定 Storage Lens 组的标签快速识别该组。您还可以使用标签对成本进行跟踪和分配。

此外，当您向 Storage Lens 组添加 AWS 资源标签时，将激活[基于属性的访问权限控制 (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)。ABAC 是一种基于属性（在本文中，也就是标签）定义权限的授权策略。您还可以在 IAM policy 中使用指定资源标签的条件，从而[控制对 AWS 资源的访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources)。

您可以修改标签的键和值，还可以随时删除资源的标签。此外，请注意以下限制：
+ 标签键和标签值区分大小写。
+ 如果您添加的标签的值与该实例上现有标签的值相同，新的值就会覆盖旧值。
+ 如果删除资源，资源的所有标签也会被删除。
+ 不要在 AWS 资源标签中包含隐私或敏感数据。
+ 不支持系统标签（标签键以 `aws:` 开头）。
+ 每个标签键的长度不能超过 128 个字符。每个标签值的长度不能超过 256 个字符。

以下示例演示如何将 AWS 资源标签与 Storage Lens 组配合使用。

**Topics**
+ [

# 向 Storage Lens 组添加 AWS 资源标签
](storage-lens-groups-add-tags.md)
+ [

# 更新 Storage Lens 组标签值
](storage-lens-groups-update-tags.md)
+ [

# 从 Storage Lens 组删除 AWS 资源标签
](storage-lens-groups-delete-tags.md)
+ [

# 列出 Storage Lens 组标签
](storage-lens-groups-list-tags.md)

# 向 Storage Lens 组添加 AWS 资源标签
向 Storage Lens 组添加 AWS 资源标签

以下示例演示如何将 AWS 资源标签添加到 Amazon S3 Storage Lens 存储统计管理工具组。您可以使用 Amazon S3 控制台、AWS Command Line Interface (AWS CLI) 和 适用于 Java 的 AWS SDK 添加资源标签。

## 使用 S3 控制台


**向 Storage Lens 组添加 AWS 资源标签**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择 **Storage Lens 组**。

1. 在 **Storage Lens 组**下，选择要更新的 Storage Lens 组。

1. 在 **AWS 资源标签**下，选择**添加标签**。

1. 在**添加标签**页面上，添加新的键值对。
**注意**  
如果添加的新标签与现有标签具有相同的键，则将覆盖之前的标签值。

1. （可选）要添加多个新标签，请再次选择**添加标签**以继续添加新条目。您最多可以将 50 个 AWS 资源标签添加到 Storage Lens 组。

1. （可选）如果要移除新添加的条目，请选择要移除的标签旁的**移除**。

1. 选择**保存更改**。

## 使用 AWS CLI


以下示例 AWS CLI 命令将向名为 `marketing-department` 的现有 Storage Lens 组添加两个资源标签。要使用此示例命令，请将 `user input placeholders` 替换为您自己的信息。

```
aws s3control tag-resource --account-id 111122223333 \
--resource-arn arn:aws:s3:us-east-1:111122223333:storage-lens-group/marketing-department \
--region us-east-1 --tags Key=k1,Value=v1 Key=k2,Value=v2
```

## 使用适用于 Java 的 AWS SDK


以下 适用于 Java 的 AWS SDK 示例将向现有 Storage Lens 组添加两个 AWS 资源标签。要使用此示例，请将 `user input placeholders` 替换为您自己的信息。

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.Tag;
import software.amazon.awssdk.services.s3control.model.TagResourceRequest;

public class TagResource {
    public static void main(String[] args) {
        String resourceARN = "Resource_ARN";
        String accountId = "111122223333";

        try {
            Tag resourceTag1 = Tag.builder()
                .key("resource-tag-key-1")
                .value("resource-tag-value-1")
                .build();
            Tag resourceTag2 = Tag.builder()
                    .key("resource-tag-key-2")
                    .value("resource-tag-value-2")
                    .build();
            TagResourceRequest tagResourceRequest = TagResourceRequest.builder()
                    .resourceArn(resourceARN)
                    .tags(resourceTag1, resourceTag2)
                    .accountId(accountId)
                    .build();
            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.tagResource(tagResourceRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and 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();
        }
    }
}
```

# 更新 Storage Lens 组标签值
更新 Storage Lens 组标签值

以下示例演示如何使用 Amazon S3 控制台、AWS Command Line Interface (AWS CLI) 和 适用于 Java 的 AWS SDK 更新 Storage Lens 组标签值。

## 使用 S3 控制台


**更新 Storage Lens 组的 AWS 资源标签**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择 **Storage Lens 组**。

1. 在 **Storage Lens 组**下，选择要更新的 Storage Lens 组。

1. 在 **AWS 资源标签**下，选择要更新的标签。

1. 使用与要更新的键值对相同的键添加新标签值。选择对勾图标以更新标签值。
**注意**  
如果添加的新标签与现有标签具有相同的键，则将覆盖之前的标签值。

1. （可选）如果要添加新标签，请选择**添加标签**以添加新条目。此时将显示**添加标签**页面。

   最多可以为 Storage Lens 组添加 50 个 AWS 资源标签。添加完新标签后，选择**保存更改**。

1. （可选）如果要移除新添加的条目，请选择要移除的标签旁的**移除**。完成移除标签后，选择**保存更改**。

## 使用 AWS CLI


以下示例 AWS CLI 命令将更新名为 `marketing-department` 的 Storage Lens 组的两个标签值。要使用此示例命令，请将 `user input placeholders` 替换为您自己的信息。

```
aws s3control tag-resource --account-id 111122223333 \
--resource-arn arn:aws:s3:us-east-1:111122223333:storage-lens-group/marketing-department \
--region us-east-1 --tags Key=k1,Value=v3 Key=k2,Value=v4
```

## 使用适用于 Java 的 AWS SDK


以下 适用于 Java 的 AWS SDK 示例将更新 Storage Lens 组的两个标签值。要使用此示例，请将 `user input placeholders` 替换为您自己的信息。

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.Tag;
import software.amazon.awssdk.services.s3control.model.TagResourceRequest;

public class UpdateTagsForResource {
    public static void main(String[] args) {
        String resourceARN = "Resource_ARN";
        String accountId = "111122223333";

        try {
            Tag updatedResourceTag1 = Tag.builder()
                .key("resource-tag-key-1")
                .value("resource-tag-updated-value-1")
                .build();
            Tag updatedResourceTag2 = Tag.builder()
                    .key("resource-tag-key-2")
                    .value("resource-tag-updated-value-2")
                    .build();
            TagResourceRequest tagResourceRequest = TagResourceRequest.builder()
                    .resourceArn(resourceARN)
                    .tags(updatedResourceTag1, updatedResourceTag2)
                    .accountId(accountId)
                    .build();
            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.tagResource(tagResourceRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and 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();
        }
    }
}
```

# 从 Storage Lens 组删除 AWS 资源标签
从 Storage Lens 组删除 AWS 资源标签

以下示例演示如何从 Storage Lens 组删除 AWS 资源标签。您可以使用 Amazon S3 控制台、AWS Command Line Interface (AWS CLI) 和 适用于 Java 的 AWS SDK 删除标签。

## 使用 S3 控制台


**从 Storage Lens 组删除 AWS 资源标签**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择 **Storage Lens 组**。

1. 在 **Storage Lens 组**下，选择要更新的 Storage Lens 组。

1. 在 **AWS 资源标签**下，选择要删除的键值对。

1. 选择**删除**。将出现**删除 AWS 资源标签**对话框。
**注意**  
如果使用标签控制访问，则继续执行此操作可能会影响相关资源。永久删除标签后，该标签将无法还原。

1. 选择**删除**，永久性删除该键值对。

## 使用 AWS CLI


以下 AWS CLI 命令将从现有 Storage Lens 组中删除两个 AWS 资源标签：要使用此示例命令，请将 `user input placeholders` 替换为您自己的信息。

```
aws s3control untag-resource --account-id 111122223333 \
--resource-arn arn:aws:s3:us-east-1:111122223333:storage-lens-group/Marketing-Department \
--region us-east-1 --tag-keys k1 k2
```

## 使用适用于 Java 的 AWS SDK


以下 适用于 Java 的 AWS SDK 示例将从账户 `111122223333` 中具有您所指定的 Amazon 资源名称 (ARN) 的 Storage Lens 组中，删除两个 AWS 资源标签。要使用此示例，请将 `user input placeholders` 替换为您自己的信息。

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.UntagResourceRequest;

public class UntagResource {
    public static void main(String[] args) {
        String resourceARN = "Resource_ARN";
        String accountId = "111122223333";

        try {
            String tagKey1 = "resource-tag-key-1";
            String tagKey2 = "resource-tag-key-2";
            UntagResourceRequest untagResourceRequest = UntagResourceRequest.builder()
                    .resourceArn(resourceARN)
                    .tagKeys(tagKey1, tagKey2)
                    .accountId(accountId)
                    .build();
            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.untagResource(untagResourceRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and 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();
        }
    }
}
```

# 列出 Storage Lens 组标签
列出 Storage Lens 组标签

以下示例演示如何列出与 Storage Lens 组关联的 AWS 资源标签。您可以使用 Amazon S3 控制台、AWS Command Line Interface (AWS CLI) 和 适用于 Java 的 AWS SDK 列出标签。

## 使用 S3 控制台


**查看 Storage Lens 组的标签和标签值列表**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择 **Storage Lens 组**。

1. 在 **Storage Lens 组**下，选择您感兴趣的 Storage Lens 组。

1. 向下滚动到 **AWS 资源标签**部分。所有添加到您的 Storage Lens 组的用户定义的 AWS 资源标签及其标签值都将列出。

## 使用 AWS CLI


以下 AWS CLI 示例命令将列出名为 `marketing-department` 的 Storage Lens 组的所有 Storage Lens 组标签值。要使用此示例命令，请将 `user input placeholders` 替换为您自己的信息。

```
aws s3control list-tags-for-resource --account-id 111122223333 \
--resource-arn arn:aws:s3:us-east-1:111122223333:storage-lens-group/marketing-department \
--region us-east-1
```

## 使用适用于 Java 的 AWS SDK


以下 适用于 Java 的 AWS SDK 示例将为您指定的 Storage Lens 组 Amazon 资源名称 (ARN) 列出 Storage Lens 组标签值。要使用此示例，请将 `user input placeholders` 替换为您自己的信息。

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.ListTagsForResourceRequest;
import software.amazon.awssdk.services.s3control.model.ListTagsForResourceResponse;

public class ListTagsForResource {
    public static void main(String[] args) {
        String resourceARN = "Resource_ARN";
        String accountId = "111122223333";

        try {
            ListTagsForResourceRequest listTagsForResourceRequest = ListTagsForResourceRequest.builder()
                    .resourceArn(resourceARN)
                    .accountId(accountId)
                    .build();
            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            ListTagsForResourceResponse response = s3ControlClient.listTagsForResource(listTagsForResourceRequest);
            System.out.println(response);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and 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();
        }
    }
}
```

# 列出所有 Storage Lens 组
列出所有 Storage Lens 组

以下示例演示如何列出 AWS 账户和主区域中的所有 Amazon S3 Storage Lens 存储统计管理工具组。这些示例显示了如何使用 Amazon S3 控制台、AWS Command Line Interface (AWS CLI) 和 适用于 Java 的 AWS SDK 列出所有 Storage Lens 组。

## 使用 S3 控制台


**列出账户和主区域中的所有 Storage Lens 组**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择 **Storage Lens 组**。

1. 在 **Storage Lens 组**下，将显示您账户中的 Storage Lens 组列表。

## 使用 AWS CLI


以下 AWS CLI 示例将列出您账户的所有 Storage Lens 组。要使用此示例命令，请将 `user input placeholders` 替换为您自己的信息。

```
aws s3control list-storage-lens-groups --account-id 111122223333 \
--region us-east-1
```

## 使用适用于 Java 的 AWS SDK


以下 适用于 Java 的 AWS SDK 示例将列出账户 `111122223333` 的 Storage Lens 组。要使用此示例，请将 `user input placeholders` 替换为您自己的信息。

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.ListStorageLensGroupsRequest;
import software.amazon.awssdk.services.s3control.model.ListStorageLensGroupsResponse;

public class ListStorageLensGroups {
    public static void main(String[] args) {
        String accountId = "111122223333";

        try {
            ListStorageLensGroupsRequest listStorageLensGroupsRequest = ListStorageLensGroupsRequest.builder()
                    .accountId(accountId)
                    .build();
            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            ListStorageLensGroupsResponse response = s3ControlClient.listStorageLensGroups(listStorageLensGroupsRequest);
            System.out.println(response);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and 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();
        }
    }
}
```

# 查看 Storage Lens 组详细信息
查看 Storage Lens 组详细信息

以下示例演示如何查看 Amazon S3 Storage Lens 存储统计管理工具组配置详细信息。您可以使用 Amazon S3 控制台、AWS Command Line Interface (AWS CLI) 和 适用于 Java 的 AWS SDK 查看这些详细信息。

## 使用 S3 控制台




**查看 Storage Lens 组配置详细信息**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择 **Storage Lens 组**。

1. 在 **Storage Lens 组**下，选择您感兴趣的 Storage Lens 组旁的选项按钮。

1. 请选择**查看详细信息**。现在，您可以查看 Storage Lens 组的详细信息。

## 使用 AWS CLI


以下 AWS CLI 示例将返回 Storage Lens 组的配置详细信息。要使用此示例命令，请将 `user input placeholders` 替换为您自己的信息。

```
aws s3control get-storage-lens-group --account-id 111122223333 \ 
--region us-east-1 --name marketing-department
```

## 使用适用于 Java 的 AWS SDK


以下 适用于 Java 的 AWS SDK 示例将返回账户 `111122223333` 中名为 `Marketing-Department` 的 Storage Lens 组的配置详细信息。要使用此示例，请将 `user input placeholders` 替换为您自己的信息。

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.GetStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.GetStorageLensGroupResponse;

public class GetStorageLensGroup {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";

        try {
            GetStorageLensGroupRequest getRequest = GetStorageLensGroupRequest.builder()
                    .name(storageLensGroupName)
                    .accountId(accountId).build();
            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            GetStorageLensGroupResponse response = s3ControlClient.getStorageLensGroup(getRequest);
            System.out.println(response);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and 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();
        }
    }
}
```

# 删除 Storage Lens 组
删除 Storage Lens 组

以下示例演示如何使用 Amazon S3 控制台、AWS Command Line Interface (AWS CLI) 和 适用于 Java 的 AWS SDK 删除 Amazon S3 Storage Lens 存储统计管理工具组。

## 使用 S3 控制台


**删除 Storage Lens 组**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在左侧导航窗格中，选择 **Storage Lens 组**。

1. 在 **Storage Lens 组**下，选择要删除的 Storage Lens 组旁的选项按钮。

1. 选择**删除**。将显示**删除 Storage Lens 组**对话框。

1. 再次选择**删除**即可永久删除 Storage Lens 组。
**注意**  
Storage Lens 组在删除后无法还原。

## 使用 AWS CLI


以下 AWS CLI 示例将删除名为 `marketing-department` 的 Storage Lens 组。要使用此示例命令，请将 `user input placeholders` 替换为您自己的信息。

```
aws s3control delete-storage-lens-group --account-id 111122223333 \ 
--region us-east-1 --name marketing-department
```

## 使用适用于 Java 的 AWS SDK


以下 适用于 Java 的 AWS SDK 示例将删除账户 `111122223333` 中名为 `Marketing-Department` 的 Storage Lens 组。要使用此示例，请将 `user input placeholders` 替换为您自己的信息。

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.DeleteStorageLensGroupRequest;

public class DeleteStorageLensGroup {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";

        try {
            DeleteStorageLensGroupRequest deleteStorageLensGroupRequest = DeleteStorageLensGroupRequest.builder()
                    .name(storageLensGroupName)
                    .accountId(accountId).build();
            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.deleteStorageLensGroup(deleteStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and 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();
        }
    }
}
```