/
tsps
/
core
Обзор
Документация
Войти
/
tsps
/
core
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
scripts/test_s3.py
62 строки
2 KB
Василий Петров
Настройка S3 хранилища для аудио
20 мар 2026, 23:53
20 мар 2026, 23:53
2eba468
Код
Авторство
О чём код?
""" Тест подключения к S3. Запуск: python scripts/test_s3.py """ import sys import os # Добавляем корень проекта в PYTHONPATH sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from app.core.config import config from app.services.s3 import s3_service from botocore.exceptions import ClientError def test_connection(): """Проверяет, что можем подключиться к бакету""" try: s3_service.client.list_objects_v2( Bucket=config.S3_BUCKET, Prefix="test/", MaxKeys=1 ) print("Подключение к S3 успешно") print(f"Бакет: {config.S3_BUCKET}, эндпоинт: {config.S3_ENDPOINT}") return True except ClientError as e: print(f"Ошибка подключения: {e}") return False def test_upload_and_download(): """Загружает тестовый файл и получает ссылку на скачивание""" test_content = b"Test content" key = "test/test.txt" print(f"Загружаем файл в S3: {key}") try: s3_service.client.put_object( Bucket=config.S3_BUCKET, Key=key, Body=test_content, ContentType="text/plain" ) print(f"Файл загружен") # Получаем presigned URL на 60 секунд url = s3_service.get_presigned_url(key, expires_in=60) print(f"Временная ссылка (действует 60 сек):") print(url) # проверить вручную что ссылка работает return url except ClientError as e: print(f"Ошибка: {e}") return None if __name__ == "__main__": if test_connection(): test_upload_and_download()