# API управление файлами домена

## Публичный канал интеграции

&#x20;Настраивается в Web-интерфейсе администрирования. Тип канала - **Публичный**.\
&#x20;Признак "Разрешить работу с файлами через этот публичный канал" должен быть включен.

![](https://998883843-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MBugD3PIZvmw6JbYwCi%2F-MJ6Q5RNLA2OXdeX89po%2F-MJ6S8NW-M1OLtJc6Cn-%2F2020-10-08_12-03-55.jpg?alt=media\&token=2ddd45a8-33c9-4d1d-b800-8d56b0816c60)

## API управления

\
\
Внешние системы должны обращаться на адрес http(s)://fqdn\_ws\_role/api/token/v1/{token}/files/{command}

* **fqdn\_ws\_role** - адрес URL роли WS (Веб-сервера управления)
* **{token}** - значение локального токена из созданного публичного канала
* **{command}** - команда управления (описаны ниже)

## Команды управления

### Загрузка файлов в домен

#### upload

![](https://998883843-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MBugD3PIZvmw6JbYwCi%2F-MMZcrQo93by6O55zmqt%2F-MM_Yt6UUGCM2XuM4zNB%2F2020-11-20_15-08-11.jpg?alt=media\&token=ed023a85-dc07-4537-9003-9e1391ba8fbf)

&#x20;http(s)://fqdn\_ws\_role/api/token/v1/{token}/files/upload\
&#x20;Метод - POST\
&#x20;Content-Type - multipart/form-data\
&#x20;Body -  Form\
\[File] = выберите файл\
\
В ответе json приходит результат загрузки файла. \
\
Успешный ответ содержит "resultcode": 0, "resultmsg": "OK". \
\
Пример успешного ответа:

```
{ "resultcode": 0,
 "resultmsg": "OK",
 "data":{
 "upload":[
  { "name": "205-a10-02.zip", 
  "res": "ok" 
  } 
  ] 
  } 
  } 
```

Неуспешный ответ содержит код ошибки и ее описание.

&#x20;Пример неуспешного ответа:

```
{ 
 "resultcode": 1501,
  "resultmsg": "Not enough free disk space"
 }
```

&#x20;

### Скачивание файла в браузере.

#### download

![](https://998883843-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MBugD3PIZvmw6JbYwCi%2F-MJ1_KnPUh1H4tJkXUv0%2F-MJ1gE3zOSd7J9jZtRAo%2F2020-10-07_13-52-12.jpg?alt=media\&token=15c48d27-ef61-4332-a7ca-4a4d2194dae9)

&#x20;http(s)://fqdn\_ws\_role/api/token/v1/{token}/files/download?file={filename}

&#x20;Метод - GET\
{filename} - имя файла для скачивания

### Получение списка файлов.&#x20;

#### list

![](https://998883843-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MBugD3PIZvmw6JbYwCi%2F-MJ1_KnPUh1H4tJkXUv0%2F-MJ1gRLeeyf7xMj7ZdwG%2F2020-10-07_13-53-13.jpg?alt=media\&token=8a73d93c-d86f-427a-84ae-4a74d28d1493)

&#x20;http(s)://fqdn\_ws\_role/api/token/v1/{token}/files/list

Метод - GET

&#x20;В ответе json с полным списком файлов следующего вида

```
{
 "resultcode": 0,
  "resultmsg": "OK",
   "data": { "files": [ 
   {
    "file": {
     "name": "205-a10-02.zip"
    }
     },
      { 
      "file": {
       "name": "queue_wait_sgk.mp3" 
       }
      }
    ] 
  } 
}
```

### &#x20;Удаление файла.

#### delete

![](https://998883843-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MBugD3PIZvmw6JbYwCi%2F-MJ1_KnPUh1H4tJkXUv0%2F-MJ1glZ42RBd3jTsRVoX%2F2020-10-07_13-54-39.jpg?alt=media\&token=7a89f016-6ffa-44dd-9db1-708f95b5a9e9)

&#x20;http(s)://fqdn\_ws\_role/api/token/v1/{token}/files/delete?file={filename}<br>

Метод - GET\
{filename} - имя файла для удаления

Хранение файла и получение доступа из сценариев Файл хранится в директории **fsync** домена в поддиректории **/data/tokens/**.

Пример ...**/syncfolder/domains/domain.demo.axatell/data/tokens/205-a10-02.zip**\
Для получения доступа к файлу в IVR/SVC сценарии можно через формирования пути к файлу следующего вида:

путь = syn\_domain()\
файл = tokens/205-a10-02.zip

&#x20;Пример получения файла в Выражениях Сценария:

&#x20;makepath(syn\_domain(),"tokens/002.mp3")

* 002.mp3- имя файла
* tokens - константа имени каталога
