Группы методов для работы с файлами

В API V1 доступна группа методов Файлы Files с методом POST /api/v1/files/{id}/extract, который позволяет извлечь файлы из архива и временно их сохранить в файловом хранилище:

  • По Id файла, в который вложен файл-архив, выполняется запрос разархивации.
  • На выходе возвращается массив, содержащий:
    • Ссылку на скачивание файла архива
    • Имя файла в архиве
    • Путь внутри архива (включая имя файла)
  • Параметр encoding определяет кодировку, которая используется для отображения имен файлов и папок в архиве — если параметр не задан, по умолчанию используется кодировка соответствующая языку аккаунта, указанному в разделе Администрирование — Аккаунт (для русского языка — cp866).

Например, если на инстансе установлен английский язык, а целевой архив содержит в именах кириллицу, необходимо явно передавать кодировку — encoding=cp866. Список поддерживаемых кодировок можно посмотреть по этой ссылке.


  • Скачать файлы по ссылкам можно в течение двух часов (по умолчанию).
  • В файле настроек конфигурации appsettings.json в секции Custom можно задать дополнительные настройки, влияющие на работу этого API (время доступности скачивания файла и директория для хранения файла):
    • Если в архиве содержится хотя бы один файл с запрещенным расширением, отображается ошибка, файлы не извлекаются
    • Поддерживаемое расширение архивов: *.zip (однотомные архивы без пароля)
    • Предусмотрены следующие ограничения по умолчанию: размер архива — 100 Мб, размер файла — 100 Мб, Количество файлов в архиве — 100
Настройки секции Custom:

"Custom": {

 ...

   "ExtractedFileLifetime": "02:00:00", // время жизни извлеченных файлов, по умолчанию 2 часа

   "ExtractedFilesTempDirectory": "/temp_path" // директория для временного хранения извлеченных файлов, по умолчанию не задано, в этом случае используется временная папка пользователя, от имени которого работает приложение

}

"Custom": {

   ...

   "MaxArchiveFileSize": 104857600, // максимальный размер архива в байтах, по умолчанию 100 Мб

   "MaxExtractingFileSize": 104857600, // максимальный размер файла в архиве (без сжатия), по умолчанию 100 Мб

   "MaxExtractingFileCount": 100 // максимальное кол-во файлов в архиве, по умолчанию 100

}

В API V2 доступны группы методов:

  • Загрузка Upload → POST /api/v2/upload — метод позволяет загрузить файл:
    • Принимает те же параметры что и fetch + тип содержимого (текст, base64)
    • Метод скачивает файл по указанному адресу и декодирует его в base64 при необходимости (если в файле двоичные данные)
    • Метод решает кейс по скачиванию бинарных файлов из внешних систем, если нужна их обработка в скриптах, или при необходимости переложить файл из одной внешней системы в другую
    • Накладывает ограничение на размер и расширение файла (ограничения настраиваются в файле конфигурации)
  • Скачивание Download → GET /api/v2/download/{id} — метод позволяет скачать файл:
    • Принимает те же параметры что и fetch + тип содержимого (текст, base64)
    • Метод загружает файл по указанному адресу, конвертируя его из base64 при необходимости
    • Метод решает кейсы по загрузке измененных текстовых файлов и загрузке файлов из внешних base64 источников
    • Накладывает ограничение на размер и расширение файла (ограничения настраиваются в файле конфигурации)
    • Доступно скачать документ вместе с подписью