# ListObjectsAsync

## Обзор
ListObjectsAsync - это асинхронный инструмент для перечисления объектов в AWS S3 бакете.

Этот инструмент использует библиотеку aiobotocore для обеспечения эффективного, неблокирующего доступа к вашим
данным S3, поддерживая рекурсивное перемещение по директориям с контролем глубины.

## Возможности

- Асинхронные операции: использует asyncio для неблокирующих операций ввода-вывода.
- Постраничные результаты: обрабатывает пагинацию S3 внутренне, чтобы обеспечить эффективное перемещение по длинным спискам объектов S3.
- Рекурсивный обход: поддерживает рекурсивное перечисление объектов с контролем глубины.
- Повторы: использует стратегии повторных попыток AWS.

## Использование

```python
--8<-- "list.py"
```
Вы можете контролировать глубину рекурсии, указывая параметр max_depth, по умолчанию глубина не ограничена.

## Установка

## Установка pipx
[`pipx`](https://pypa.github.io/pipx/) создает изолированные среды, чтобы избежать конфликтов с 
существующими системными пакетами.

=== "MacOS"
    В терминале выполните:
    ```bash
    brew install pipx
    pipx ensurepath
    ```

=== "Linux"
    Сначала убедитесь, что Python установлен.

    Введите в терминал:

    ```bash
    python3 -m pip install --user pipx
    python3 -m pipx ensurepath
    ```

=== "Windows"
    Сначала установите Python, если он еще не установлен.

    В командной строке введите (если Python был установлен из Microsoft Store, используйте `python3` вместо `python`):
    
    ```bash
    python -m pip install --user pipx
    ```

## Установка `aws-s3`:
В терминале (командной строке) выполните:

```bash
pipx install aws-s3
```

### Детали реализации

[ListObjectsAsync][aws_s3]