Справочник API

В этом разделе представлена подробная документация API для всех классов, методов и функций, доступных в CloudPub Python SDK.

Содержимое модуля

Python-модуль CloudPub

class cloudpub_python_sdk.Acl(user, role)

Bases: object

Запись списка контроля доступа (ACL) для управления правами пользователей

Определяет права доступа конкретного пользователя к публикуемому сервису. Используется для тонкой настройки безопасности на уровне пользователей.

Атрибуты:

user (str): Email или идентификатор пользователя role (Role): Роль пользователя, определяющая уровень доступа

Примеры:
>>> from cloudpub_python_sdk import Acl, Role
>>> acl = Acl(user="admin@example.com", role=Role.ADMIN)
>>> acl = Acl(user="viewer@example.com", role=Role.READER)
role
user
class cloudpub_python_sdk.Auth

Bases: object

Перечисление типов аутентификации для защиты публикуемых сервисов

Определяет метод аутентификации, который будет использоваться для доступа к сервису.

Варианты:

NONE: Без аутентификации, открытый доступ BASIC: HTTP Basic аутентификация (логин/пароль) FORM: Аутентификация через веб-форму

Примеры:
>>> from cloudpub_python_sdk import Auth
>>> auth = Auth.BASIC  # Использовать Basic аутентификацию
>>> auth = Auth.NONE   # Открытый доступ без аутентификации
BASIC = Auth.BASIC
FORM = Auth.FORM
NONE = Auth.NONE
exception cloudpub_python_sdk.AuthenticationError

Bases: CloudPubError

exception cloudpub_python_sdk.CloudPubError

Bases: Exception

exception cloudpub_python_sdk.ConfigError

Bases: CloudPubError

class cloudpub_python_sdk.Connection(config_path=None, log_level=Ellipsis, verbose=False, token=None, email=None, password=None)

Bases: object

Python-обёртка для клиента CloudPub

clean()

Очистить (удалить) все зарегистрированные сервисы

Исключения:

CloudPubError: Если очистка не удалась

get(key)

Получить значение конфигурации

Аргументы:

key: Ключ конфигурации

Возвращает:

str: Значение конфигурации

Исключения:

ConfigError: Если получение конфигурации не удалось

logout()

Выйти и очистить сохранённый токен

Исключения:

ConfigError: Если сохранение конфигурации не удалось

ls()

Получить список всех зарегистрированных сервисов

Возвращает:

list[ServerEndpoint]: Список зарегистрированных конечных точек

Исключения:

CloudPubError: Если получение списка не удалось

options()

Получить все опции конфигурации

Возвращает:

dict: Словарь пар ключ-значение конфигурации

ping()

Пропинговать сервер и измерить время отклика

Возвращает:

int: Задержка пинга в микросекундах

Исключения:

CloudPubError: Если пинг не удался

publish(protocol, address, name=None, auth=None, acl=None, headers=None, rules=None)

Опубликовать сервис (зарегистрировать и запустить)

Аргументы:

protocol (Protocol): Используемый протокол address (str): URL, адрес сокета, порт или путь к файлу. Для RTSP с аутентификацией используйте формат: rtsp://user:pass@host:port/path name (str, опционально): Имя сервиса auth (Auth, опционально): Тип аутентификации acl (list[Acl], опционально): Список контроля доступа для фильтрации IP headers (list[Header], опционально): HTTP-заголовки для добавления в ответы rules (list[FilterRule], опционально): Правила фильтрации для фильтрации запросов

Возвращает:

ServerEndpoint: Опубликованная конечная точка

Исключения:

CloudPubError: Если публикация не удалась

purge()

Очистить директорию кэша

Исключения:

CloudPubError: Если очистка не удалась

register(protocol, address, name=None, auth=None, acl=None, headers=None, rules=None)

Зарегистрировать сервис на сервере

Аргументы:

protocol (Protocol): Используемый протокол address (str): URL, адрес сокета, порт или путь к файлу. Для RTSP с аутентификацией используйте формат: rtsp://user:pass@host:port/path name (str, опционально): Имя сервиса auth (Auth, опционально): Тип аутентификации acl (list[Acl], опционально): Список контроля доступа для фильтрации IP headers (list[Header], опционально): HTTP-заголовки для добавления в ответы rules (list[FilterRule], опционально): Правила фильтрации для фильтрации запросов

Возвращает:

ServerEndpoint: Зарегистрированная конечная точка

Исключения:

CloudPubError: Если регистрация не удалась

set(key, value)

Установить значение конфигурации

Аргументы:

key: Ключ конфигурации value: Значение конфигурации

Исключения:

ConfigError: Если установка конфигурации не удалась

start(guid)

Запустить публикацию по GUID

Аргументы:

guid: GUID сервиса для запуска

Исключения:

CloudPubError: Если запуск не удался

stop(guid)

Остановить публикацию по GUID

Аргументы:

guid: GUID сервиса для остановки

Исключения:

CloudPubError: Если остановка не удалась

unpublish(guid)

Отменить публикацию (отменить регистрацию) сервиса по GUID

Аргументы:

guid: GUID сервиса для отмены публикации

Исключения:

CloudPubError: Если отмена публикации не удалась

exception cloudpub_python_sdk.ConnectionError

Bases: CloudPubError

class cloudpub_python_sdk.FilterAction

Bases: object

Перечисление действий фильтра для Python

ALLOW = FilterAction.ALLOW
DENY = FilterAction.DENY
LOG = FilterAction.LOG
REDIRECT = FilterAction.REDIRECT
class cloudpub_python_sdk.FilterRule(data, action_type, action_value=None, order=0)

Bases: object

Правило фильтрации для управления доступом к сервису

Определяет правила обработки входящих запросов на основе различных критериев. Правила применяются в порядке, определённом полем order. Поддерживает сложные выражения с использованием переменных, операторов сравнения и логических операторов.

Атрибуты:

data (str): Выражение фильтра с использованием переменных и операторов action_type (FilterAction): Действие при совпадении правила action_value (str, optional): Дополнительное значение для действия (например, URL для редиректа) order (int): Порядок применения правила (по умолчанию 0)

Доступные переменные:
  • ip.src, ip.dst: IP-адреса источника и назначения

  • port.src, port.dst: Порты источника и назначения

  • protocol: Протокол (“tcp”, “udp”, “http”)

  • http.host, http.path, http.method: HTTP-поля

  • http.headers[“Name”]: HTTP-заголовки

  • geo.country, geo.region, geo.city, geo.code: Геолокация

Примеры:
>>> from cloudpub_python_sdk import FilterRule, FilterAction
>>> # Блокировать конкретный IP-адрес
>>> rule1 = FilterRule(data='ip.src == 192.168.1.100', action_type=FilterAction.DENY)
>>> # Разрешить доступ только из локальной сети
>>> rule2 = FilterRule(data='ip.src >= 192.168.1.0 and ip.src <= 192.168.1.255',
...                    action_type=FilterAction.ALLOW)
>>> # Заблокировать доступ к админке
>>> rule3 = FilterRule(data='http.path matches "^/admin.*"', action_type=FilterAction.DENY)
>>> # Перенаправить старый путь на новый
>>> rule4 = FilterRule(data='http.path == "/old-api"', action_type=FilterAction.REDIRECT,
...                    action_value="/api/v2", order=1)
>>> # Разрешить только GET-запросы к API
>>> rule5 = FilterRule(data='http.method == "GET" and http.path starts_with "/api/"',
...                    action_type=FilterAction.ALLOW)
>>> # Геофильтрация - разрешить только из определённых стран
>>> rule6 = FilterRule(data='geo.code == "US" or geo.code == "CA"',
...                    action_type=FilterAction.ALLOW)
action_type
action_value
data
order
class cloudpub_python_sdk.Header(name, value)

Bases: object

HTTP-заголовок для добавления в ответы сервера

Позволяет добавлять пользовательские HTTP-заголовки к ответам публикуемого сервиса. Полезно для настройки CORS, кэширования, безопасности и других HTTP-параметров.

Атрибуты:

name (str): Имя заголовка (например, “X-Custom-Header”) value (str): Значение заголовка

Примеры:
>>> from cloudpub_python_sdk import Header
>>> header = Header(name="X-Custom-Id", value="12345")
>>> cors_header = Header(name="Access-Control-Allow-Origin", value="*")
name
value
class cloudpub_python_sdk.Protocol

Bases: object

Перечисление протоколов для публикации сервисов

Определяет тип протокола, который будет использоваться для доступа к публикуемому сервису. Каждый протокол имеет свои особенности конфигурации и использования.

Примеры:
>>> from cloudpub_python_sdk import Protocol
>>> protocol = Protocol.HTTP  # Для HTTP-сервисов
>>> protocol = Protocol.TCP   # Для TCP-сокетов
HTTP = Protocol.HTTP
HTTPS = Protocol.HTTPS
MINECRAFT = Protocol.MINECRAFT
ONEC = Protocol.ONEC
RTSP = Protocol.RTSP
TCP = Protocol.TCP
UDP = Protocol.UDP
WEBDAV = Protocol.WEBDAV
class cloudpub_python_sdk.Role

Bases: object

Перечисление ролей для Python

ADMIN = Role.ADMIN
NOBODY = Role.NOBODY
READER = Role.READER
WRITER = Role.WRITER
class cloudpub_python_sdk.ServerEndpoint

Bases: object

Представление ServerEndpoint для Python

error
guid
remote_addr
remote_port
remote_proto
status
url

Классы

Connection

class cloudpub_python_sdk.Connection(config_path=None, log_level=Ellipsis, verbose=False, token=None, email=None, password=None)

Bases: object

Python-обёртка для клиента CloudPub

clean()

Очистить (удалить) все зарегистрированные сервисы

Исключения:

CloudPubError: Если очистка не удалась

get(key)

Получить значение конфигурации

Аргументы:

key: Ключ конфигурации

Возвращает:

str: Значение конфигурации

Исключения:

ConfigError: Если получение конфигурации не удалось

logout()

Выйти и очистить сохранённый токен

Исключения:

ConfigError: Если сохранение конфигурации не удалось

ls()

Получить список всех зарегистрированных сервисов

Возвращает:

list[ServerEndpoint]: Список зарегистрированных конечных точек

Исключения:

CloudPubError: Если получение списка не удалось

options()

Получить все опции конфигурации

Возвращает:

dict: Словарь пар ключ-значение конфигурации

ping()

Пропинговать сервер и измерить время отклика

Возвращает:

int: Задержка пинга в микросекундах

Исключения:

CloudPubError: Если пинг не удался

publish(protocol, address, name=None, auth=None, acl=None, headers=None, rules=None)

Опубликовать сервис (зарегистрировать и запустить)

Аргументы:

protocol (Protocol): Используемый протокол address (str): URL, адрес сокета, порт или путь к файлу. Для RTSP с аутентификацией используйте формат: rtsp://user:pass@host:port/path name (str, опционально): Имя сервиса auth (Auth, опционально): Тип аутентификации acl (list[Acl], опционально): Список контроля доступа для фильтрации IP headers (list[Header], опционально): HTTP-заголовки для добавления в ответы rules (list[FilterRule], опционально): Правила фильтрации для фильтрации запросов

Возвращает:

ServerEndpoint: Опубликованная конечная точка

Исключения:

CloudPubError: Если публикация не удалась

purge()

Очистить директорию кэша

Исключения:

CloudPubError: Если очистка не удалась

register(protocol, address, name=None, auth=None, acl=None, headers=None, rules=None)

Зарегистрировать сервис на сервере

Аргументы:

protocol (Protocol): Используемый протокол address (str): URL, адрес сокета, порт или путь к файлу. Для RTSP с аутентификацией используйте формат: rtsp://user:pass@host:port/path name (str, опционально): Имя сервиса auth (Auth, опционально): Тип аутентификации acl (list[Acl], опционально): Список контроля доступа для фильтрации IP headers (list[Header], опционально): HTTP-заголовки для добавления в ответы rules (list[FilterRule], опционально): Правила фильтрации для фильтрации запросов

Возвращает:

ServerEndpoint: Зарегистрированная конечная точка

Исключения:

CloudPubError: Если регистрация не удалась

set(key, value)

Установить значение конфигурации

Аргументы:

key: Ключ конфигурации value: Значение конфигурации

Исключения:

ConfigError: Если установка конфигурации не удалась

start(guid)

Запустить публикацию по GUID

Аргументы:

guid: GUID сервиса для запуска

Исключения:

CloudPubError: Если запуск не удался

stop(guid)

Остановить публикацию по GUID

Аргументы:

guid: GUID сервиса для остановки

Исключения:

CloudPubError: Если остановка не удалась

unpublish(guid)

Отменить публикацию (отменить регистрацию) сервиса по GUID

Аргументы:

guid: GUID сервиса для отмены публикации

Исключения:

CloudPubError: Если отмена публикации не удалась

ServerEndpoint

class cloudpub_python_sdk.ServerEndpoint

Bases: object

Представление ServerEndpoint для Python

error
guid
remote_addr
remote_port
remote_proto
status
url

Перечисления

Protocol

class cloudpub_python_sdk.Protocol

Bases: object

Перечисление протоколов для публикации сервисов

Определяет тип протокола, который будет использоваться для доступа к публикуемому сервису. Каждый протокол имеет свои особенности конфигурации и использования.

Примеры:
>>> from cloudpub_python_sdk import Protocol
>>> protocol = Protocol.HTTP  # Для HTTP-сервисов
>>> protocol = Protocol.TCP   # Для TCP-сокетов

Доступные протоколы:

  • HTTP - Протокол HTTP

  • HTTPS - Протокол HTTPS с SSL/TLS

  • TCP - Прямой TCP сокет

  • UDP - UDP датаграммный сокет

  • ONEC - Протокол 1С

  • MINECRAFT - Протокол сервера Minecraft

  • WEBDAV - Протокол WebDAV

  • RTSP - Протокол потоковой передачи в реальном времени

HTTP = Protocol.HTTP
HTTPS = Protocol.HTTPS
MINECRAFT = Protocol.MINECRAFT
ONEC = Protocol.ONEC
RTSP = Protocol.RTSP
TCP = Protocol.TCP
UDP = Protocol.UDP
WEBDAV = Protocol.WEBDAV

Auth

class cloudpub_python_sdk.Auth

Bases: object

Перечисление типов аутентификации для защиты публикуемых сервисов

Определяет метод аутентификации, который будет использоваться для доступа к сервису.

Варианты:

NONE: Без аутентификации, открытый доступ BASIC: HTTP Basic аутентификация (логин/пароль) FORM: Аутентификация через веб-форму

Примеры:
>>> from cloudpub_python_sdk import Auth
>>> auth = Auth.BASIC  # Использовать Basic аутентификацию
>>> auth = Auth.NONE   # Открытый доступ без аутентификации

Типы аутентификации:

  • NONE - Аутентификация не требуется

  • BASIC - Базовая HTTP аутентификация

  • FORM - Аутентификация на основе форм

BASIC = Auth.BASIC
FORM = Auth.FORM
NONE = Auth.NONE

Role

class cloudpub_python_sdk.Role

Bases: object

Перечисление ролей для Python

Роли пользователей для контроля доступа:

  • NOBODY - Нет доступа

  • ADMIN - Полный административный доступ

  • READER - Доступ только для чтения

  • WRITER - Доступ для чтения и записи

ADMIN = Role.ADMIN
NOBODY = Role.NOBODY
READER = Role.READER
WRITER = Role.WRITER

FilterAction

class cloudpub_python_sdk.FilterAction

Bases: object

Перечисление действий фильтра для Python

Действия правил фильтрации:

  • ALLOW - Разрешить подключение

  • DENY - Запретить подключение

  • REDIRECT - Перенаправить на другой URL

  • LOG - Записать подключение в лог

ALLOW = FilterAction.ALLOW
DENY = FilterAction.DENY
LOG = FilterAction.LOG
REDIRECT = FilterAction.REDIRECT

Классы данных

Acl

class cloudpub_python_sdk.Acl(user, role)

Bases: object

Запись списка контроля доступа (ACL) для управления правами пользователей

Определяет права доступа конкретного пользователя к публикуемому сервису. Используется для тонкой настройки безопасности на уровне пользователей.

Атрибуты:

user (str): Email или идентификатор пользователя role (Role): Роль пользователя, определяющая уровень доступа

Примеры:
>>> from cloudpub_python_sdk import Acl, Role
>>> acl = Acl(user="admin@example.com", role=Role.ADMIN)
>>> acl = Acl(user="viewer@example.com", role=Role.READER)
role
user

FilterRule

class cloudpub_python_sdk.FilterRule(data, action_type, action_value=None, order=0)

Bases: object

Правило фильтрации для управления доступом к сервису

Определяет правила обработки входящих запросов на основе различных критериев. Правила применяются в порядке, определённом полем order. Поддерживает сложные выражения с использованием переменных, операторов сравнения и логических операторов.

Атрибуты:

data (str): Выражение фильтра с использованием переменных и операторов action_type (FilterAction): Действие при совпадении правила action_value (str, optional): Дополнительное значение для действия (например, URL для редиректа) order (int): Порядок применения правила (по умолчанию 0)

Доступные переменные:
  • ip.src, ip.dst: IP-адреса источника и назначения

  • port.src, port.dst: Порты источника и назначения

  • protocol: Протокол (“tcp”, “udp”, “http”)

  • http.host, http.path, http.method: HTTP-поля

  • http.headers[“Name”]: HTTP-заголовки

  • geo.country, geo.region, geo.city, geo.code: Геолокация

Примеры:
>>> from cloudpub_python_sdk import FilterRule, FilterAction
>>> # Блокировать конкретный IP-адрес
>>> rule1 = FilterRule(data='ip.src == 192.168.1.100', action_type=FilterAction.DENY)
>>> # Разрешить доступ только из локальной сети
>>> rule2 = FilterRule(data='ip.src >= 192.168.1.0 and ip.src <= 192.168.1.255',
...                    action_type=FilterAction.ALLOW)
>>> # Заблокировать доступ к админке
>>> rule3 = FilterRule(data='http.path matches "^/admin.*"', action_type=FilterAction.DENY)
>>> # Перенаправить старый путь на новый
>>> rule4 = FilterRule(data='http.path == "/old-api"', action_type=FilterAction.REDIRECT,
...                    action_value="/api/v2", order=1)
>>> # Разрешить только GET-запросы к API
>>> rule5 = FilterRule(data='http.method == "GET" and http.path starts_with "/api/"',
...                    action_type=FilterAction.ALLOW)
>>> # Геофильтрация - разрешить только из определённых стран
>>> rule6 = FilterRule(data='geo.code == "US" or geo.code == "CA"',
...                    action_type=FilterAction.ALLOW)
action_type
action_value
data
order

Исключения

CloudPubError

exception cloudpub_python_sdk.CloudPubError

Bases: Exception

Базовое исключение для всех ошибок CloudPub SDK.

AuthenticationError

exception cloudpub_python_sdk.AuthenticationError

Bases: CloudPubError

Возникает при сбое аутентификации или неверных учетных данных.

ConnectionError

exception cloudpub_python_sdk.ConnectionError

Bases: CloudPubError

Возникает при сбое подключения к серверу CloudPub.

ConfigError

exception cloudpub_python_sdk.ConfigError

Bases: CloudPubError

Возникает при сбое операций конфигурации.