Медиа библиотека сервера
Плагин Медиа библиотека сервера позволяет сохранять, организовывать и использовать элементы контента (в основном, любые файлы, включая медиафайлы, такие как изображения и видео) в SberMobile. Элементы организованы в иерархии папок, и к каждой из них можно получить доступ с помощью URI, определяемого структурой папок и именем хоста сервера SberMobile. Помимо использования в качестве типичных переменных единой модели данных, доступ к ресурсам Медиа библиотеки сервера может осуществляться через HTTP API, например, из компонентов Инструментальной панели SberMobile.
API медиа библиотеки сервера и REST API - это отдельные плагины, для которых требуются разные токены аутентификации. Хотя в каждом плагине есть метод Кроме того, команды REST имеют формат пути |
Конфигурация
Свойства конфигурации библиотеки.
Описание поля | Тип | Подробности |
Разрешить анонимный доступ | Boolean | Когда этот параметр включен, содержимое будет обрабатываться независимо от того, прошел ли запрашивающий аутентификацию. Когда этот параметр отключен, содержимое будет обрабатываться только для тех, кто прошел аутентификацию. Особенно применимо в случае, когда Права доступа для анонимного пользователя включены. |
Список файлов
Папки и ресурсы в Медиа библиотеке сервера определяются как записи в таблице со следующими полями:
Описание поля | Тип | Подробности |
Тип | String | Указывает, является ли данная сущность
|
Имя | String | Имя файла или папки. URI вызова API для извлечения ресурса будет основан на этом поле и полях имени родительской папки или папок. |
Содержимое директории | Data Table | Вложенная таблица данных, доступная для строк типа |
Файл | Data Block | Блок данных, доступный для строк типа |
Тип содержимого | String | Доступно для строк типа |
Режим кэширования | String | Заголовок HTTP, определяющий инструкции для кэширования клиентов в соответствии с RFC 7234 Режим кэширования.
|
Использование REST API медиа библиотеки сервера
Запрос файла
Получает ресурс из библиотеки.
Запрос
GET /content/file/<Путь к файлу>/<Имя файла>
Путь к файлу - имена каталогов в порядке возрастания глубины, разделенные символом
/
.Имя файла - имя файла, указанное в поле Имя таблицы конфигурации.
Поля заголовка запроса
Авторизация - текущий токен аутентификации. Дополнительные сведения об аутентификации см. в разделе Аутентификация.
Тело ответа
Зависит от типа содержимого запрашиваемого ресурса.
Пример запроса
Запрос:
GET https://localhost:8080/content/file/text_directory/text_file.txt
Пример ответа
Текст содержимого файла
Пример использования медиа библиотеки сервера
Добавление содержимого
Пример ниже включает две строки, одна из которых настроена как текстовый файл, а другая - как папка. Файл example_text.txt
содержит текстовые данные, а папка plants
содержит подтаблицу с изображением flower_picture.png
.
Тип | Имя | Содержимое директории | Файл | Тип содержимого | Режим кэширования |
---|---|---|---|---|---|
Файл | text.txt | Null | example_text.txt | text/plain | Public |
Директория | plants |
| <Нет данных> | Н/Д | Public |
Подтаблица
Тип | Название | Содержимое директории | Файл | Тип содержимого | Режим кэширования |
---|---|---|---|---|---|
Файл | flower.png | Null | flower_picture.png | image/png | Public |
Аутентификация
Все запросы к библиотеке должны быть полностью аутентифицированы, то есть содержать токен, сгенерированный из запроса на авторизацию.
Пример использования cURL в командной строке Linux выглядит следующим образом:
curl --request POST 'http://localhost:8080/web/v1/public/auth' \
--header 'Content-Type: application/json' \
--data-raw '{"username":"admin","password":"admin"}'
Ответ
{
"token": "eyJhbGciOiJIUzI1NiJ9.dCI6MTY3NDIxMDg1NywiaXNzIjoiY29tLnRpYmJvLmxpbmtzZXJ2ZXIuc...",
"simpleMode": false,
"existsAdministrationDashboard": false,
"accessedAdministrationDashboard": true,
"administrationDashboardPath": "users.admin.dashboards.administration"
}
Параметр token
содержит токен аутентификации.
Команды API
Запрос файла
Для получения текстовых данных из командной строки можно использовать следующий запрос:
curl --request GET 'http://localhost:8080/content/file/text.txt' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.dCI6MTY3NDIxMDg1NywiaXNzIjoiY29tLnRpYmJvLmxpbmtzZXJ2ZXIuc...'
Ответ
Приведенная выше команда вернет значение файла text.txt
:
Текущий пример текста.
Инструментальные панели
Чтобы использовать ресурс в компоненте приборной панели, например в компоненте Image, выберите опцию URL и используйте URI нужного ресурса. В приведенном выше примере, если нужное изображение flowers.png
находится в папке plants/
, то используемый URL будет http://localhost:8080/content/file/plants/flowers.png.
Заменить Активы по умолчанию
Медиа библиотека сервера также может быть использована для замены любого актива, видимого в веб-интерфейсе. В качестве примера можно привести замену стандартных иконок меню SberMobile на соответствующие заданной палитре или изменение шрифта по умолчанию.
Изменение пиктограмм
Предположим, что необходимо заменить стандартную иконку сервера на пользовательскую иконку custom-icon.png
. Ниже показана иконка по умолчанию:
Используйте инструменты разработчика браузера, чтобы определить HTML, который отображает значок:
<img src="/web/static/images/st_server.png" alt="" loading="lazy" draggable="false">
Из этого HTML определите местоположение ресурса, в данном случае web/static/images/st_server.png
.
Добавьте custom-icon.png
в медиа библиотеку сервера, чтобы он отображался для /web/static/images/st_server.png
и заменял иконку по умолчанию. Для этого в Медиа библиотеке сервера должны быть созданы следующие таблицы:
Корневая папка, 'web'
Тип | Имя | Содержимое папки | Файл | Тип содержимого | Режим кэширования |
---|---|---|---|---|---|
Директория | web |
| Н/Д | Н/Д | Public |
Подтаблица 1 (папка ‘static’)
Директория | static |
| Н/Д | Н/Д | Public |
Подтаблица 2 (папка ‘images’)
Директория | images |
| Н/Д | Н/Д | Public |
Подтаблица-3 (Файл)
Файл | st_server.png | Н/Д |
|
| Public |
В результате все ссылки на web/static/images/st_server.png
будут заменены пользовательской иконкой custom-icon.png
.
Настройки шрифтов
Шрифты по умолчанию можно отменить с помощью того же процесса, который описан выше. Используя инструменты разработчика, определите местоположение шрифта по умолчанию. Например, следующая часть файла fonts.css
указывает место хранения шрифтов Roboto-Light:
@font-face {
font-family: 'Roboto';
src: url(/web/static/fonts/Roboto-Light.woff2) format('woff2'),
url(/web/static/fonts/Roboto-Light.woff) format('woff'),
url(/web/static/fonts/Roboto-Light.ttf) format('truetype');
font-weight: 300;
font-style: normal;
font-display: swap;
}
Из вышеуказанного следует, что по умолчанию расположение шрифтов - /web/static/fonts/Roboto-Light.woff2
, с форматом woff2
и так далее. Создайте аналогичную структуру папок и файлов в Медиа библиотеке сервера, ведущую к /web/static/fonts/Roboto-Light.woff2
, подобно тому, как это было описано в разделе " Изменение пиктограмм ".
Корневая папка, 'web'
Тип | Имя | Содержимое директории | Файл | Тип содержимого | Режим кэширования |
---|---|---|---|---|---|
Директория | веб-сайт |
| Н/Д | Н/Д | Public |
Подтаблица 1 ('static' папка)
Директория | статический |
| Н/Д | Н/Д | Public |
Подтаблица 2 (папка ‘fonts’)
Директория | шрифты |
| Н/Д | Н/Д | Public |
Подтаблица-3 (Файл)
Файл | Roboto-Light.woff2 | Н/Д |
|
| Public |
Файл | Roboto-Light.woff | Н/Д |
|
| Public |
Файл | Roboto-Light.ttf | Н/Д |
|
| Public |
Вместо шрифтов по умолчанию будут загружены пользовательские шрифты.