本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
分页
许多 AWS 服务操作返回的结果可能多于单个响应所能返回的结果。发生这种情况时,响应中会包含一个分页标记,表示有更多结果可用。要检索下一页的结果,请在后续请求中包含该令牌。重复此过程,直到没有返回任何令牌,表示您已收到所有结果。
分页的工作原理
当您调用分页的 API 操作时,该服务会返回每个响应的固定最大项目数。如果项目总数超过此最大值,则该服务会在响应中包含分页令牌。此令牌的具体名称因服务而异,常用名称包括NextToken、MarkerContinuationToken、和。ExclusiveStartKey要请求下一页,请在下次调用的相应请求参数中传递此令牌值。
大多数分页操作还支持控制每页返回的最大项目数的参数。此参数的常用名称包括MaxResultsMaxItems、MaxKeys、MaxRecords、和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 的工具 | 是 |