Вот код:
import os import logging from dotenv import load_dotenv import time from ftplib import FTP_TLS import ssl # Параметры подключения host = os.getenv("FTPS_HOST") port = 21 username = os.getenv("FTPS_USERNAME") password = os.getenv("FTPS_PASSWORD") # Создаем SSL контекст context = ssl.create_default_context() # !!!ВАЖНО- устанавливаем набор шифров по умолчанию с уровнем безопасности 2 context.set_ciphers("DEFAULT@SECLEVEL=2") # Настройка логирования logging.basicConfig( filename="ftps_upload.log", # Логи будут записываться в файл ftps_upload.log level=logging.INFO, # Уровень логирования INFO format="%(asctime)s - %(levelname)s - %(message)s", # Формат записи логов ) logger = logging.getLogger() # Функция для подключения к FTPS-серверу с повторными попытками def connect_to_ftps(host, port, username, password, retries=3, delay=5): for attempt in range(retries): try: ftps = FTP_TLS(context=context) ftps.connect(host, port) # Указываем хост и порт ftps.login(username, password) # Авторизация logger.info("Подключение к серверу успешно установлено.") print("Подключение к серверу успешно установлено.") return ftps except Exception as e: logger.error(f"Попытка {attempt + 1} из {retries} не удалась: {e}") print(f"Попытка {attempt + 1} из {retries} не удалась: {e}") if attempt < retries - 1: time.sleep(delay) # Ждем перед следующей попыткой logger.error("Не удалось установить подключение к серверу.") print("Не удалось установить подключение к серверу.") return None connect_to_ftps(host, port, username, password)