View a markdown version of this page

分页 - Amazon 软件开发工具包和工具
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

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

分页

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

分页的工作原理

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

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

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

使用分页器

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

各个 SDK 中分页器的关键特征:

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

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

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

  • 一些 SDK 还提供了限制检索到的页面或项目总数的机制。

有关以您的语言提供的分页器语法和使用模式,请参阅您的特定 SDK 的开发人员指南。

支持者 Amazon SDK 和工具

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

SDK 支持 备注或更多信息
Amazon 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 的 SDK 是 使用paginate<OperationName>函数。
适用于 JavaScript 2.x 的 SDK 否 需要手动处理代币。
适用于 Kotlin 的 SDK 是 使用<operationName>Paginated扩展函数。
.NET 4.x 软件开发工具包 是 使用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 工具 是