

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

# 在适用于 Ruby 的 Amazon SDK 中使用分页结果
<a name="paging-responses"></a>

当有效载荷太大而无法在单个响应中返回时，许多 Amazon 操作都会返回截断的结果。相反，该服务会返回一部分数据和一个用于检索下一组项目的令牌。这种模式称为分页。

## 分页响应可枚举
<a name="aws-ruby-sdk-paged-response-enumerable"></a>

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

```
s3 = Aws::S3::Client.new

s3.list_objects(bucket:'aws-sdk').each do |response|
  puts response.contents.map(&:key)
end
```

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

## 手动处理分页响应
<a name="aws-ruby-sdk-handling-paged-response-handling"></a>

要自己处理分页，请使用响应的 `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](https://docs.amazonaws.cn/sdk-for-ruby/v3/api/Aws/PageableResponse/LastPageError.html) 异常。

## 分页数据类
<a name="aws-ruby-sdk-paged-data-classes"></a>

适用于 Ruby 的 Amazon SDK 中的分页数据由 [Aws:: 类处理，该PageableResponse类包含在 Seahorse::](https://docs.amazonaws.cn/sdk-for-ruby/v3/api/Aws/PageableResponse.html) [Client:: Response 中，用于提供对](https://docs.amazonaws.cn/sdk-for-ruby/v3/api/Seahorse/Client/Response.html)分页数据的访问权限。