Клиент — фото-студия. После съёмки ретушёры кладут готовые 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: студия не публикуется.