ГОСТ Р ИСО/МЭК 17826-2015
8.2 Создание объекта данных с использованием типа содержимого CDMI
8.2.1 Обзор
Для создания нового объекта данных следует выполнить запрос:
PUT <root URI>/<ContainerName>/<DataObjectNamo>
Создание нового объекта по ID. см. 9.9.
где:
- <root URI> путь к облаку CDMI.
- <ContainerName> неотрицательное число промежуточных уже существующих контейнеров, с
наклонной чертой «/», разделяющей каждую пару контейнеров.
- <DataObjectName> имя создаваемого объекта данных.
После создания к объекту можно обращаться как <root URI>/cdmi_objectid/<objectlD>.
8.2.2 Отложенное завершение создания
В ответ на операцию создания объекта сервер может вернуть код 202 Accepted, указывающий
на то. что объект находится в стадии создания. Этот ответ полезен в случае длительных операций
(например, копирование большого объекта данных из URI источника). Этот ответ имеет следующие
последствия:
- сервер вернет заголовок Location с URI создаваемого объекта вместе с кодом HTTP 202
Accepted;
- код 202 Accepted от сервера означает, что были пройдены следующие проверки:
- пользователь авторизован создавать объект;
- пользователь авторизован считывать любые источники, которые должны быть скопированы,
перемещены, сериализованы или десериализованы
- доступно достаточно места для создания объекта, или, по крайней мере, достаточно места,
чтобы создать URI и сообщение об ошибке.
- Клиент, возможно, не сможет немедленно обратиться к создаваемому объекту, например, из-за
задержек вследствие использования в данной реализации целостности в конечном итоге.
Клиент выполняет операции GET по указанному URI для отслеживания хода выполнения опера
ции. В ответ сервер возвращает два поля в теле сообщения-ответа, указывающие на состояние про
цесса:
- обязательное текстовое поле completionStatus содержит «Processing». «Complete», либо со
общение об ошибке, начинающееся с «Error»;
- опциональное поле percentComplete, содержащее процент выполнения операции (от 0 до 100).
GET не должен возвращать никакого значения в объект, если его статус не completionStatus =
«Complete». Если конечный результат операции создания - ошибка, то создается URI с полем
completionStatus, содержащим сообщение об ошибке. Удаление URI после обнаружение ошибки - обя
занность клиента.
8.2.3 Опции
Следующие опции перечисляют операции, которые могут выполняться при создании нового объ
екта данных:
- поддержка функции создания нового объекта данных обозначена наличием в родительском
контейнере опции cdmi_create_dataobject;
- если создаваемый объект - ссылка в родительском контейнере, поддержка этой функции обо
значена наличием в родительском контейнере опции cdmi_create_reference;
- если новый объект должен быть копией существующего объекта, поддержка этой функции обо
значена наличием в родительском контейнере опции cdmi_copy_dataobject;
- если создаваемый объект - результат перемещения существующего объекта, поддержка этой
функции обозначена наличием в родительском контейнере опции cdmi_move_dataobject.
- если создаваемый объект - результат операции десериализации исходного объекта, поддержка
этой функции обозначена наличием в родительском контейнере опции cdmi_deserialize_dataobject,
- если новый объект - результат операции сериализации, поддержка этой функции обозначе
на присутствием в родительском контейнере опций cdmi_serialize_dataobject, cdmi_serialize_container,
cdmi_serialize_.domain или cdmi_serialize_queue.
20