- Реальность задачи: FTP и Яндекс Диск работают по разным протоколам
- Что понадобится
- Шаг 1. Подготовьте FTP сервер
- Шаг 2. Настройте камеру на запись в FTP
- Шаг 3. Проконтролируйте сеть и порты
- Шаг 4. Сделайте загрузку на Яндекс Диск по мере появления файлов
- Шаг 5. Добавьте безопасность
- Что именно проверять, если “всё настроено, но на Яндекс Диске пусто”
- Признаки, что вы упираетесь в ограничения браузера
- Источники
- Короткий вывод
Реальность задачи: FTP и Яндекс Диск работают по разным протоколам
IP камера чаще всего умеет FTP и отправляет на FTP файлоархивы (события, снимки, фрагменты видео). Яндекс Диск принимает файлы через веб-интерфейс и API, но не через FTP.
Значит, рабочая схема выглядит так:
1) камера пишет на ваш FTP (ftp сервер в локальной сети или в DMZ);
2) отдельный компьютер или NAS забирает файлы с FTP и загружает их на Яндекс Диск.
Ниже - пошагово, без магии и без попыток “заставить камеру FTP напрямую писать на Яндекс Диск”.
Что понадобится
- IP камера с включенным FTP (в настройках камеры есть адрес, порт, логин, пароль и папка назначения).
- Машина, где будет работать ftp - сервер (желательно постоянная: ПК, мини-сервер или NAS).
- Учетка на Яндекс Диске и доступ к API (для автоматической загрузки).
- Клиентское ПО/скрипт для синхронизации с Яндекс Диском.
- Сетевой доступ к вашей машине извне не обязателен, если камера в одной сети - но если камера за NAT, лучше продумать проброс портов.
Шаг 1. Подготовьте FTP сервер
Самый надежный вариант - поднять FTP на Linux/NAS и хранить входящие файлы в отдельной директории, например:
- /srv/ftp/incoming/
Базовые требования
- Включите FTP на нужном порту (обычно 21).
- Создайте пользователя
camс паролем. - Разрешите этому пользователю запись только в
/srv/ftp/incoming/(по возможности ограничьте доступ).
Частая ошибка
Камера подключается, но файлы не появляются на диске. Обычно это из-за:
- неверной папки назначения в настройках камеры (она не совпадает с путем на сервере);
- прав на папку (нет write для пользователя FTP);
- блокировки пассивных портов на роутере (если используется пассивный режим и вы делали проброс).
Проверка
Подключитесь к ftp серверу с машины в той же сети через обычный FTP-клиент.
Если вы видите код вроде “connection refused” - проверьте, что запущен именно ftp сервер, а не только сервис на другом интерфейсе.
Шаг 2. Настройте камеру на запись в FTP
В веб-интерфейсе камеры найдите раздел FTP и заполните параметры.
Типичный набор:
- Host: IP вашего ftp сервера (в локалке)
- Port: 21
- Username: cam
- Password: пароль пользователя
- Remote directory: путь до входящей папки (например, /incoming/ или incoming в зависимости от реализации)
- Mode: лучше выбрать пассивный режим, если камера требует, но уточняйте по документации вашей модели
Пример соответствия папок
Если на сервере папка:
- /srv/ftp/incoming/
то в настройках камеры укажите:
- /incoming/ - если FTP-реализация мапит корень пользователя на /srv/ftp/
Точный вариант зависит от того, как устроен chroot/virtual root в вашем ftp сервере.
Шаг 3. Проконтролируйте сеть и порты
Если камера подключается из другой сети (через интернет), то без маршрутизации никак. Минимум:
- проброс порта 21 на ftp сервер;
- если используется passive FTP, пробросьте диапазон пассивных портов, который указан в настройках ftp серверa.
Самая частая причина “камера подключается и отваливается” - отсутствие нужных пассивных портов на роутере.
Для настройки интернет-доступа используйте здравую модель: либо постоянный VPN до сервера, либо аккуратный проброс (с ограничением по IP камеры).
Шаг 4. Сделайте загрузку на Яндекс Диск по мере появления файлов
Так как камера пишет на ftp, автоматизация строится на “watcher” или периодическом сканировании папки incoming.
Вариант А. Скрипт “появился файл - загрузить на Яндекс Диск”
Алгоритм:
1) раз в N секунд смотреть папку /srv/ftp/incoming/
2) для новых файлов загружать на Яндекс Диск
3) после успешной загрузки переносить файл в архив uploaded/ и/или удалять из incoming/
Плюсы: просто и предсказуемо.
Минусы: нужен код/сервис.
Вариант Б. Очередь и обработчик на стороне сервера
Если файлов много, лучше складывать в очередь и грузить пакетами.
Шаг 5. Добавьте безопасность
FTP без шифрования - уязвим. Практические рекомендации:
- Если камеры и ftp сервер в одной сети - окей, но всё равно лучше ограничить доступ.
- Если требуется доступ из интернета, используйте VPN до сервера.
- Ограничьте учетку камеры правами только на запись в входящую директорию.
- Регулярно чистите архив и включайте логирование.
Что именно проверять, если “всё настроено, но на Яндекс Диске пусто”
| Симптом | Где искать причину | Что сделать |
|---|---|---|
| Камера пишет на FTP, но на сервере нет файлов | Папка назначения и права | Сверьте remote directory, проверьте write-доступ пользователю FTP |
| Файлы появляются на FTP, но загрузчик не видит их | watcher/скрипт и маска файлов | Проверьте путь к папке, регулярное сканирование, форматы файлов (mp4/jpg) |
| Загрузка в Яндекс Диск не проходит | API токен и права приложения | Убедитесь, что токен выдан Яндекс Диску и что скрипт получает доступ |
| Загрузчик работает, но падает с ошибкой | сеть/лимиты API | Смотрите логи, добавьте повтор и backoff, ограничьте параллельность |
| Камера не присылает файлы из другой сети | проброс портов passive/22/диапазоны | Настройте проброс пассивных портов или уйдите в VPN |
Признаки, что вы упираетесь в ограничения браузера
Иногда для отладки пробуют открыть FTP в браузере. Это ненадежно: браузеры по-разному обрабатывают FTP и часто требуют JavaScript/доп. действий.
Если вы проверяете в браузере, используйте современный HTTP-просмотр файлов на вашем сервере через веб-обвязку. Для веб-клиента в описаниях иногда встречается параметр chrome143 - он не влияет на FTP напрямую, зато может влиять на поведение страницы, где вы смотрите лог/панель администратора.
Источники
- Документация по Яндекс Диску и API (загрузка файлов, токены): https://yandex.ru/dev/disk/
- FTP (архитектура, режимы и пассивные соединения) - базовая справка: https://www.rfc-editor.org/rfc/rfc959
- Практические обсуждения по FTP в контексте IP-камер и сетевых режимов: https://4pda.to/forum/index.php?showtopic=441176
Короткий вывод
Нормальная рабочая связка - камера -> ftp сервер -> автоматическая загрузка на Яндекс Диск. Если пытаться “прямо” заменить FTP на Яндекс Диск, вы упретесь в несовместимость протоколов. Сначала убедитесь, что файлы точно доходят до ftp сервера, затем добавьте загрузчик на стороне сервера, и только потом переносите сценарии на “интернет-сеть” через VPN или корректный проброс.