Перейти к содержанию

API для HTTP-ресурса

Описание

В этом разделе описаны методы API для создания, удаления и изменения конфигурации ваших ресурсов. Также здесь Вы найдёте информацию по управлению кэшом и получению статистической информации.

Все ответы (включая ошибки) возвращаются в формате JSON.

Внимание!

Установлено ограничение на количество обращений к API:

  • не больше 20 обращений в минуту для запросов конфигурирования HTTP-ресурсов (POST, PATCH);
  • не больше 125 обращений в минуту для запросов управления кэшем.

Ниже приведены примеры для управления и конфигурации сервисов, связанных с услугой HTTP-кэширование.

Общий конфиг

Ниже приведён пример общего конфига, а в последующих разделах раскрываются примеры конфигурации каждого из разделов.

Значком 💲 обозначены платные услуги. Стоимость можно уточнить у менеджера.

        http resource json object (HRJO) - data from request/response
        HRJO structure and keys:
        { 
            id <string> - uid of resource (used in api url)
            name <string> - identificator for web UI (required)
            origin <json> - section for traffic origin description (required)
            certificate <integer> - id of created certificate
            names <json> - section for names description
            robots <json> - section for robots file description
            headers <json> - section for specific headers description
            cache <json> - section for cache options description
            client_cache <json> - section for extra cache options description
            auth <json> - 💲 section for auth options description
            cors <json> - section for cors description
            limitations <json> - 💲 section for geo, ip, referer or useragent limitations
            modern_tls_only <boolean> - use only modern versions of TLS
            locations <json> - section for locations description
            compress <json> - 💲 section for compress options description
            ioss <boolean> - 💲 section for ioss options description
            packaging <json> - section for packaging options description
            tuning <string> - distribution optimization type (one of "default", "large" (for large files > 20 Mbytes), "live" (for HTTP LIVE streams))
            slice_size_megabytes <integer> - size of slice in MB (only for tuning="large")
        }  

origin section

        {
            https <boolean> - use or not https during requests to origin
            s3_bucket <string> - permitted bucket, set when specifying S3-domain
            aws <json> - use aws authorization during requests to origin
            hostname <string> - set host header during requests to origin
            servers <json> - client nodes description
            read_timeout <string> - time in seconds, e.g. "10s"
            send_timeout <string> - time in seconds, e.g. "10s"
            connect_timeout <string> - time in seconds, e.g. "10s"
        }

aws section

        {
            auth <json> - authorization keys
        }

aws auth section

        {
            access_key <string> - access key
            secret_key <string> - secret key
        }

servers section

        {
            <client_domain/ip_address>: client node address <json>
        }

client node address section

        {
            port <integer> - client node port (default 80 and 443)
            weight <integer> - load balancing parameters
            max_fails <integer> - load balancing parameters
            backup <boolean> - use node only in backup mode
        }

names section

        list of string cnames, f.e. ["alias1.client.cdn.ru"]

robots section

        {
            type <string> - "deny", "custom" or "cached"
            robotsContent <string> - client’s robots.txt text (only for "custom" type)
        }

headers section

        {
            request <json> - headers for requests to origin
            response <json> - header for customer responses
        }

request headers section

        {
            <header_name>: <header_value>
        }

response headers section

        {
            <header_name>: <header_value>
        }

cache section

        {
            disable <boolean> - do not cache content
            consider_args <boolean> - use querystring while cache process
            valid <json> - time of caching
        }

valid section

        {
            2xx <string> - cache ttl for 2xx response codes
            3xx <string> - cache ttl for 3xx response codes
            4xx <string> - cache ttl for 4xx response codes
            5xx <string> - cache ttl for 5xx response codes
            force <boolean> - force cache update on clientside
        }

client cache section

        {
            expires <integer> - expire cache time
        }

cors section

        {
            disable <boolean> - disable cors (default: false)
            domains <list of strings> - list of allowed domains
            headers <list of strings> - list of secure request headers (Accept, Accept-Language, Content-Type, Content-Language are allowed by default)
            expose <list of strings> - list of upper level API accessible headers (Cache-Control, Content-Language, Content-Type, Expires, Last-Modified, Pragma are allowed by default)
            methods <list of strings> - list of safe methods (GET, HEAD, POST are allowed by default)
            max_age <integer> - preflight request response lifetime
            credentials <boolean> - set an Access-Control-Allow-Credentials header
        }

compress section $

        {
            brotli <boolean> - use data compression format Brotli
        }

limitations section $

        {
            geo <list> - list of rules for limitation by countries and regions
            ip <list> - list of rules for limitation by ip addresses
            referer <list> - list of rules for limitation by referer
            useragent <list> - list of rules for limitation by useragent
        }

limitations rules section

        [{
            default_action <string> - "allow" or "deny"
            exclude <list> - list of exclusions
            times <list> - list of time intervals
        }]

limitations rules times section

        [{
            start <string> - start of time interval in ISO 8601-1:2019 extended format or null
            end <string> - end of time interval in ISO 8601-1:2019 extended format or null
        }]

limitations geo exclude section

        [{
            country <string> - country code in ISO 3166-1 alpha-2
            region <string> - region code in ISO 3166-2 or null
            action <string> - "deny" or "allow"
        }]

limitations referer exclude section

        [{
           referer <string> - domain name or regular expression
        }]

limitations ip exclude section

        [{
            ip <string> - IP address to exclude in CIDR notation
        }]

limitations useragent exclude section

        [{
            useragent <string> - user agent or regular expression
        }]

locations section

        {
            key <string> - path to content: locations params <json>
        }

locations params section

        {
            headers <json> - like global section
            cache <json> - like global section
            client_cache <json> - like global section
            auth <json> - 💲 like global section
            cors <json> - like global section
            compress <json> - 💲 like global section
            ioss <boolean> - 💲 like global section
            limitations <json> - 💲 like global section
            packaging <json> - like global section
        }

packaging params section (описание услуги)

        {
            <format> <json> - options for the video <format> from the list: mp4
        }

packaging format params section

        {
            output_protocols <list of strings> - list of formats in which the video will be distributed (HLS, MPEG-DASH)
        }

Минимальная конфигурация

Пример минимального конфига с ориджином example.com

{
  "name": "example",
  "origin": {
    "servers": {
      "example.com": {}
    }
  },
}

В этом примере сеть CDNvideo закэширует весь статический контент example.com , используя настройки по умолчанию.

Конфигурация для HTTP-ресурса

Получить все ресурсы

URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/http/

  • Тип запроса: GET
  • Заголовки: CDN-AUTH-TOKEN
  • Тип данных ответа: JSON Array или JSON Object в случае ошибки
Код ответа Данные ответа Формат ответа Описание
200 Все HTTP-ресурсы для аккаунта или описание ошибки JSON Получен список ресурсов или ошибка
403 None None Запрещено
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" https://api.cdnvideo.ru/cdn/api/v1/<account_name>/resource/http/

Пример успешного ответа

[{"origin": {"https": false, "servers": {"test.test.te": {"backup": false, "port": 80, "weight": 1}}}, "cdn_domain": "krvdpfc0t0.a.trbcdn.net", "name": "default2", "active": true, "cache": {"consider_args": false}, "robots": {"type": "deny"}, "names": [], "id": "krvdpfc0t0"}, {"origin": {"https": false, "servers": {"test.test.tet": {"backup": false, "port": 80, "weight": 1}}}, "cdn_domain": "zm4rrn4mkt.a.trbcdn.net", "name": "default", "active": true, "cache": {"consider_args": false}, "robots": {"type": "custom", "robotsContent": "1\n"}, "names": [], "id": "zm4rrn4mkt"}]

Пример неуспешного ответа

{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}

Обратите внимание

Для получения неактивных ресурсов используйте query-параметр "active" с значением "false"

Получить конкретный ресурс

URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/http/<resource_id>

  • Тип запроса: GET
  • Заголовки: CDN-AUTH-TOKEN
  • Тип данных ответа: JSON Object
Код ответа Данные ответа Формат ответа Описание
200 Конкретный HTTP-ресурс для аккаунта или описание ошибки JSON Получен ресурс или ошибка
403 None None Запрещено
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" https://api.cdnvideo.ru/cdn/api/v1/<account_name>/resource/http/<resource_id>

Пример успешного ответа

{"origin": {"https": false, "servers": {"test.test.te": {"backup": false, "port": 80, "weight": 1}}}, "cdn_domain": "krvdpfc0t0.a.trbcdn.net", "name": "default2", "active": true, "cache": {"consider_args": false}, "robots": {"type": "deny"}, "names": [], "id": "krvdpfc0t0"}

Пример неуспешного ответа

{"status": "error", "message": "Invalid Token", "description": "Invalid or expired token"}

Обратите внимание

Для получения неактивного ресурса используйте query-параметр "active" с значением "false"

Создать ресурс

URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/http/

  • Тип запроса: POST
  • Заголовки: CDN-AUTH-TOKEN
  • Тело запроса: JSON с данными создаваемого ресурса
  • Тип данных ответа: JSON Object
Код ответа Данные ответа Формат ответа Описание
200 task_id, resource_id или описание ошибки JSON Создан, id задачи в общей очереди задач или ошибка
400 None None Неверный запрос
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
  -X POST \
  -d '{"origin": {"servers": {"<origin_host>": {"port": 80}}},  "name": "<resource_name>"}' \
  https://api.cdnvideo.ru/cdn/api/v1/<account_name>/resource/http/

Пример успешного ответа

{"status": "accept", “task_id": "20180402162358692400", "resource_id": "v7sdnx3ytm"}

Пример неуспешного ответа

{"status": "error", "message": "value invalid name", "description": "Json invalid name is not uniq in account <account_name>"}

Изменить ресурс

URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/http/<resource_id>

  • Тип запроса: PATCH
  • Заголовки: CDN-AUTH-TOKEN
  • Тело запроса: JSON с новыми данными ресурса
  • Тип данных ответа: JSON Object
Код ответа Данные ответа Формат ответа Описание
200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
400 None None Неверный запрос
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
  -X PATCH \
  -d '{"origin": {"servers": {"<new_origin_host>": {"port": 80}}},  "name": "<new_resource_name>"}' \
  https://api.cdnvideo.ru/cdn/api/v1/<account_name>/resource/http/<resource_id>

Пример успешного ответа

{"status": "accept", “task_id": "20180402162358692401"}

Пример неуспешного ответа

{"status": "error", "message": "Json invalid", "description": "Key incorrect or not found ( origin )"}

Деактивация ресурса

URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/http/<resource_id>

  • Тип запроса: PATCH
  • Заголовки: CDN-AUTH-TOKEN
  • Тип данных ответа: JSON Object
Код ответа Данные ответа Формат ответа Описание
200 task_id или описание ошибки JSON Деактивирован, id задачи в общей очереди задач или ошибка
400 None None Неверный запрос
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
  -X PATCH \
  -d '{"active": false, "origin": {"servers": {"<origin_host>": {"port": 80}}},  "name": "<resource_name>"}' \
  https://api.cdnvideo.ru/cdn/api/v1/<account_name>/resource/http/<resource_id>

Пример успешного ответа

{"status": "accept", "task_id": "20180402162358692413"}

Пример неуспешного ответа

{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}

Активация ресурса

URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/http/<resource_id>

  • Тип запроса: PATCH
  • Заголовки: CDN-AUTH-TOKEN
  • Тип данных ответа: JSON Object
Код ответа Данные ответа Формат ответа Описание
200 task_id или описание ошибки JSON Активирован, id задачи в общей очереди задач или ошибка
400 None None Неверный запрос
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
  -X PATCH \
  -d '{"active": true, "origin": {"servers": {"<origin_host>": {"port": 80}}},  "name": "<resource_name>"}' \
  https://api.cdnvideo.ru/cdn/api/v1/<account_name>/resource/http/<resource_id>

Пример успешного ответа

{"status": "accept", "task_id": "20180402162358692413"}

Пример неуспешного ответа

{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}

Локальная авторизация $

Создание ресурса с локальной авторизацией

URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/http/

  • Тип запроса: POST
  • Заголовки: CDN-AUTH-TOKEN
  • Тело запроса: JSON с данными создаваемого ресурса и параметрами локальной авторизации
  • Тип данных ответа: JSON Object
Код ответа Данные ответа Формат ответа Описание
200 task_id, resource_id или описание ошибки JSON Создан, id задачи в общей очереди задач или ошибка
400 None None Неверный запрос
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
  -X POST \
  -d '{"auth": {"md5": {"secret": "123", "forever": true, "anywhere": true}}, "origin": {"servers": {"<origin_host>": {"port": 80}}},  "name": "<resource_name>"}' \
  https://api.cdnvideo.ru/cdn/api/v1/<account_name>/resource/http/

Пример успешного ответа

{"status": "accept", “task_id": "20180402162358692400", "resource_id": "v7sdnx3ytm"}

Пример неуспешного ответа

{"status": "error", "message": "value invalid name", "description": "Json invalid name is not uniq in account <account_name>"}

Изменение локальной авторизации ресурса

URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/http/<resource_id>

  • Тип запроса: PATCH
  • Заголовки: CDN-AUTH-TOKEN
  • Тело запроса: JSON с измененными параметрами локальной авторизации
  • Тип данных ответа: JSON Object
Код ответа Данные ответа Формат ответа Описание
200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
400 None None Неверный запрос
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
  -X PATCH \
  -d '{"auth": {"md5": {"secret": "456", "forever": true}}, "origin": {"servers": {"<origin_host>": {"port": 80}}},  "name": "<resource_name>"}' \
  https://api.cdnvideo.ru/cdn/api/v1/<account_name>/resource/http/<resource_id>

Пример успешного ответа

{"status": "accept", "task_id": "20180402162358692413"}

Пример неуспешного ответа

{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}

Внешняя авторизация $

Создание ресурса с внешней авторизацией

URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/http/

  • Тип запроса: POST
  • Заголовки: CDN-AUTH-TOKEN
  • Тело запроса: JSON с данными создаваемого ресурса и параметрами внешней авторизации
  • Тип данных ответа: JSON Object
Код ответа Данные ответа Формат ответа Описание
200 task_id, resource_id или описание ошибки JSON Создан, id задачи в общей очереди задач или ошибка
400 None None Неверный запрос
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
-X POST \
-d '{"auth": {"url": "https://test.com/yourscript"}, "origin": {"servers": {"<origin_host>": {"port": 80}}},  "name": "<resource_name>"}' \
https://api.cdnvideo.ru/cdn/api/v1/<account_name>/resource/http/

Пример успешного ответа

{"status": "accept", “task_id": "20180402162358692400", "resource_id": "v7sdnx3ytm"}

Пример неуспешного ответа

{"status": "error", "message": "value invalid name", "description": "Json invalid name is not uniq in account <account_name>"}

Изменение внешней авторизации ресурса

URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/http/<resource_id>

  • Тип запроса: PATCH
  • Заголовки: CDN-AUTH-TOKEN
  • Тело запроса: JSON с измененными параметрами внешней авторизации
  • Тип данных ответа: JSON Object
Код ответа Данные ответа Формат ответа Описание
200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
400 None None Неверный запрос
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
-X PATCH \
-d '{"auth": {"url": "https://test.com/yourscript2"}, "origin": {"servers": {"<origin_host>": {"port": 80}}},  "name": "<resource_name>"}' \
https://api.cdnvideo.ru/cdn/api/v1/<account_name>/resource/http/<resource_id>

Пример успешного ответа

{"status": "accept", "task_id": "20180402162358692413"}

Пример неуспешного ответа

{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}

Ограничения раздачи $

Создание ресурса с ограничением раздачи по странам, IP адресам, referer, или User-Agent

URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/http/

  • Тип запроса: POST
  • Заголовки: CDN-AUTH-TOKEN
  • Тело запроса: JSON с данными создаваемого ресурса и параметрами ограничений
  • Тип данных ответа: JSON Object
Код ответа Данные ответа Формат ответа Описание
200 task_id, resource_id или описание ошибки JSON Создан, id задачи в общей очереди задач или ошибка
400 None None Неверный запрос
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
  -X POST \
  -d '{"origin": {"servers": {"<origin_host>": {"port": 80}}}, "name": "<resource_name>", "limitations": {"geo": [{"default_action": "allow", "exclude": [{"country": "RU", "region": "BEL", "action": "deny"}], "times": [{"start": "2019-07-20T14:17:00Z", "end": "2019-07-20T14:18:00Z"}]}, {"default_action": "allow", "exclude": [{"country": "RU", "region": "CR", "action": "deny"}, {"country": "RU", "region": null, "action": "deny"}], "times": [{"start": "2019-07-20T14:19:00Z", "end": null}]}], "ip": [{"default_action": "deny", "exclude": [{"ip":"192.168.0.1/24"}], "times": [{"start": "2019-07-20T14:17:00Z", "end": "2019-07-20T14:18:00Z"}]}], "referer": [{"default_action": "deny", "exclude": [{"referer":"*.ru"}], "times": [{"start": null, "end": "2019-07-20T14:18:00Z"}]}], "useragent": [{"default_action": "deny", "exclude": [{"useragent": "browser_name"}], "times": [{"start": "2019-07-20T14:17:00Z", "end": "2019-07-20T14:18:00Z"}]}]}}' \
  https://api.cdnvideo.ru/cdn/api/v1/<account_name>/resource/http/

Пример успешного ответа

{"status": "accept", “task_id": "20180402162358692400", "resource_id": "v7sdnx3ytm"}

Пример неуспешного ответа

{"status": "error", "message": "json invalid", "description": "limitations : Invalid time interval: start:2021-05-11T19:12:00Z, end:2021-05-09T22:12:00Z"}

Изменение ограничений раздачи ресурса

URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/resource/http/<resource_id>

  • Тип запроса: PATCH
  • Заголовки: CDN-AUTH-TOKEN
  • Тело запроса: JSON с измененными параметрами ограничений
  • Тип данных ответа: JSON Object
Код ответа Данные ответа Формат ответа Описание
200 task_id или описание ошибки None Изменен, id задачи в общей очереди задач или ошибка
400 None None Неверный запрос
404 None None Не найдено
500 None None Внутренняя ошибка сервера
503 None None Сервис недоступен

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
-X PATCH \
-d '{"origin": {"servers": {"<origin_host>": {"port": 80}}}, "name": "<resource_name>", "limitations": { "ip": [{"default_action": "deny", "exclude": [{"ip":"192.168.0.1/24"}], "times": []}]}}' \
https://api.cdnvideo.ru/cdn/api/v1/<account_name>/resource/http/<resource_id>

Пример успешного ответа

{"status": "accept", "task_id": "20180402162358692413"}

Пример неуспешного ответа

{"status": "error", "message": "Not allowed method", "description": "Request is forbidden"}

Расширение зон раздачи $

Подключение дополнительных зон раздачи в зарубежном сегменте сети. С географией покрытия Вы можете ознакомиться на карте сети.

Посмотреть текущую конфигурацию

URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/cncconfiguration/<resource_id>

  • Тип запроса: GET
  • Заголовки: CDN-AUTH-TOKEN
  • Тип данных ответа: JSON Object
Код ответа Данные ответа Формат ответа Описание
200 code: тип integer, message: тип string, data: {areas: тип list, certificate: тип string или None, cnc_configured: тип bool, is_changes_apply: тип bool} JSON OK
401 None None Не авторизован
500 None None Внутренняя ошибка сервера

Возможные значения areas:

Значение Описание
am Америка
apac Азиатско-Тихоокеанский регион
emea Европа, Ближний Восток, Африка

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

curl -H "CDN-AUTH-TOKEN: $TOKEN" \
https://api.cdnvideo.ru/cdn/api/v1/cpfgdakp/cncconfiguration/lajjncnn6d

Пример успешного ответа

{
  "message": "Ok",
  "code": 200,
  "data": {
    "is_changes_apply": true,
    "cnc_configured": true,
    "certificate": null,
    "areas": ["apac", "emea"]
  }
}

Подключить/Изменить зоны раздачи $

URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/cncconfiguration/<resource_id>

  • Тип запроса: POST
  • Заголовки: CDN-AUTH-TOKEN
  • Тело запроса: JSON с данными конфигурации
  • Тип данных ответа: JSON Object

Описание параметров тела запроса:

Имя параметра Тип параметра Обязательный
JSON Object Да
areas Array, одно или несколько значений из ("apac", "am", "emea") Да
certificate String или None Нет

Возможные коды ответа:

Код ответа Данные ответа Формат ответа Описание
200 message: тип string, code: тип integer JSON ОК
400 None None Неверный запрос
401 None None Не авторизован
409 None None Конфликт (предыдущее изменение еще не применилось)

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

curl -X POST -d '{"areas": ["apac", "emea"]}' \
-H "CDN-AUTH-TOKEN: $TOKEN" \
https://api.cdnvideo.ru/cdn/api/v1/cpfgdakp/cncconfiguration/lajjncnn6d

Пример успешного ответа

{
  "message": "Ok",
  "code": 200
}

Отключить дополнительные зоны раздачи

URL: https://api.cdnvideo.ru/cdn/api/v1/<your_account_name>/cncconfiguration/<resource_id>

  • Тип запроса: POST
  • Заголовки: CDN-AUTH-TOKEN
  • Тело запроса: JSON с данными конфигурации
  • Тип данных ответа: JSON Object

Описание параметров тела запроса:

Имя параметра Тип параметра Обязательный
JSON Object Да
areas Пустой Array [ ] Да
certificate String или None Нет

Возможные коды ответа:

Код ответа Данные ответа Формат ответа Описание
200 message: тип string, code: тип integer JSON ОК
400 None None Неверный запрос
401 None None Не авторизован
409 None None Конфликт (предыдущее изменение еще не применилось)

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

curl -X POST -d '{"areas": []}' \
-H "CDN-AUTH-TOKEN: $TOKEN" \
https://api.cdnvideo.ru/cdn/api/v1/cpfgdakp/cncconfiguration/lajjncnn6d

Пример успешного ответа

{
  "message": "Ok",
  "code": 200
}

Управление кэшем

Предзагрузка или удаление файлов из cache, а также полный сброс cache.

Данные операции выполняются асинхронно и в ответе возвращается task_id - идентификатор задачи. При наличии task_id можно проверить статус задачи (описано ниже).

Внимание!

Ограничение на количество запросов к API управления кэшем: не больше 125 обращений в минуту.

Удалить файл

URL: https://api.cdnvideo.ru/app/cache/v2/objects?cdn_url=http://<domain>/path/to/file

В качестве <domain> может использоваться либо выделенный CDN-домен <resource_id>.a.trbcdn.net, либо CNAME.

  • Тип запроса: DELETE
  • Заголовки: CDN-AUTH-TOKEN
  • Тип данных ответа: JSON Object

Параметры строки запроса:

Имя параметра Тип значения Обязательный
cdn_url Текст Да

Возможные коды ответа:

Код ответа Данные ответа Формат ответа Описание
202 task_id: тип string JSON ОК
400 None None Неверный запрос
401 None None Доступ запрещен
503 None None Сервис недоступен

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

curl -X DELETE \
-H "CDN-AUTH-TOKEN: $TOKEN" \
'https://api.cdnvideo.ru/app/cache/v2/objects?cdn_url=http://lajjncnn6d.a.trbcdn.net/aloha/cdn/sample_03.flv'

Пример успешного ответа

{
  "task_id": "f0f9601e75b2415db0e2219ea07d8fde"
}

Сбросить весь кэш

URL: https://api.cdnvideo.ru/app/cache/v2/objects?cdn_url=http://<domain>/path/to/file&all

В качестве <domain> может использоваться либо выделенный CDN-домен <resource_id>.a.trbcdn.net, либо CNAME.

  • Тип запроса: DELETE
  • Заголовки: CDN-AUTH-TOKEN
  • Тип данных ответа: JSON Object

Параметры строки запроса:

Имя параметра Тип значения Обязательный
cdn_url Текст Да
all Значение отсутствует Да

Возможные коды ответа:

Код ответа Данные ответа Формат ответа Описание
202 task_id: тип string JSON ОК
400 None None Неверный запрос
401 None None Доступ запрещен
503 None None Сервис недоступен

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

curl -X DELETE \
-H "CDN-AUTH-TOKEN: $TOKEN" \
'https://api.cdnvideo.ru/app/cache/v2/objects?cdn_url=http://lajjncnn6d.a.trbcdn.net/aloha/cdn/sample_03.flv&all'

Пример успешного ответа

{
  "task_id": "ccf82df380a34fe7a4992ca810ccfee4"
}

Предзагрузить файл

URL: https://api.cdnvideo.ru/app/cache/v2/objects?cdn_url=http://origin:port/path/to/file

  • Тип запроса: PUT
  • Заголовки: CDN-AUTH-TOKEN
  • Тип данных ответа: JSON Object

Параметры строки запроса:

Имя параметра Тип значения Обязательный
cdn_url Текст Да

Возможные коды ответа:

Код ответа Данные ответа Формат ответа Описание
202 task_id: тип string JSON ОК
400 None None Неверный запрос
401 None None Доступ запрещен
503 None None Сервис недоступен

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

curl -X PUT \
-H "CDN-AUTH-TOKEN: $TOKEN" \
'https://api.cdnvideo.ru/app/cache/v2/objects?cdn_url=http://cache-cdntest.cdnvideo.ru/aloha/cdn/sample_03.flv'

Пример успешного ответа

{
  "task_id": "7a14702e80ec4b99ba5792ca9d781b3d"
}

Проверить статус задачи

URL: https://api.cdnvideo.ru/app/cache/v2/tasks?id=<task_id>

  • Тип запроса: GET
  • Заголовки: CDN-AUTH-TOKEN
  • Тип данных ответа: JSON Object

Возможные коды ответа:

Код ответа Данные ответа Формат ответа Описание
200 task_description: тип string, status: тип string, date_started: тип string, message: тип string JSON ОК
400 None None Неверный запрос
401 None None Доступ запрещен
404 None None Не найдено
503 None None Сервис недоступен

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

curl -X GET \
-H "CDN-AUTH-TOKEN: $TOKEN" \
'https://api.cdnvideo.ru/app/cache/v2/tasks?id=7a14702e80ec4b99ba5792ca9d781b3d'

Пример успешного ответа

{
  "task_description": "PRELOAD http://cache-cdntest.cdnvideo.ru/aloha/cdn/sample_03.flv",
  "status": "completed",
  "date_started": "2018-11-27T09:55:11",
  "message": ""
}