Python-скрипт: мониторинг папки и автозагрузка на S3/FTP

Новый файл с NAS уходит на S3 или FTP за 1–2 минуты, менеджер получает алерт в Telegram.

Стек FTP, Python, S3, Telegram

Клиент — фото-студия. После съёмки ретушёры кладут готовые JPEG в общую папку на NAS; менеджер вручную заливал на FTP клиента и писал в Telegram «готово». Пропуски файлов и задержки до нескольких часов.

Задача: Python-скрипт (watchdog) — следит за WATCH_DIR, при новом файле → валидация (размер, расширение) → upload S3 или FTP → запись в log → Telegram-уведомление. Настройки в .env.

  • watchdog Observer на папку (в т.ч. подпапки по проектам);
  • debounce 5 сек — дождаться окончания записи файла;
  • валидация: .jpg/.png, min size, optional hash dedup;
  • upload: boto3 (S3) или ftplib (FTP), retry 3× с backoff;
  • state.json: уже загруженные файлы, не дублировать;
  • Telegram bot: «project X: uploaded 12 files» / alert on error;
  • systemd unit или Task Scheduler для автозапуска.

Стек: Python 3.11, watchdog, boto3, python-telegram-bot, dotenv. Приёмка: 50 тестовых файлов, 0 потерь, алерт при обрыве FTP.

Итог: загрузка через 1–2 мин после появления файла; ручная работа менеджера −90%. NDA: студия не публикуется.