

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Pagination
<a name="pagination"></a>

De nombreuses AWS opérations renvoient des résultats paginés lorsque la charge utile est trop importante pour être renvoyée en une seule réponse. AWS SDK pour Kotlin Il inclut des [extensions](https://kotlinlang.org/docs/extensions.html) de l'interface client du service qui paginent automatiquement les résultats pour vous. Il suffit d'écrire le code qui traite les résultats.

La pagination est exposée sous forme de [flux](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/) <T>afin que vous puissiez tirer parti des transformations idiomatiques de Kotlin pour les collections asynchrones (telles que, et). `map` `filter` `take` Les exceptions sont transparentes, ce qui donne l'impression que la gestion des erreurs s'apparente à un appel d'API normal, et l'annulation s'inscrit dans le cadre de l'annulation coopérative générale des coroutines. Pour plus d'informations, consultez [les flux](https://kotlinlang.org/docs/flow.html) [et les exceptions](https://kotlinlang.org/docs/flow.html#flow-exceptions) de flux dans le guide officiel.

**Note**  
Les exemples suivants utilisent Amazon S3. Toutefois, les concepts sont les mêmes pour tout service comportant une ou plusieurs paginées APIs. Toutes les extensions de pagination sont définies dans le `aws.sdk.kotlin.services.<service>.paginators` package (par exemple`aws.sdk.kotlin.services.dynamodb.paginators`). 

L'exemple de code suivant montre comment traiter la réponse paginée à partir de l'appel de fonction [ListObjectSv2Paginated](https://docs.aws.amazon.com/sdk-for-kotlin/api/latest/s3/aws.sdk.kotlin.services.s3.paginators/list-objects-v2-paginated.html). 

**Importations**

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

**Code**

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