HTTP API
Загрузка файлов для полей вложений и таблиц файлов поддерживает обработку через HTTP API. В зависимости от используемого хранилища для вложений или таблицы файлов применяются разные способы вызова.
Загрузка на сервер
Для встроенных в проект хранилищ с открытым исходным кодом, таких как S3, OSS и COS, HTTP API использует тот же механизм, что и загрузка через пользовательский интерфейс: все файлы загружаются через сервер. Для вызова API необходимо передать JWT-токен, основанный на входе пользователя, в заголовке Authorization, иначе доступ будет отклонён.
Поле вложений
Для ресурса таблицы вложений (attachments) выполняется операция create, запрос отправляется методом POST, а двоичное содержимое загружается через поле file. После вызова файл будет загружен в хранилище по умолчанию.
Чтобы загрузить файл в другое хранилище, можно указать хранилище, настроенное для поля соответствующей таблицы, с помощью параметра attachmentField (если оно не настроено, файл будет загружен в хранилище по умолчанию).
Таблица файлов
При загрузке в таблицу файлов запись о файле создаётся автоматически. Для ресурса таблицы файлов выполняется операция create, запрос отправляется методом POST, а двоичное содержимое загружается через поле file.
При загрузке в таблицу файлов указывать хранилище не требуется: файл будет загружен в хранилище, настроенное для этой таблицы.
Загрузка с клиента
Для хранилищ, совместимых с S3 и предоставляемых коммерческим плагином S3-Pro, загрузка через HTTP API выполняется в несколько этапов.
Поле вложений
-
Получение информации о хранилище
Для таблицы хранилищ (
storages) выполняется операцияgetBasicInfoс указанием идентификатора пространства хранения (storage name), чтобы получить сведения о конфигурации хранилища.Пример возвращаемых сведений о конфигурации хранилища:
-
Получение предварительно подписанных данных поставщика
Для ресурса
fileStorageS3выполняется операцияcreatePresignedUrl. Запрос отправляется методом POST, в body передаются сведения о файле, после чего возвращаются данные для предварительно подписанной загрузки.Примечание:
- name: имя файла
- size: размер файла (в байтах)
- type: MIME-тип файла, см. Распространённые MIME-типы
- storageId: идентификатор хранилища (поле
id, возвращённое на первом шаге) - storageType: тип хранилища (поле
type, возвращённое на первом шаге)
Пример данных запроса:
Структура полученных предварительно подписанных данных выглядит следующим образом:
-
Загрузка файла
Используйте возвращённый
putUrlдля отправки запросаPUTи загрузите файл в body.Примечание:
- putUrl: поле
putUrl, возвращённое на предыдущем шаге - file_path: путь к локальному файлу, который необходимо загрузить
Пример данных запроса:
- putUrl: поле
-
Создание записи о файле
После успешной загрузки для ресурса таблицы вложений (
attachments) выполняется операцияcreate. Запрос отправляется методом POST для создания записи о файле.Описание зависимостей данных в data-raw:
- title: поле
fileInfo.title, возвращённое на предыдущем шаге - filename: поле
fileInfo.key, возвращённое на предыдущем шаге - extname: поле
fileInfo.extname, возвращённое на предыдущем шаге - path: по умолчанию пустое значение
- size: поле
fileInfo.size, возвращённое на предыдущем шаге - url: по умолчанию пустое значение
- mimetype: поле
fileInfo.mimetype, возвращённое на предыдущем шаге - meta: поле
fileInfo.meta, возвращённое на предыдущем шаге - storageId: поле
id, возвращённое на первом шаге
Пример данных запроса:
- title: поле
Таблица файлов
Первые три шага аналогичны загрузке для поля вложений, но на четвёртом шаге необходимо создать запись о файле. Для ресурса таблицы файлов выполняется операция create, запрос отправляется методом POST, а сведения о файле передаются в body.
Описание зависимостей данных в data-raw:
- title: поле
fileInfo.title, возвращённое на предыдущем шаге- filename: поле
fileInfo.key, возвращённое на предыдущем шаге- extname: поле
fileInfo.extname, возвращённое на предыдущем шаге- path: по умолчанию пустое значение
- size: поле
fileInfo.size, возвращённое на предыдущем шаге- url: по умолчанию пустое значение
- mimetype: поле
fileInfo.mimetype, возвращённое на предыдущем шаге- meta: поле
fileInfo.meta, возвращённое на предыдущем шаге- storageId: поле
id, возвращённое на первом шагеПример данных запроса:

