

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS SDK for Rust에서 페이지 매김된 결과 사용
<a name="paginating"></a>

많은 AWS 작업이 페이로드가 너무 커서 단일 응답을 반환할 수 없을 때 잘린 결과를 반환합니다. 대신 서비스는 데이터의 일부와 토큰을 반환하여 다음 항목 세트를 검색합니다. 이 패턴을 페이지 매김이라고 합니다.

AWS SDK for Rust에는 결과를 자동으로 페이지 매김하는 데 사용할 수 있는 작업 빌더의 `into_paginator` 확장 메서드가 포함되어 있습니다. 결과를 처리할 코드를 작성하기만 하면 됩니다. 모든 페이지 매김 작업 빌더에는 [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)을 노출하여 결과를 페이지 매김하는 `into_paginator()` 메서드가 있습니다.
+ Amazon S3에서 이에 대한 한 가지 예는 [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)입니다.

다음 예제에서는 Amazon Simple Storage Service를 사용합니다. 그러나 하나 이상 페이지 매김된 API가 있는 모든 서비스에서 개념은 동일합니다.

 다음 코드 예제는 [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) 메서드를 사용하여 페이지 매김된 모든 결과를 `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<_>>();
```

페이징을 더 잘 제어하고 모든 것을 한 번에 메모리로 가져오지 않아야 하는 경우가 있습니다. 다음 예제에서는 더 이상 객체가 없을 때까지 Amazon S3 버킷의 객체를 반복합니다.

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