Добрый день!
Я новичок и только разбираюсь в Python. Есть задача: подключиться к серверу (FTPS) и перекинуть туда файл из директории. И у меня проблемы уже на этапе подключения(( Облазила весь интернет, но ничего из найденного не работает. Попросила коллегу и он скинул часть своего кода, но он у меня тоже почему-то не работает. Что не так?
Вот код:
По логике в консоли должно выводится "Подключение к серверу успешно установлено", но не выводиться. Код просто отрабатывает в пустую. В чем может быть проблема?
Я новичок и только разбираюсь в Python. Есть задача: подключиться к серверу (FTPS) и перекинуть туда файл из директории. И у меня проблемы уже на этапе подключения(( Облазила весь интернет, но ничего из найденного не работает. Попросила коллегу и он скинул часть своего кода, но он у меня тоже почему-то не работает. Что не так?
Вот код:
Python:
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
По логике в консоли должно выводится "Подключение к серверу успешно установлено", но не выводиться. Код просто отрабатывает в пустую. В чем может быть проблема?
