Ответ
Для взаимодействия с AWS S3 из Python используется официальный SDK — библиотека boto3. Она позволяет выполнять все основные операции с объектами и бакетами.
Ключевые операции:
- Загрузка файлов (
upload_file) - Скачивание файлов (
download_file) - Получение списка объектов (
list_objects_v2)
Пример использования boto3
import boto3
# Рекомендуется настраивать доступ через переменные окружения или IAM-роли,
# а не передавать ключи напрямую в код.
s3_client = boto3.client('s3')
BUCKET_NAME = 'my-unique-bucket-name'
# 1. Загрузка файла
s3_client.upload_file(
Filename='local_document.txt',
Bucket=BUCKET_NAME,
Key='documents/remote_document.txt' # Имя объекта в бакете
)
# 2. Скачивание файла
s3_client.download_file(
Bucket=BUCKET_NAME,
Key='documents/remote_document.txt',
Filename='downloaded_document.txt'
)
# 3. Генерация presigned URL
# Временная ссылка для доступа к приватному объекту
url = s3_client.generate_presigned_url(
'get_object',
Params={'Bucket': BUCKET_NAME, 'Key': 'documents/remote_document.txt'},
ExpiresIn=3600 # Ссылка действительна 1 час
)
print(f"Presigned URL: {url}")
Почему это важно? Программный доступ к облачным хранилищам является основой для автоматизации бэкапов, построения конвейеров обработки данных (data pipelines) и раздачи статического контента в веб-приложениях.