Общие сведения

Для получения содержимого объектного или файлового хранилища данных используется операция Download.

В описаниях запросов, приведенных ниже, параметр baseURL это адрес публикации HTTP-сервиса ПередачаДанных в информационной базе, к которой происходит обращение. Например, a/sbm/hs/dt.

Требования

Для вызова операции Download пользователю, от имени которого происходит обращение к HTTP-сервису, должна быль назначена роль УдаленныйДоступ.

Получение содержимого объектного хранилища

Запрос

GET {{baseURL}}/storage/{Storage}/{ID}

Параметры URL

Параметр URL

Допустимое значение

Описание

StorageПроизвольноеИмя объектного хранилища, данные из которого необходимо получить.
IDОпределяется хранилищемИдентификатор данных, которые необходимо получить из объектного хранилища.

Заголовки

Имя

Значение

Описание

IBSessionstart

Система 1С:Предприятие создает новый сеанс, выполняет аутентификацию, устанавливает разделители, выполняются все необходимые обработчики событий. Если система не может создать новый сеанс, то клиент получит ошибку 406 Not Acceptable. Если создание сеанса выполнено успешно, в HTTP-ответ помещается директива установить cookie ibsession с идентификатором созданного сеанса: Set-Cookie: ibsession=<ID сеанса>.

Если требуется использовать ранее созданный сеанс, в HTTP-запросе к системе 1С:Предприятие необходимо указать идентификатор ранее созданного сеанса: Cookie: ibsession=<ID сеанса>. Если в запросе указывается идентификатор сеанса, который ранее не создавался или был завершен, клиент получает ошибку 400 Bad Request.

Если в HTTP-запрос не содержит заголовка IBSession, то сеанс создается и завершается при каждом вызове интернет-сервиса.

Если в процессе использования сеанса в HTTP-запросе изменяются значения разделителей или безопасный режим сеанса, то новые параметры игнорируются и сеанс будет использовать те значения, которые были указаны при старте сеанса.

IBSessionfinishСистема 1С:Предприятие завершает сеанс, который указан в запросе, одновременно с командой завершения сеанса: Cookie: ibsession=<ID сеанса>. Завершение сеанса произойдет автоматически, если в этом сеансе не выполнялось никаких действий за время жизни сеанса.

Тело запроса

Данный запрос не требует заполнения тела запроса. Переданная в теле запроса информация игнорируется.

Коды состояния

Код состояния

Представление

Описание

302Found

Данные с идентификатором {ID} найдены в объектном хранилище {Storage}.

400Bad RequestСеанс не создавался или был завершен.
404Not FoundДанные с идентификатором {ID} не найдены в объектном хранилище {Storage}.
406Not AcceptableНе удалось создать новый сеанс.
415Unsupported Media TypeОбъектное хранилище с именем {Storage} не поддерживается.

Пример


Запрос

GET {{baseURL}}/storage/files/7a572a32-1830-11e7-1690-000c29f90f2a

Получение содержимого файлового хранилища

GET {{baseURL}}/volume/{VolumeID}/*

Параметры URL

Параметр URL

Допустимое значение

Описание

VolumeIDПроизвольноеИдентификатор файлового хранилища, данные которого необходимо получить данные.
*ПроизвольноеОтносительное имя файла с путем в файловом хранилище.

Заголовки

Имя

Значение

Описание

IBSessionstart

Система «1С:Предприятие» создает новый сеанс, выполняет аутентификацию, устанавливает разделители, выполняются все необходимые обработчики событий. Если система не может создать новый сеанс, то клиент получит ошибку 406 Not Acceptable. Если создание сеанса выполнено успешно, в HTTP-ответ помещается директива установить cookie ibsession с идентификатором созданного сеанса: Set-Cookie: ibsession=<ID сеанса>.

При требуется использовать ранее созданный сеанс, в HTTP-запросе к системе «1С:Предприятие» необходимо указать идентификатор ранее созданного сеанса: Cookie: ibsession=<ID сеанса>. Если в запросе указывается идентификатор сеанса, который ранее не создавался или был завершен, клиент получает ошибку 400 Bad Request.

Если в HTTP-запрос не содержит заголовка IBSession, то сеанс создается и завершается при каждом вызове интернет-сервиса.

Если в процессе использования сеанса в HTTP-запросе изменяются значения разделителей или безопасный режим сеанса, то новые параметры игнорируются и сеанс будет использовать те значения, которые были указаны при старте сеанса.

IBSessionfinishСистема "1С:Предприятие" завершает сеанс, который указан в запросе, одновременно с командой завершения сеанса: Cookie: ibsession=<ID сеанса>. Завершение сеанса произойдет автоматически, если в этом сеансе не выполнялось никаких действий за время жизни сеанса.

Тело запроса

Данный запрос не требует заполнения тела запроса. Переданная в теле запроса информация игнорируется.

Коды состояния

Код состояния

Представление

Описание

302FoundДанные по пути {*} найдены в файловом хранилище {VolumeID}.
400Bad RequestСеанс не создавался или был завершен.
404Not FoundДанные по пути {*} не найдены в хранилище {VolumeID}.
406Not AcceptableНе удалось создать новый сеанс.
415Unsupported Media TypeФайловое хранилище с идентификатором {VolumeID} не поддерживается.

Пример


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

GET {{baseURL}}/volume/Volume1/path1/path2/path3/filename.extension

HTTP-ответ

Возвращает 302 Found, перенаправляющий на адрес получения данных. Для получения данных необходимо перейти по адресу, полученному из поля Location заголовка ответа.

Адрес для скачивания является временным и срок использования ограничен.


Пример ответа

HTTP/1.1 302 Found
Location: {{baseURL}}/download/64a4b0a5d86a9a37a8c05de318e6d4fde5fb4b78494272b985802499d48c31bb
Set-Cookie: ibsession=<ID сеанса>.
Accept-Ranges: bytes

Получение диапазона

Чтобы получить часть данных необходимо использовать HTTP-заголовок Range в соответствии с RFC 2616.

Обратите внимание, что заголовок Range необходимо добавить к HTTP-запросу после получения перенаправления 302 Found.

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

GET {{baseURL}}/download/64a4b0a5d86a9a37a8c05de318e6d4fde5fb4b78494272b985802499d48c31bb
Cookie: ibsession=<ID сеанса>.
Range: bytes=0-1023

Возвращает 206 Partial Content с запрошенным диапазоном данных. 
Если диапазон не может быть получен, заголовок Range будет проигнорирован, и будет получен ответ 200 Success  с полным содержимым данных.

Пример ответа

HTTP/1.1 206 Partial Content
Content-Range: bytes 0-1023/2048
<первые 1024 байта данных>