Сервис контентов

Сервис контентов предназначен для загрузки и скачивания файлов.

С помощью методов сервиса можно загрузить и скачать контент частями по 64 МБ. При этом сервис позволяет загружать большие файлы отчетов, можно работать с контентами до 30 ГБ. Каждому контенту присваивается свой идентификатор content-id.

Если нужно передать один и тот же файл в нескольких методах, его не нужно загружать повторно. Для этого в методах загрузки и получения контента черновиков, документооборотов в соответствующих моделях можно указать идентификатор контента content-id.

Все документы, которые появляются в документообороте, будут иметь в модели параметр content-id. Это означает, что все документы от контролирующего органа также будут доступны для скачивания в сервисе контентов.

Как это работает

Загружаем файл в сервис контентов

  1. Если документ больше 64 МБ, разбиваем на части по 64 МБ.

  2. Вызываем метод POST Upload. Для загрузки контента необходимо передать заголовок Content-Range.

  3. Догружаем части контента методом PUT UploadByParts.

    Части контента не обязательно грузить в порядке очередности. Но в итоге все части контента должны быть переданы.

  4. Передаем идентификатор контента в нужном методе, например, добавление документа в черновик.

Пример запроса загрузки контента

Запрос

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"
}

Скачиваем файл из сервиса контентов

  1. Получаем документ в черновике или документообороте.

  2. Берем значение параметра content-id.

  3. Запрашиваем контент: 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"?>
    <Файл/>
        ...
    </Файл>