()
| 14 | from cloudpub_python_sdk import Connection, Protocol, Auth, Role, FilterAction, Acl, Header, FilterRule |
| 15 | |
| 16 | def main(): |
| 17 | print("1. Подключение к серверу") |
| 18 | # Создание соединения с сервером CloudPub |
| 19 | # Для аутентификации должен быть предоставлен либо токен, либо email/пароль |
| 20 | conn = Connection( |
| 21 | "/tmp/cloudpub.toml", # Путь к файлу конфигурации |
| 22 | "info", # Уровень логирования |
| 23 | True, # Выводить логи в stderr |
| 24 | None, # Токен |
| 25 | "admin@example.com", # Email |
| 26 | "test" # Пароль |
| 27 | ) |
| 28 | |
| 29 | # Регистрация нового HTTP сервиса |
| 30 | print("2. Публикация нового HTTP сервиса...") |
| 31 | endpoint = conn.publish( |
| 32 | Protocol.HTTP, # Протокол |
| 33 | "localhost:8080", # Локальный адрес |
| 34 | "Тестовый HTTP сервис", # Имя сервиса |
| 35 | Auth.NONE # Метод аутентификации для доступа к сервису |
| 36 | ) |
| 37 | |
| 38 | print(f" Сервис опубликован: {endpoint.url}") |
| 39 | |
| 40 | print("3. Публикация нового TCP сервиса...") |
| 41 | endpoint = conn.publish( |
| 42 | Protocol.TCP, # Протокол |
| 43 | "localhost:22", # Локальный адрес (пример SSH порта) |
| 44 | "Тестовый TCP сервис", # Имя сервиса |
| 45 | Auth.NONE # Аутентификация не требуется |
| 46 | ) |
| 47 | |
| 48 | print(f" Сервис опубликован: {endpoint.url}") |
| 49 | |
| 50 | # Сохранить GUID для последующих операций |
| 51 | service_guid = endpoint.guid |
| 52 | |
| 53 | # Пример: Публикация RTSP потока со встроенными учетными данными |
| 54 | print("4. Публикация RTSP потока (пример)...") |
| 55 | rtsp_endpoint = conn.publish( |
| 56 | Protocol.RTSP, # Протокол |
| 57 | "rtsp://camera:password@192.168.1.100:554/live/stream1", # RTSP URL с учетными данными |
| 58 | "Камера безопасности", # Имя сервиса |
| 59 | Auth.BASIC # Аутентификация доступа CloudPub |
| 60 | ) |
| 61 | print(f" RTSP поток опубликован: {rtsp_endpoint.url}") |
| 62 | |
| 63 | # Пример: Публикация публичного RTSP потока (без учетных данных) |
| 64 | print("5. Публикация публичного RTSP потока...") |
| 65 | public_rtsp = conn.publish( |
| 66 | Protocol.RTSP, # Протокол |
| 67 | "rtsp://localhost:8554/public", # RTSP URL без учетных данных |
| 68 | "Публичный поток", # Имя сервиса |
| 69 | Auth.NONE # Без аутентификации |
| 70 | ) |
| 71 | print(f" Публичный RTSP опубликован: {public_rtsp.url}") |
| 72 | |
| 73 | print("6. Список сервисов:") |
no test coverage detected