Файлы (Files)

Ресурс File — для скачивания загруженных файлов.

Скачать файл

URL: {domain}/api/v1/files/{fileId}

Метод: GET

Параметры:

  • fileId: (number) — идентификатор файла

Прикрепление файла к записи

Файлы, прикрепленные к записям могут быть прикреплены 2 способами:

  • Прикрепление внешнего файла — файл хранится на внешнем источнике, запись в каталоге содержит файл-ссылку на реальный файл на внешнем источнике.

  • Загрузка файла в хранилище — файл загружается и хранится в файловом хранилище Bpium, к записи в каталоге прикрепляется ссылка на файл в файлом хранилище Bpium.

Прикрепление ссылки на внешней файл

Чтобы прикрепить ссылку на внешний файл к записи каталога, нужно создать/сохранить запись каталога, указав ссылку на файл и его параметры в поле типа «Файл». Пример:

{
    "values": {
        "16": [{ // поле файл
            "title": "bpium_logo.png", // название файла
            "src": "https://..." // ссылка на файл
            "size": "8513", // размер файла
            "mimeType": "image/png" // MIME-тип файла
        }]
    }
}

Подробнее по работе с полями записей в статье «Записи (Records)».

Загрузка файла в файловое хранилище Bpium

Загрузка файла и прикрепление к записи ссылки на него происходит в несколько этапов:

1. Получение ключей доступа к хранилищу

Необходимо выполнить POST-запрос к ресурсу файл, для создания файла:

URL: {domain}/api/v1/files/

Метод: POST

Параметры:

  • fileId: (number) — идентификатор файла

Параметры запроса (JSON):

{
    "catalogId": "38", // ID каталога с записью, к которой будет прикреплен файл
    "recordId": "123", // ID записи, к которой будет прикреплен файл. Если для новой записи, то параметр должен отсутствовать
    "fieldId": "2", // ID поля каталога
    "name": "favicon16_drugmedia.png", // имя файла
    "size": 2900, // размер файла
    "mimeType": "image/png", // MIME-тип файла
    "typeStorage": "remoteStorage" // обязательный параметр
}

2. Загрузка файла в хранилище

Необходимо выполнить POST-запрос к хранилищу файлов:

URL: {uploadUrl из предыдущего запроса}

Метод: POST

Параметры запроса:

key="fileKey из предыдущего запроса"&
acl="private"&
AWSAccessKeyId="AWSAccessKeyId из предыдущего запроса"&
Policy="police(!!!, не policy) из предыдущего запроса"&
Signature="signature из предыдущего запроса"&
Content-Type="mimeType файла"&
file=бинарное содержимое загружаемого файла

Обратите внимание на параметр Content-Type: multipart/form-data. Он должен обязательно присутствовать в запросе.

3. Подтверждение загрузки файла

Необходимо отправить запрос серверу API о том, что файл загружен.

URL: {domain}/api/v1/files/{fileId из ответа 1-го запроса}

Метод: PATCH

Параметры запроса (body/JSON):

{
	"fileId": Number, // ID созданного файла
	"name": String, // имя файла
	"size": Number, // размер файла
	"mimeType": String, // MIME-тип файла
	"url": String // путь к файлу в хранилище
}

4. Прикрепление файла к записи

После загрузки файла, он появится в системе и файлом хранилище, но не будет связан с записью каталога и её полем анкеты, пока не будет сохранена эта запись. Чтобы сохранить запись, нужно сделать запрос к API Бипиума на сохранение записи:

Пример запроса:

{
    "values": {
        "16": [{ // поле файл
            "id": 531 // ID созданного файла из запроса шага 1
        }]
    }
}

Подробнее по работе с полями записей в статье «Записи (Records)».

Last updated