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

创建 Storage Lens 组

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

创建 Storage Lens 组
  1. 登录到Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

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

  3. 在左侧导航窗格中,选择 Storage Lens 组

  4. 选择创建 Storage Lens 组

  5. 常规下,查看您的主区域,然后输入 Storage Lens 组名称

  6. 范围下,选择要应用于 Storage Lens 组的筛选条件。要应用多个筛选条件,请选择您的筛选条件,然后选择 ANDOR 逻辑运算符。

    • 对于前缀筛选条件,请选择前缀,然后输入前缀字符串。要添加多个前缀,请选择添加前缀。要移除前缀,请选择要移除的前缀旁的移除

    • 对于对象标签筛选条件,请选择对象标签,然后输入对象的键值对。然后选择添加标签。要移除标签,请选择要移除的标签旁的移除

    • 对于后缀筛选条件,请选择后缀,然后输入后缀字符串。要添加多个后缀,请选择添加后缀。要移除后缀,请选择要移除的后缀旁的移除

    • 对于龄期筛选条件,请以天为单位指定对象的龄期范围。选择指定最小对象龄期,然后输入最小对象龄期。然后,选择指定最大对象龄期并输入最大对象龄期。

    • 对于大小筛选条件,请指定对象大小范围和衡量单位。选择指定最小对象大小,然后输入最小对象大小。选择指定最大对象大小,然后输入最大对象大小。

  7. (可选)对于 Amazon 资源标签,请添加键值对,然后选择添加标签

  8. 选择创建 Storage Lens 组

以下示例 Amazon 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

以下示例 Amazon CLI 命令将创建一个具有两个 Amazon 资源标签的 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 组配置

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

例 – 创建包含单个筛选条件的 Storage Lens 组

以下示例将创建一个名为 Marketing-Department 的 Storage Lens 组。该组有一个对象龄期筛选条件,指定了 3090 天的龄期范围。要使用此示例,请将 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(); } } }
例 – 使用 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(); } } }
例 – 使用 OR 运算符创建包含多个筛选条件的 Storage Lens 组

以下示例将创建一个名为 Marketing-Department 的 Storage Lens 组。该组使用 OR 运算符来应用前缀筛选条件(prefix-1prefix-2prefix3/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(); } } }
例 – 使用单个筛选条件和两个 Amazon 资源标签创建 Storage Lens 组

以下示例将创建一个名为 Marketing-Department 的 Storage Lens 组,该组具有后缀筛选条件。此示例还向 Storage Lens 组添加了两个 Amazon 资源标签。要使用此示例,请将 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 Amazon 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 组配置