Перейти к содержанию

Работа с файлами

Передача файлов через File Service

При передаче файлов от/к пользователю используется микросервис File Service. На него файлы загружаются в зашифрованном виде методом uploadFile и могут быть скачаны по запросу SmartApp frontend методом openFile.

Проксирование файлов из КСПД

Если файл из КСПД должен стать частью веб страницы SmartApp frontend (например, видео в плеере), подход с передачей файлов через file_service не работает. Для этой задачи существует вариант передачи файлов через SmartAppProxy.

Примечание

Передача файлов через SmartAppProxy доступна только в SmartApp без кеширования и с проксированием.

Настройка хостов SmartAppProxy на CTS

Примечание

Данная инструкция актуальна для сборки сервера CTS 3.4 или выше.

  1. В settings.yaml CTS добавьте:

    smartapp_proxy_enabled: true
    smartapp_proxy_env_override:
    COOKIE_KEY: _file_service_key
    COOKIE_SIGNING_SALT: <salt из file_service или vm5ponDZ вшитый дефолт>
    
  2. Выполните деплой:

    $ dpl -p
    $ dpl -d smartapp_proxy admin
    
  3. В разделе "SmartApp" консоли администратора CTS в блоке "Настройки хостов SmartAppProxy":

    Рисунок_1

    • в поле Host ID введите произвольный набор из латинских букв и цифр. Этот ID является элементом URL к проксируемому файлу;
    • в поле Host введите URL ресурса, с которого будут запрашиваться файлы.
  4. Нажмите "Создать".

Доработки в 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").