View a markdown version of this page

分页 - AWS 软件开发工具包和工具

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

分页

许多 AWS 服务操作返回的结果可能多于单个响应所能返回的结果。发生这种情况时,响应中会包含一个分页标记,表示有更多结果可用。要检索下一页的结果,请在后续请求中包含该令牌。重复此过程,直到没有返回任何令牌,表示您已收到所有结果。

分页的工作原理

当您调用分页的 API 操作时,该服务会返回每个响应的固定最大项目数。如果项目总数超过此最大值,则该服务会在响应中包含分页令牌。此令牌的具体名称因服务而异,常用名称包括NextTokenMarkerContinuationToken、和。ExclusiveStartKey要请求下一页,请在下次调用的相应请求参数中传递此令牌值。

大多数分页操作还支持控制每页返回的最大项目数的参数。此参数的常用名称包括MaxResultsMaxItemsMaxKeysMaxRecords、和Limit

只有当您在同一操作的先前响应中收到分页令牌时,分页令牌才有效。如果响应中不包含标记,则没有其他结果可供检索。

使用分页器

所有 AWS SDK 都提供分页器抽象,而不是手动跟踪分页标记。分页器会自动处理令牌管理,连续调用 API 并生成结果,直到所有页面都被检索完为止。使用分页器可以简化代码并降低出现错误的风险,例如忘记传递令牌或错误使用令牌。

各个 SDK 中分页器的主要特征:

  • 分页器接受与底层 API 操作相同的输入参数。

  • 分页器会自动检测何时有更多页面可用并进行检索。

  • 当响应中未返回任何分页令牌时,分页器会停止发出请求。

  • 一些软件开发工具包还提供了限制检索到的页面或项目总数的机制。

有关您的语言中可用的分页器语法和使用模式,请参阅您的特定 SDK 开发者指南。

Support by AWS SDK 和工具

以下 SDK 支持本主题中所述的功能和设置。所有部分例外情况均已注明。 适用于 Java 的 AWS SDK 和 AWS SDK for Kotlin 唯一支持任何 JVM 系统属性设置。

SDK 支持 备注或更多信息
AWS CLI v2 Built-in 所有命令的自动分页。用于--no-paginate禁用。
适用于 C++ 的 SDK 需要手动处理令牌。
适用于 Go V2 (1.x) 的 SDK 使用New<OperationName>Paginator类型。
适用于 Go 1.x(V1)的 SDK 使用<OperationName>Pages方法。
适用于 Java 2.x 的 SDK 在客户端上使用<operationName>Paginator方法。
适用于 Java 1.x 的 SDK
适用于 JavaScript 3.x 的软件开发工具包 使用paginate<OperationName>函数。
适用于 JavaScript 2.x 的 SDK 需要手动处理令牌。
适用于 Kotlin 的 SDK 使用<operationName>Paginated扩展函数。
适用于.NET 4.x 的 SDK 使用IPaginator接口。
适用于 .NET 3.x 的 SDK 使用IPaginator接口。
适用于 PHP 3.x 的 SDK 在客户端getPaginator上使用。
适用于 Python (Boto3) 的 SDK 在客户端get_paginator上使用。
适用于 Ruby 3.x 的 SDK 在支持分页的响应.each上使用。
适用于 Rust 的 SDK .into_paginator()根据要求使用生成器。
适用于 Swift 的 SDK 使用PaginatedSequence类型。
适用于 PowerShell V5 的工具 Built-in 自动分页。用于-NoAutoIteration禁用。
适用于 PowerShell V4 的工具