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: студия не публикуется.