Справочник 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
- Протокол HTTPHTTPS
- Протокол HTTPS с SSL/TLSTCP
- Прямой TCP сокетUDP
- UDP датаграммный сокетONEC
- Протокол 1СMINECRAFT
- Протокол сервера MinecraftWEBDAV
- Протокол WebDAVRTSP
- Протокол потоковой передачи в реальном времени
- 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
- Перенаправить на другой URLLOG
- Записать подключение в лог
- 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
Header
- 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
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
Возникает при сбое операций конфигурации.