Сервис контентов
Сервис контентов предназначен для загрузки и скачивания файлов.
С помощью методов сервиса можно загрузить и скачать контент частями по 64 МБ. При этом сервис позволяет загружать большие файлы отчетов, можно работать с контентами до 30 ГБ. Каждому контенту присваивается свой идентификатор content-id
.
Если нужно передать один и тот же файл в нескольких методах, его не нужно загружать повторно. Для этого в методах загрузки и получения контента черновиков, документооборотов в соответствующих моделях можно указать идентификатор контента content-id
.
Все документы, которые появляются в документообороте, будут иметь в модели параметр content-id
. Это означает, что все документы от контролирующего органа также будут доступны для скачивания в сервисе контентов.
Как это работает
Загружаем файл в сервис контентов
Если документ больше 64 МБ, разбиваем на части по 64 МБ.
Вызываем метод POST Upload. Для загрузки контента необходимо передать заголовок
Content-Range
.Догружаем части контента методом PUT UploadByParts.
Части контента не обязательно грузить в порядке очередности. Но в итоге все части контента должны быть переданы.
Передаем идентификатор контента в нужном методе, например, добавление документа в черновик.
Пример запроса загрузки контента
Запрос
POST /v1/bd0cd3f6-315d-4f03-a9cc-3507f63265ed/contents HTTP/1.1
Authorization: Bearer <token>
Content-Type: application/octet-stream
Content-Range: bytes 0-100/100
Контент передан в теле запроса
Ответ
HTTP/1.1 201 Created
Content-Type: application/json; charset=utf-8
Content-Length: 100
{
"id": "78b7d042-4f45-459e-bfe7-f1ba21a717b4"
}
Скачиваем файл из сервиса контентов
Получаем документ в черновике или документообороте.
Берем значение параметра
content-id
.Запрашиваем контент: GET Download. В запросе необходимо указать идентификатор контента
content-id
и задать байтовый диапазон части контента в параметреRange
.
Пример запроса получения контента
Запрос
GET /v1/bd0cd3f6-315d-4f03-a9cc-3507f63265ed/contents/78b7d042-4f45-459e-bfe7-f1ba21a717b4 HTTP/1.1
Authorization: Bearer <token>
Content-Type: application/octet-stream
Range: bytes=0-20/100
Ответ
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Content-Length: 21
Content-Range: bytes=0-20/100
<?xml version="1.0" encoding="windows-1251"?>
<Файл/>
...
</Файл>