Удаленный экспорт архива

В отличие от команды, описанной в разделе Локальный экспорт архива команда Удаленный экспорт архива позволяет запросить фрагмент архива с любого сервера и скачать его.

Важно

При использовании команды Удаленный экспорт архива следует учитывать следущее:

  • Задачи удаленного экспорта архива не отображаются на главной панели.
  • Одновременно выполняется только одна задача удаленного экспорта архива. При этом новая задача удаленного экспорта архива будет выполнена только после того, как завершатся уже имеющиеся задачи локального экспорта архива. А новые задачи локального экспорта архива не начнут выполняться пока не завершится выполнение текущей задачи удаленного экспорта архива.
  • Интервал времени, за который производится экспорт архива не должен превышать 30 минут.
  • Экспортируемый файл сохраняется с расширением .mp4.

Удаленный экспорт архива выполняется следующим образом:

  1. Запрос на создание задачи удаленного экспорта архива

    Пример запроса:

    https://192.168.1.200:8080/jit-export-create-task?sid=MdFYYrjy
    		

    Запрос посылается методом POST, в теле которого в формате JSON должны содержаться следующие данные:

    {
    	"resource_guid": "zwzmklKi",
    	"start_ts": 1596552540000000,
    	"end_ts":   1596552600000000,
    	"is_hardware": 0,
    	"prefer_substream": 0
    }
    		

    где:

    • "resource_guid": "zwzmklKi" - GUID канала;
    • "start_ts": 1596552540000000 - время начала экспортируемого фрагмента архива;
    • "end_ts": 1596552600000000 - время конца экспортируемого фрагмента архива;
    • "is_hardware": 0 - источник архива (0 - архив на сервере, 1 - архив на устройстве);
    • "prefer_substream": 0 - поток архива (0 - основной поток, 1 - дополнительный поток).

    Подсказка

    Время указывается в микросекундах в формате UNIX-время с учетом часового пояса, настроенного на сервере.

    Пример ответа сервера:

    {
    	"success" : "1",
    	"task_id" : "JgZN323E"
    }
    		

    В данном примере ответ содержит:

    • "success" : "1" - сообщение об успешности выполнения запроса;
    • "task_id" : "JgZN323E" - уникальный id задачи.

    Если в теле запроса указан интервал длительностью более 30 минут или в указанном интервале отсутствует архив, то сервер ответит сообщением об ошибке:

    {
    	"success" : "0",
    	"error_code": "bad interval"
    }
    		
  2. Запрос для получения файла экспорта

    Подсказка

    Запрос на получение файла экспорта должен быть выполнен в течение 10 секунд после выполнения запроса на создание задачи. По истечении 10 секунд задача удаленного экспорта будет удалена.

    Пример запроса:

    https://192.168.1.200:8080/jit-export-download?sid=MdFYYrjy&task_id=JgZN323E
    		

    Запрос посылается методом GET, в параметрах которого указываются следующие данные:

    • sid=MdFYYrjy - уникальный id сессии;
    • task_id=JgZN323E - id задачи, созданной ранее.

    В ответ сервер пришлет экспортируемый файл.

  3. Запрос состояния задачи

    Пример запроса:

    https://192.168.1.200:8080/jit-export-task-status?sid=MdFYYrjy
    		

    Запрос посылается методом POST, в теле которого в формате JSON должны содержаться следующие данные:

    {
    	"task_id": "JgZN323E"
    }
    		

    где:

    • "task_id": "JgZN323E" - id задачи, созданной ранее.

    Пример ответа сервера:

    {
    	"active" : true,
    	"done" : false,
    	"progress" : 3,
    	"sended" : 30456,
    	"success" : 1
    }
    		

    В данном примере ответ содержит:

    • "active" : true - состояние задачи (true - задача обрабатывается, false - задача не обрабатывается);
    • "done" : false - индикатор завершения задачи на сервере (true - задача успешно завершена, false - задача не завершена);
    • "progress" : 3 - процент завершения задачи, от 0 до 100;
    • "sended" : 30456 - количество байт видео, отосланных сервером;
    • "success" : 1 - сообщение об успешности выполнения запроса.
  4. Запрос на удаление задачи удаленного экспорта

    Пример запроса:

    https://192.168.1.200:8080/jit-export-cancel-task?sid=MdFYYrjy&task_id=JgZN323E
    		

    Запрос посылается методом GET, в параметрах которого указываются следующие данные:

    • sid=MdFYYrjy - уникальный id сессии;
    • task_id=JgZN323E - id удаляемой задачи.

    Пример ответа сервера:

    {
    	"success" : "1"
    }