将响应数据分页 - 适用于 Ruby 的 AWS 开发工具包
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

将响应数据分页

一些 AWS 调用提供了分页响应以限制随每个响应返回的数据量。一页数据表示多达 1,000 个项目。

分页响应可枚举

处理分页响应数据的最简单方法是使用响应对象中的内置枚举器,如以下示例所示。

s3 = Aws::S3::Client.new s3.list_objects(bucket:'aws-sdk').each do |response| puts response.contents.map(&:key) end

这为所进行的每个 API 调用生成一个响应对象,并枚举指定存储桶中的对象。开发工具包检索其他数据页面以完成请求。

手动处理分页响应

要自己处理分页,请使用响应的 next_page? 方法来验证是否有其他要检索的更多页面,或使用 last_page? 方法来验证是否没有其他要检索的页面。

如果有其他页面,请使用 next_page (请注意没有 ?) 方法来检索下一页结果,如以下示例所示。

s3 = Aws::S3::Client.new # Get the first page of data response = s3.list_objects(bucket:'aws-sdk') # Get additional pages while response.next_page? do response = response.next_page # Use the response data here... end
注意

如果您调用 next_page 方法并且没有其他要检索的页面,则开发工具包会引发 Aws::PageableResponse::LastPageError 异常。

分页数据类

AWS SDK for Ruby中的分页数据由 Aws::PageableResponse 类处理,该类包括在 Seahorse::Client::Response 中以提供对分页数据的访问权限。