Методы работы с файлами
На этой странице представлены основные методы API для работы с файлами в системе Brainysoft: загрузка, получение, редактирование, удаление, массовые операции, а также привязка файлов к различным сущностям (клиентам, контрактам, лидам, заявкам) и публичная загрузка файлов.
Методы API работы с файлами
Метод | URL | Описание |
---|---|---|
POST | api/files | Загрузка файла |
GET|HEAD | api/files | Список всех файлов |
GET|HEAD | api/files/{file} | Получить информацию о файле по ID |
PUT|PATCH | api/files/{file} | Редактирование данных файла |
DELETE | api/files/{file} | Удалить файл |
GET|HEAD | api/files/{file}/links | Получить ссылку на файл |
GET|HEAD | api/files/{file}/link-verified-copy | Получить проверенную ссылку на файл |
POST | api/files/batch/links | Получение ссылок на группу файлов (по ID) |
POST | api/files/batch/select | Получение информации по группе файлов |
POST | api/files/entities/clients/{id} | Загрузить файл клиента |
GET|HEAD | api/files/entities/clients/{id} | Получить файлы клиента |
POST | api/files/entities/contracts/{id} | Загрузить файлы контракта |
GET|HEAD | api/files/entities/contracts/{id} | Получить файлы контракта |
POST | api/files/entities/leads/{id} | Загрузить файлы лида |
GET|HEAD | api/files/entities/leads/{id} | Получить файлы лида |
POST | api/files/entities/loan-apps/{id} | Загрузить файлы заявки |
GET|HEAD | api/files/entities/loan-apps/{id} | Получить файлы заявки |
GET|HEAD | api/files/public-uploader | Публичная загрузка файла |
Загрузка файла
POST /api/files
Описание
Метод позволяет загрузить новый файл в систему. Файл передаётся в теле запроса в формате multipart/form-data.
Параметры запроса (query string)
Параметр | Тип | Описание |
---|---|---|
client | integer | Идентификатор клиента, к которому относится файл |
tags | integer | Идентификатор тега, связанных с файлом |
Тело запроса (form-data)
Поле | Тип | Описание |
---|---|---|
file | файл | Загружаемый файл (например, .pdf, .jpg, .png, .gif) |
Пример запроса
POST /api/files?client=3168&tags=5
Content-Type: multipart/form-data
file: image.png
Пример успешного ответа
{
"status": "ok", // Статус выполнения запроса
"timestamp": 1750694475000, // Время ответа (UNIX timestamp, ms)
"data": {
"id": 235 // Уникальный идентификатор файла
}
}
Список всех файлов
GET /api/files
Описание
Метод возвращает список файлов с подробной информацией о каждом файле.
Пример запроса
GET /api/files
Пример успешного ответа
{
"status": "ok", // Статус выполнения запроса
"timestamp": 1750675264000, // Время ответа (UNIX timestamp, ms)
"data": [
{
"id": 234, // Уникальный идентификатор файла
"name": "images.png", // Имя файла
"extension": "png", // Расширение файла
"thumbUrl": "https://fs-stage-svc-stage.brainysoft.ru/web/files/thumb/qat1/234/2e276a16b5219e4e06a5c8070d9a1a0784737062146ad1931633c17d0d7cf736fde4791182d5bd6b65e249c512a5f87e4887f3e935c40c59a7a79da42ed5c224", // URL предпросмотра/миниатюры файла
"userId": 1357, // ID пользователя, загрузившего файл
"connections": {
"lead": null, // ID лида
"client": 3168, // ID клиента
"loanapp": null, // ID заявки на займ
"contract": null, // ID контракта
"collateral": null, // ID залога
"sharecontract": null, // ID договора долевого участия
"depositcontract": null, // ID депозитного контракта
"fundtransaction": null, // ID фондовой транзакции
"comment": null, // ID комментария
"collateralline": null, // ID строки залога
"deal": null, // ID сделки
"extra": [] // Дополнительные связи
},
"createdAt": "2025-06-23T07:36:41+0000", // Дата и время загрузки файла (ISO 8601)
"tags": [ // Список идентификаторов тегов
"2"
],
"size": 3789, // Размер файла в байтах
"sizeForHumans": "4 Kb", // Читаемый размер файла
"ocr": null // Результат OCR-распознавания
}
]
}
Получить информацию о файле по ID
GET /api/files/{file}
Описание
Метод позволяет получить подробную информацию о конкретном файле по его идентификатору.
Параметры запроса
{file}
(integer, обязательный) — уникальный идентификатор файла.
Пример запроса
GET /api/files/233
Пример успешного ответа
{
"status": "ok", // Статус выполнения запроса
"timestamp": 1750186181000, // Время ответа (UNIX timestamp, ms)
"data": [
{
"id": 233, // Уникальный идентификатор файла
"name": "images.png", // Имя файла
"extension": "png", // Расширение файла
"thumbUrl": "https://fs-stage-svc-stage.brainysoft.ru/web/files/thumb/qat1/193/...", // URL предпросмотра/миниатюры файла
"userId": 1357, // ID пользователя, загрузившего файл
"connections": {
"lead": 7315, // ID лида
"client": 3166, // ID клиента
"loanapp": 6755, // ID заявки на займ
"contract": null, // ID контракта
"collateral": null, // ID залога
"sharecontract": null, // ID договора долевого участия
"depositcontract": null, // ID депозитного контракта
"fundtransaction": null, // ID фондовой транзакции
"comment": null, // ID комментария
"collateralline": null, // ID строки залога
"deal": null, // ID сделки
"extra": [] // Дополнительные связи
},
"createdAt": "2025-06-19T11:52:22+0000", // Дата и время загрузки файла (ISO 8601)
"tags": ["9"], // Список идентификаторов тегов
"size": 3789, // Размер файла в байтах
"sizeForHumans": "4 Kb", // Читаемый размер файла
"ocr": null // Результат OCR-распознавания
}
]
}
Редактирование данных файла
PUT/PATCH /api/files/{file}
Описание
Метод позволяет обновить информацию о файле (например, теги, имя, связи с объектами). Для редактирования файла необходимо сначала запросить его с помощью метода "Получить информацию о файле по ID", а затем отправить PATCH/PUT с нужными изменениями.
Параметры запроса
{file}
(integer, обязательный) — уникальный идентификатор файла.
Пример запроса PUT
PUT /api/files/233
Content-Type: application/json
{
"id": 233, // Уникальный идентификатор файла
"name": "images.png", // Имя файла
"extension": "png", // Расширение файла
"thumbUrl": "https://fs-stage-svc-stage.brainysoft.ru/web/files/thumb/qat1/193/...", // URL предпросмотра/миниатюры файла
"userId": 1357, // ID пользователя, загрузившего файл
"connections": {
"lead": 7315, // ID лида
"client": 3166, // ID клиента
"loanapp": 6755, // ID заявки на займ
"contract": null, // ID контракта
"collateral": null, // ID залога
"sharecontract": null, // ID договора долевого участия
"depositcontract": null, // ID депозитного контракта
"fundtransaction": null, // ID фондовой транзакции
"comment": null, // ID комментария
"collateralline": null, // ID строки залога
"deal": null, // ID сделки
"extra": [] // Дополнительные связи
},
"createdAt": "2025-06-19T11:52:22+0000", // Дата и время загрузки файла (ISO 8601)
"tags": ["9", "12"], // Список идентификаторов тегов
"size": 3789, // Размер файла в байтах
"sizeForHumans": "4 Kb", // Читаемый размер файла
"ocr": null // Результат OCR-распознавания
}
Пример успешного ответа
{
"status": "ok", // Статус выполнения запроса
"timestamp": 1750186181000, // Время ответа (UNIX timestamp, ms)
"data": [
{
"id": 233, // Уникальный идентификатор файла
"name": "images.png", // Имя файла
"extension": "png", // Расширение файла
"thumbUrl": "https://fs-stage-svc-stage.brainysoft.ru/web/files/thumb/qat1/193/...", // URL предпросмотра/миниатюры файла
"userId": 1357, // ID пользователя, загрузившего файл
"connections": {
"lead": 7315, // ID лида
"client": 3166, // ID клиента
"loanapp": 6755, // ID заявки на займ
"contract": null, // ID контракта
"collateral": null, // ID залога
"sharecontract": null, // ID договора долевого участия
"depositcontract": null, // ID депозитного контракта
"fundtransaction": null, // ID фондовой транзакции
"comment": null, // ID комментария
"collateralline": null, // ID строки залога
"deal": null, // ID сделки
"extra": [] // Дополнительные связи
},
"createdAt": "2025-06-19T11:52:22+0000", // Дата и время загрузки файла (ISO 8601)
"tags": ["9", "12"], // Список идентификаторов тегов
"size": 3789, // Размер файла в байтах
"sizeForHumans": "4 Kb", // Читаемый размер файла
"ocr": null // Результат OCR-распознавания
}
]
}
Пример запроса PATCH
PATCH /api/files/233
Content-Type: application/json
{
"tags": ["9", "12"]
}
Пример успешного ответа
{
"status": "ok", // Статус выполнения запроса
"timestamp": 1750186181000, // Время ответа (UNIX timestamp, ms)
"data": [
{
"id": 233, // Уникальный идентификатор файла
"name": "images.png", // Имя файла
"extension": "png", // Расширение файла
"thumbUrl": "https://fs-stage-svc-stage.brainysoft.ru/web/files/thumb/qat1/193/...", // URL предпросмотра/миниатюры файла
"userId": 1357, // ID пользователя, загрузившего файл
"connections": {
"lead": 7315, // ID лида
"client": 3166, // ID клиента
"loanapp": 6755, // ID заявки на займ
"contract": null, // ID контракта
"collateral": null, // ID залога
"sharecontract": null, // ID договора долевого участия
"depositcontract": null, // ID депозитного контракта
"fundtransaction": null, // ID фондовой транзакции
"comment": null, // ID комментария
"collateralline": null, // ID строки залога
"deal": null, // ID сделки
"extra": [] // Дополнительные связи
},
"createdAt": "2025-06-19T11:52:22+0000", // Дата и время загрузки файла (ISO 8601)
"tags": ["9", "12"], // Список идентификаторов тегов
"size": 3789, // Размер файла в байтах
"sizeForHumans": "4 Kb", // Читаемый размер файла
"ocr": null // Результат OCR-распознавания
}
]
}
Удалить файл
DELETE /api/files/{file}
Описание
Метод позволяет удалить файл по его идентификатору.
Параметры запроса
{file}
(integer, обязательный) — уникальный идентификатор файла.
Пример запроса
DELETE /api/files/233
Пример успешного ответа
{
"status": "ok", // Статус выполнения запроса
"timestamp": 1750348133000, // Время ответа (UNIX timestamp, ms)
"data": {
"status": "deleted" // Статус удаления файла
}
}
Получить ссылку на файл / проверенную ссылку на файл
GET|HEAD /api/files/{file}/links
GET|HEAD /api/files/{file}/link-verified-copy
Описание
Методы позволяют получить ссылку для скачивания файла по его идентификатору.
/links
— возвращает обычную ссылку на скачивание файла./link-verified-copy
— возвращает ссылку на скачивание проверенной (верифицированной) копии файла, если такая копия доступна.
Параметры запроса
{file}
(integer, обязательный) — уникальный идентификатор файла.
Пример запроса
GET /api/files/234/links
или
GET /api/files/234/link-verified-copy
Пример успешного ответа
{
"status": "ok", // Статус выполнения запроса
"timestamp": 1750690491000, // Время ответа (UNIX timestamp, ms)
"data": {
"download": "https://fs-stage-svc-stage.brainysoft.ru/web/files/download?ac-jar=..." // Ссылка для скачивания файла или проверенной копии
}
}
Получение ссылок на группу файлов (по ID)
POST /api/files/batch/links
Описание
Метод позволяет получить ссылки для скачивания сразу на несколько файлов по их идентификаторам. В ответе возвращается объект, где ключ — ID файла, а значение — объект с ссылкой для скачивания.
Тело запроса (application/json)
Поле | Тип | Описание |
---|---|---|
ids | array[int] | Массив идентификаторов файлов |
Пример запроса
{
"ids": [234, 236, 237] // Массив ID файлов
}
Пример успешного ответа
{
"status": "ok", // Статус выполнения запроса
"timestamp": 1751285233000, // Время ответа (UNIX timestamp, ms)
"data": {
"234": {
"download": "https://fs-stage-svc-stage.brainysoft.ru/web/files/download?..." // Ссылка для скачивания файла с ID 234
},
"236": {
"download": "https://fs-stage-svc-stage.brainysoft.ru/web/files/download?..." // Ссылка для скачивания файла с ID 236
},
"237": {
"download": "https://fs-stage-svc-stage.brainysoft.ru/web/files/download?..." // Ссылка для скачивания файла с ID 237
}
}
}
Получение информации по группе файлов
POST /api/files/batch/select
Описание
Метод позволяет получить подробную информацию сразу по нескольким файлам по их идентификаторам. В ответе возвращается массив объектов файлов с полной структурой, аналогичной методу получения информации о файле по ID.
Тело запроса (application/json)
Поле | Тип | Описание |
---|---|---|
ids | array[int] | Массив идентификаторов файлов |
Пример запроса
{
"ids": [234, 236, 237] // Массив ID файлов
}
Пример успешного ответа
{
"status": "ok", // Статус выполнения запроса
"timestamp": 1751285601000, // Время ответа (UNIX timestamp, ms)
"data": [
{
"id": 234, // Уникальный идентификатор файла
"name": "images.png", // Имя файла
"extension": "png", // Расширение файла
"thumbUrl": "https://...", // URL предпросмотра/миниатюры файла
"userId": 1357, // ID пользователя, загрузившего файл
"connections": {
"lead": null, // ID лида
"client": 3168, // ID клиента
"loanapp": null, // ID заявки на займ
"contract": null, // ID контракта
"collateral": null, // ID залога
"sharecontract": null, // ID договора долевого участия
"depositcontract": null, // ID депозитного контракта
"fundtransaction": null, // ID фондовой транзакции
"comment": null, // ID комментария
"collateralline": null, // ID строки залога
"deal": null, // ID сделки
"extra": [] // Дополнительные связи
},
"createdAt": "2025-06-23T07:36:41+0000", // Дата и время загрузки файла (ISO 8601)
"tags": ["2"], // Список идентификаторов тегов
"size": 3789, // Размер файла в байтах
"sizeForHumans": "4 Kb", // Читаемый размер файла
"ocr": null // Результат OCR-распознавания
}
// ... другие файлы
]
}
Загрузить файл клиента/контракта/лида/заявки
POST /api/files/entities/clients/{id}
- Загрузить файл клиента
POST /api/files/entities/contracts/{id}
- Загрузить файл контракта
POST /api/files/entities/leads/{id}
- Загрузить файл лида
POST /api/files/entities/loan-apps/{id}
- Загрузить файл заявки
Описание
Данные методы позволяют загрузить файл и сразу привязать его к определённой сущности: клиенту, контракту, лиду или заявке. Файл передаётся в теле запроса в формате multipart/form-data.
Параметры запроса
{id}
(integer, обязательный) — уникальный идентификатор соответствующей сущности (клиента, контракта, лида или заявки).
Параметры запроса (query string)
Параметр | Тип | Описание |
---|---|---|
tags | integer | Идентификатор тега, связанных с файлом |
Тело запроса (form-data)
Поле | Тип | Описание |
---|---|---|
file | файл | Загружаемый файл (например, .pdf, .jpg, .png, .gif) |
Пример запроса
POST /api/files/entities/clients/3168?tags=8
Content-Type: multipart/form-data
file: image.png
Пример успешного ответа
{
"status": "ok", // Статус выполнения запроса
"timestamp": 1750696263000, // Время ответа (UNIX timestamp, ms)
"data": {
"id": 237 // Уникальный идентификатор файла
}
}
Получить файлы клиента/контракта/лида/заявки
GET /api/files/entities/clients/{id}
- Получить файл клиента
GET /api/files/entities/contracts/{id}
- Получить файл контракта
GET /api/files/entities/leads/{id}
- Получить файл лида
GET /api/files/entities/loan-apps/{id}
- Получить файл заявки
Описание
Данные методы позволяют получить список всех файлов, связанных с определённой сущностью: клиентом, контрактом, лидом или заявкой. В ответе возвращается массив объектов файлов с подробной информацией о каждом из них.
Параметры запроса
{id}
(integer, обязательный) — уникальный идентификатор соответствующей сущности (клиента, контракта, лида или заявки).
Пример запроса
GET /api/files/entities/clients/3168
Пример успешного ответа
{
"status": "ok", // Статус выполнения запроса
"timestamp": 1750697332000, // Время ответа (UNIX timestamp, ms)
"data": [
{
"id": 223, // Уникальный идентификатор файла
"name": "default_logo.png", // Имя файла
"extension": "png", // Расширение файла
"thumbUrl": "https://fs-stage-svc-stage.brainysoft.ru/web/files/thumb/qat1/223/7a8a2e2296fadf0ea97c701f6edd2d5278ebf278ec2f87520e77687a89f2d59a003a94dd6f84094a682a5f2c3a44c8fd64bbb8f2b2b81098e654687f72f20e06", // URL предпросмотра/миниатюры файла
"userId": 1165, // ID пользователя, загрузившего файл
"connections": {
"lead": null, // ID лида
"client": 3168, // ID клиента
"loanapp": null, // ID заявки на займ
"contract": null, // ID контракта
"collateral": null, // ID залога
"sharecontract": null, // ID договора долевого участия
"depositcontract": null, // ID депозитного контракта
"fundtransaction": null, // ID фондовой транзакции
"comment": null, // ID комментария
"collateralline": null, // ID строки залога
"deal": null, // ID сделки
"extra": [] // Дополнительные связи
},
"createdAt": "2025-06-16T14:40:54+0000", // Дата и время загрузки файла (ISO 8601)
"tags": [ // Список идентификаторов тегов
"14"
],
"size": 6005, // Размер файла в байтах
"sizeForHumans": "6 Kb", // Читаемый размер файла
"ocr": null // Результат OCR-распознавания
},
{
"id": 234, // Уникальный идентификатор файла
"name": "images.png", // Имя файла
"extension": "png", // Расширение файла
"thumbUrl": "https://fs-stage-svc-stage.brainysoft.ru/web/files/thumb/qat1/234/2e276a16b5219e4e06a5c8070d9a1a0784737062146ad1931633c17d0d7cf736fde4791182d5bd6b65e249c512a5f87e4887f3e935c40c59a7a79da42ed5c224", // URL предпросмотра/миниатюры файла
"userId": 1357, // ID пользователя, загрузившего файл
"connections": {
"lead": null, // ID лида
"client": 3168, // ID клиента
"loanapp": null, // ID заявки на займ
"contract": null, // ID контракта
"collateral": null, // ID залога
"sharecontract": null, // ID договора долевого участия
"depositcontract": null, // ID депозитного контракта
"fundtransaction": null, // ID фондовой транзакции
"comment": null, // ID комментария
"collateralline": null, // ID строки залога
"deal": null, // ID сделки
"extra": [] // Дополнительные связи
}
}
]
}
Публичная загрузка файла
GET|HEAD /api/files/public-uploader
Описание
Метод возвращает уникальную публичную ссылку (URL), по которой можно загрузить файл без авторизации. Эта ссылка может быть использована для предоставления возможности загрузки файлов внешним пользователям, интеграциям или сторонним сервисам.
Данный метод используется для пользовательских загрузок не используя bsauth на стороне клиента
Пример запроса
GET /api/files/public-uploader
Пример успешного ответа
{
"status": "ok", // Статус выполнения запроса
"timestamp": 1750757802000, // Время ответа (UNIX timestamp, ms)
"data": {
"url": "https://fs-stage-svc-stage.brainysoft.ru/web/files/public-uploader?ac-jar=tcBASegvBz5QslUbuPx3MbxfovoWmVfYHsBMMXcO7XrUzTowK19PN1RtcyWyKcbcTkCDc6Ui18GWC1XPg8SNPv9nYSXFD0Ekp3SlNcR9ZyptHzeL975HFfTGTOEhtqOlQWIwmdullkvTOr06xJTIRNQWCjto9DS2TFe5bB46gIbGWUzeqasJz8Za6NoTHF7cmxWLUQUsujyYSnmmC6RuLQWKtI0SWucn7mignXyk3HoYqkxxdAgleNdedmzAWCXkCwZl4Fvj7jGmI4v6By4c7ZXrHib3XyFnyJXUtcBHE8ik5TnaRXVwrsdzViiYZ3VbPMd4DnQEbtdPSe4eIp6RvNZMgbjKCkyeR1qJ8ld0gQkg1oKYIXLUSfH672K8Nhb7jFEP7nqg8uCFMQRl0v0hp8o25DrAliTURhuN0ZcEydFDTpUpg6sKFqrzwTzD8qVXe24hvpdh9R3DtSjCXozmDTFIyvYo2RrXHER6pgGrsMYBmEenOWvcLJUH9279a1z6" // Публичная ссылка для загрузки файла
}
}
Описание полей
Поле | Тип | Описание |
---|---|---|
status | string | Статус выполнения запроса |
timestamp | integer | Время ответа (UNIX timestamp, ms) |
data | object/array | Основные данные ответа |
id | integer | Уникальный идентификатор файла |
name | string | Имя файла |
extension | string | Расширение файла |
thumbUrl | string | URL предпросмотра/миниатюры файла |
userId | integer | Идентификатор пользователя |
connections | object | Связи с объектами системы |
lead | integer|null | ID лида |
client | integer|null | ID клиента |
loanapp | integer|null | ID заявки на займ |
contract | integer|null | ID контракта |
collateral | integer|null | ID залога |
sharecontract | integer|null | ID договора долевого участия |
depositcontract | integer|null | ID депозитного контракта |
fundtransaction | integer|null | ID фондовой транзакции |
comment | integer|null | ID комментария |
collateralline | integer|null | ID строки залога |
deal | integer|null | ID сделки |
extra | array | Дополнительные связи |
createdAt | string | Дата и время загрузки файла (ISO 8601) |
tags | array | Список идентификаторов тегов |
size | integer | Размер файла в байтах |
sizeForHumans | string | Читаемый размер (например, 4 Kb ) |
ocr | string|null | Результат OCR-распознавания |
download | string | Ссылка для скачивания файла |
url | string | Публичная ссылка для загрузки файла |