

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Paginação
<a name="pagination"></a>

Muitas AWS operações retornam resultados paginados quando a carga é muito grande para ser retornada em uma única resposta. AWS SDK para Kotlin Inclui [extensões](https://kotlinlang.org/docs/extensions.html) para a interface do cliente de serviço que paginam automaticamente os resultados para você. Você precisa somente escrever o código que processará os resultados.

A paginação é exposta como um [fluxo](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/) <T>para que você possa aproveitar as transformações idiomáticas do Kotlin para coleções assíncronas (como, e). `map` `filter` `take` As exceções são transparentes, o que faz com que o tratamento de erros pareça uma chamada normal de API, e o cancelamento segue o cancelamento cooperativo geral de corotinas. Para obter mais informações, consulte [fluxos](https://kotlinlang.org/docs/flow.html) e [exceções de fluxo](https://kotlinlang.org/docs/flow.html#flow-exceptions) no guia oficial.

**nota**  
Os exemplos a seguir usam o Amazon S3. No entanto, os conceitos são os mesmos para qualquer serviço que tenha um ou mais APIs paginados. Todas as extensões de paginação são definidas no `aws.sdk.kotlin.services.<service>.paginators` pacote (como`aws.sdk.kotlin.services.dynamodb.paginators`). 

O exemplo de código a seguir mostra como você pode processar a resposta paginada da chamada da função [ListObjectsV2Paginated](https://docs.aws.amazon.com/sdk-for-kotlin/api/latest/s3/aws.sdk.kotlin.services.s3.paginators/list-objects-v2-paginated.html). 

**Importações**

```
import aws.sdk.kotlin.services.s3.S3Client
import aws.sdk.kotlin.services.s3.paginators.listObjectsV2Paginated
import kotlinx.coroutines.flow.*
```

**Código**

```
val s3 = S3Client.fromEnvironment()
val req = ListObjectsV2Request {
    bucket = "amzn-s3-demo-bucket"
    maxKeys = 1
}

s3.listObjectsV2Paginated(req)  // Flow<ListObjectsV2Response>
    .transform { it.contents?.forEach { obj -> emit(obj) } }
    .collect { obj ->
        println("key: ${obj.key}; size: ${obj.size}")
    }
```