

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Paginación
<a name="pagination"></a>

Muchas AWS operaciones devuelven resultados paginados cuando la carga útil es demasiado grande para devolverlos en una sola respuesta. AWS SDK para Kotlin Incluye [extensiones de](https://kotlinlang.org/docs/extensions.html) la interfaz del cliente de servicio que paginan automáticamente los resultados por usted. Solo tiene que escribir el código que procesa los resultados.

La paginación se presenta como un [flujo](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/) <T>para que puedas aprovechar las transformaciones idiomáticas de Kotlin para colecciones asíncronas (como, y). `map` `filter` `take` Las excepciones son transparentes, lo que hace que la gestión de errores parezca una llamada normal a la API, y la cancelación se basa en la cancelación cooperativa general de las corrutinas. Para obtener más información, consulta [los flujos](https://kotlinlang.org/docs/flow.html) y las [excepciones de flujo](https://kotlinlang.org/docs/flow.html#flow-exceptions) en la guía oficial.

**nota**  
Los siguientes ejemplos utilizan Amazon S3. Sin embargo, los conceptos son los mismos para cualquier servicio que tenga uno o más paginados APIs. Todas las extensiones de paginación se definen en el `aws.sdk.kotlin.services.<service>.paginators` paquete (por ejemplo,). `aws.sdk.kotlin.services.dynamodb.paginators` 

El siguiente ejemplo de código muestra cómo se puede procesar la respuesta paginada de la llamada a la función [ListObjectsV2Paginated](https://docs.aws.amazon.com/sdk-for-kotlin/api/latest/s3/aws.sdk.kotlin.services.s3.paginators/list-objects-v2-paginated.html). 

**Importaciones**

```
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}")
    }
```