

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

Molte AWS operazioni restituiscono risultati impaginati quando il payload è troppo grande per essere restituito in un'unica risposta. AWS SDK per Kotlin Include [estensioni](https://kotlinlang.org/docs/extensions.html) all'interfaccia client del servizio che impaginano automaticamente i risultati per te. Devi solo scrivere il codice che elabora i risultati.

La paginazione è esposta come [Flow](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/) <T>in modo da poter sfruttare le trasformazioni idiomatiche di Kotlin per le raccolte asincrone (come, e). `map` `filter` `take` Le eccezioni sono trasparenti, il che rende la gestione degli errori simile a una normale chiamata API, e la cancellazione aderisce alla cancellazione cooperativa generale delle coroutine. Per ulteriori informazioni, consulta i [flussi](https://kotlinlang.org/docs/flow.html) e le [eccezioni di flusso](https://kotlinlang.org/docs/flow.html#flow-exceptions) nella guida ufficiale.

**Nota**  
I seguenti esempi utilizzano Amazon S3. Tuttavia, i concetti sono gli stessi per qualsiasi servizio con una o più pagine APIs impaginate. Tutte le estensioni di impaginazione sono definite nel `aws.sdk.kotlin.services.<service>.paginators` pacchetto (ad esempio). `aws.sdk.kotlin.services.dynamodb.paginators` 

Il seguente esempio di codice mostra come elaborare la risposta impaginata dalla chiamata alla funzione [ListObjectsV2Paginated](https://docs.aws.amazon.com/sdk-for-kotlin/api/latest/s3/aws.sdk.kotlin.services.s3.paginators/list-objects-v2-paginated.html). 

**Importazioni**

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

**Codice**

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