Программный интерфейс позволяет просматривать статистику и статус раздачи потокового видео, выполнять просмотр и очистку HTTP-кэша на серверах раздачи. Доступ к API возможен только с определенных IP-адресов и при наличии идентификатора с соответствующими правами доступа.
Статистика и статус раздачи потокового видео
Пример использования данного API:
$ curl -I http://api.cdnvideo.ru:8888/0/streams?id=num_name
HTTP/1.1 200 OK
X-cdn-connections: 132
X-cdn-status: 100
HTTP response содержит следующие заголовки:
- x-cdn-connections : текущее количество подключений к видеопотокам.
- x-cdn-status : диапазон значений [0-100]. Значения, отличные от 0, означают нормальную работу CDN.
В теле ответа содержится список текущих подключений к видеопотокам в формате JSON:
{
"streams": {
"live/_definst_/stream1": {
"sessionsCupertino": 0,
"sessionsSmooth": 0,
"sessionsFlash": 32,
"sessionsRTSP": 0,
"sessionsTotal": 32
},
…
}
}
Просмотр HTTP-кэша
Для поиска отдельного объекта в кэше серверов раздачи используется команда list1. Команда проверяет наличие объекта в кэше хотя бы одного из серверов раздачи. Для файла с URL на сервере-источнике вида http://origin/path/to/file.jpg запрос будет выглядеть следующим образом:
http://api.probro.ru:8888/0/list1?id=num_name&type=http&object=http://origin/path/to/file.jpg
В ответе HTTP 200 OK передаётся заголовок x-cdn-command, содержащий информацию о статусе выполнения команды с диапазоном значений от 0 до 9. Значение, отличное от нуля, означает ошибку выполнения.
Пример успешного выполнения команды:
HTTP/1.1 200 OK
X-cdn-command: 0
Результат выполнения команды передаётся в теле ответа. При наличии объекта в кэше од-ного или нескольких (или всех) серверов раздачи тело ответа будет содержать URL объекта.
Пример выполнения команды list1 для объекта http://test/7/5/4/754_45966.flv, объект обнаружен в кэше:
curl -v 'http://api.cdnvideo.ru:8888/0/list1?id=00001_aloha&type=http&object=http://test/7/5/4/754_45966.flv'
< HTTP/1.1 200 OK
< X-cdn-command: 0
{
"00001_aloha": {
"http": {
"object": [
{
"name": "http://test/7/5/4/754_45966.flv"
}
]
}
}
}
Очистка HTTP-кэша
Для удаления отдельного объекта в кэше всех серверов раздачи используется команда purge1. Для файла с URL на сервере-источнике вида http://origin/path/to/file.jpg запрос будет выглядеть следующим образом:
http://api.probro.ru:8888/0/purge1?id=num_name&type=http&object=http://origin/path/to/file.jpg
В ответе HTTP 200 OK передаётся заголовок x-cdn-command, содержащий информацию о статусе выполнения команды с диапазоном значений от 0 до 9. Если значение равно нулю, объект был успешно удалён из кэша всех серверов раздачи. Значение, отличное от нуля, означает ошибку выполнения. Также может быть передан заголовок x-cdn-comment, содержа-щий текстовый комментарий.
Пример ответа после успешного удаления объекта:
HTTP/1.1 200 OK
X-cdn-command: 0
X-cdn-comment: OK
Пример неуспешного выполнения команды:
HTTP/1.1 200 OK
X-cdn-command: 1
X-cdn-comment: Fail. Retry later.
Пример удаления из кэша всех серверов раздачи объекта http://test/7/5/4/754_45966.flv (команда purge1):
curl -v 'http://api.cdnvideo.ru:8888/0/purge1?id=00001_aloha&type=http&object=http://test/7/5/4/754_45966.flv'
>
< HTTP/1.1 200 OK
< X-cdn-command: 0