Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

Python

boto3 — это официальный SDK от Amazon для работы с S3 на языке Python. С его помощью можно управлять объектами: загружать и скачивать файлы, получать списки объектов, работать с метаданными, выполнять мультипарт-загрузку и создавать подписанные URL.

Установка

Для установки boto3 используйте pip:

    

После установки библиотека доступна для использования в Python-коде.

Настройка доступа

При использовании boto3 реквизиты доступа можно задать несколькими способами:

Через файлы ~/.aws/config и ~/.aws/credentials

При использовании AWS CLI в домашней директории пользователя автоматически создается папка .aws с файлами, содержащими данные для подключения к S3. При необходимости эту папку и файлы можно создать вручную — без использования AWS CLI.  Файл ~/.aws/credentials должен содержать такие данные:

    

И ~/.aws/config:

    

При использовании профиля default дополнительная настройка в коде не требуется — boto3 автоматически подхватит эти данные.

Через переменные окружения

Реквизиты доступа можно задать с помощью переменных окружения:

    

Через код приложения

Реквизиты можно передать напрямую при создании клиента S3:

    

Этот способ не рекомендуется для продакшена, так как ключи доступа хранятся непосредственно в коде.

Использование отдельных профилей

Если в файлах ~/.aws/config и ~/.aws/credentials настроено несколько профилей, можно явно указать нужный профиль при создании сессии:

    

Это удобно, если один и тот же код используется для работы с несколькими бакетами или окружениями.

Пример

Рассмотрим, как при помощи SDK выполнять базовые операции с объектами. В этом примере скрипт:

  • загружает файл в бакет;
  • выводит список всех объектов;
  • скачивает загруженный файл под другим именем;
  • удаляет объект из хранилища.

Предварительно создайте файл с именем example.txt в той же директории, где находится скрипт.

Код скрипта:

    
Была ли статья полезна?
Ваша оценка очень важна