

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à.

# Utilizzo dei risultati impaginati nell' AWS SDK per Rust
<a name="paginating"></a>

Molte AWS operazioni restituiscono risultati troncati quando il payload è troppo grande per essere restituito in un'unica risposta. Il servizio restituisce invece una parte dei dati e un token per recuperare il set successivo di elementi. Questo modello è noto come impaginazione. 

 AWS SDK per Rust Include metodi di estensione `into_paginator` sugli Operation Builder che possono essere utilizzati per impaginare automaticamente i risultati. Devi solo scrivere il codice che elabora i risultati. Tutti i generatori di operazioni di impaginazione dispongono di un `into_paginator()` metodo che impone a di [https://docs.rs/aws-smithy-async/latest/aws_smithy_async/future/pagination_stream/struct.PaginationStream.html](https://docs.rs/aws-smithy-async/latest/aws_smithy_async/future/pagination_stream/struct.PaginationStream.html)impaginare i risultati.
+ In Amazon S3, un esempio di ciò è. [https://docs.rs/aws-sdk-s3/latest/aws_sdk_s3/operation/list_objects_v2/builders/struct.ListObjectsV2FluentBuilder.html#method.into_paginator](https://docs.rs/aws-sdk-s3/latest/aws_sdk_s3/operation/list_objects_v2/builders/struct.ListObjectsV2FluentBuilder.html#method.into_paginator) 

I seguenti esempi utilizzano Amazon Simple Storage Service. Tuttavia, i concetti sono gli stessi per qualsiasi servizio che ha una o più pagine APIs. 

 Il seguente esempio di codice mostra l'esempio più semplice che utilizza il [https://docs.rs/aws-smithy-async/latest/aws_smithy_async/future/pagination_stream/struct.PaginationStream.html#method.try_collect](https://docs.rs/aws-smithy-async/latest/aws_smithy_async/future/pagination_stream/struct.PaginationStream.html#method.try_collect)metodo per raccogliere tutti i risultati impaginati in un file: `Vec` 

```
let config = aws_config::defaults(BehaviorVersion::latest())
    .load()
    .await;

let s3 = aws_sdk_s3::Client::new(&config);

let all_objects = s3.list_objects_v2()
    .bucket("my-bucket")
    .into_paginator()
    .send()
    .try_collect()
    .await?
    .into_iter()
    .flat_map(|o| o.contents.unwrap_or_default())
    .collect::<Vec<_>>();
```

A volte, si desidera avere un maggiore controllo sul paging e non archiviare tutto in memoria contemporaneamente. L'esempio seguente esegue iterazioni sugli oggetti in un bucket Amazon S3 finché non ce ne sono più.

```
let config = aws_config::defaults(BehaviorVersion::latest())
    .load()
    .await;

let s3 = aws_sdk_s3::Client::new(&config);

let mut paginator = s3.list_objects_v2()
    .bucket("my-bucket")
    .into_paginator()
    // customize the page size (max results per/response)
    .page_size(10)
    .send();

println!("Objects in bucket:");

while let Some(result) = paginator.next().await {
    let resp = result?;
    for obj in resp.contents() {
        println!("\t{:?}", obj);
    }
}
```