本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
分页
一些 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 异常。
分页数据类
适用于 Ruby 的 AWS SDK 中的分页数据由 Aws::PageableResponse 类处理,该类包含在 Seahorse::Client::Response 中以提供对分页数据的访问权限。