раздел 04

Хранение и автоматизация

Скачать файл - половина дела. Дальше два вопроса: куда его положить и как сделать, чтобы это происходило само.

Куда складывать

  • Диск сервера. Просто и быстро для небольших объёмов. Минус - место кончается, диск надо чистить и бэкапить.
  • Объектное хранилище S3. Масштабируется, не упирается в диск, удобно отдавать ссылки. Подходящий вариант для архива записей. Про настройку хранилища - курс Серверы.

Типичная схема для S3: скачали файл потоком (раздел 03) и тут же залили в бакет, по желанию не сохраняя на диск вообще.

Автоматизация: webhook вместо опроса

Можно периодически опрашивать API на новые записи (поллинг), но это лишние запросы и задержка. Правильнее - подписаться на событие. Zoom присылает webhook recording.completed, когда облачная запись готова к скачиванию.

В payload этого события приходят данные встречи и список файлов с download_url. Вместе с событием Zoom часто передаёт отдельный download_token - короткоживущий токен именно для скачивания этих файлов, чтобы не дёргать OAuth-токен под каждое событие.

1
Запись завершилась и обработалась
Zoom готовит облачную запись и шлёт на ваш endpoint событие recording.completed.
2
Ваш сервис принимает webhook
Из payload берёте recording_files с download_url и сопутствующий download_token.
3
Сразу скачиваете и заливаете
Качаете каждый файл (с download_token или access_token) и кладёте на диск или в S3.
4
Отмечаете запись как сохранённую
Фиксируете у себя, что бэкап сделан и проверен по размеру.

Скачивание из webhook - тот же код, что в разделе 03: берёте download_url из payload и передаёте токен через заголовок Authorization: Bearer DOWNLOAD_TOKEN либо через ?access_token=DOWNLOAD_TOKEN.

Удаление записи из Zoom после бэкапа

Когда файл надёжно сохранён, запись в облаке можно удалить - освободить место. Zoom это умеет через API удаления записей встречи, с параметром действия: переместить в корзину или удалить совсем.

Безопасный порядок:

1
Скачали файл
Записали на диск или залили в S3.
2
Проверили целостность
Размер на диске совпал с file_size из ответа API. Файл открывается.
3
Только теперь удаляете из Zoom
Через API удаления записей встречи. На первых порах - в корзину, не насовсем.

Сам эндпоинт удаления и его параметры - в курсе Zoom API. Удаление трогайте в последнюю очередь, когда весь поток скачивания и проверки уже отлажен.