Работа с файлами
Передача файлов через File Service
При передаче файлов от/к пользователю используется микросервис File Service. На него файлы загружаются в зашифрованном виде методом uploadFile и могут быть скачаны по запросу SmartApp frontend методом openFile.
Проксирование файлов из КСПД
Если файл из КСПД должен стать частью веб страницы SmartApp frontend (например, видео в плеере), подход с передачей файлов через file_service не работает. Для этой задачи существует вариант передачи файлов через SmartAppProxy.
Примечание
Передача файлов через SmartAppProxy доступна только в SmartApp без кеширования и с проксированием.
Настройка хостов SmartAppProxy на CTS
Примечание
Данная инструкция актуальна для сборки сервера CTS 3.4 или выше.
-
В settings.yaml CTS добавьте:
smartapp_proxy_enabled: true smartapp_proxy_env_override: COOKIE_KEY: _file_service_key COOKIE_SIGNING_SALT: <salt из file_service или vm5ponDZ вшитый дефолт>
-
Выполните деплой:
$ dpl -p $ dpl -d smartapp_proxy admin
-
В разделе "SmartApp" консоли администратора CTS в блоке "Настройки хостов SmartAppProxy":
- в поле Host ID введите произвольный набор из латинских букв и цифр. Этот ID является элементом URL к проксируемому файлу;
- в поле Host введите URL ресурса, с которого будут запрашиваться файлы.
-
Нажмите "Создать".
Доработки в SmartApp frontend
Файлы с проксируемого ресурса будут доступны по адресу:
https://<cts_host>/api/v1/smartapp_proxy/<host_id>/<path_file>
Например, чтобы показать в плеере https://express.ms/upload/video1.mp4, в HTML размещаем следующий код:
<video src=”https://cts01.example.com/api/v1/smartapp_proxy/zgubb4kz4xvqgcwi/upload/video1.mp4” />
где zgubb4kz4xvqgcwi — данные поля Host ID (см. инструкцию "Настройка хостов SmartAppProxy на CTS").