ГОСТ Р ИСО/МЭК 17826-2015
В последующих версиях настоящего стандарта могут быть добавлены новые зарезервированные
имена, поэтому реализации сервера не должны допускать создания пользовательских контейнеров с
именами, начинающимися с «cdmi_>*.
9.1.3 Адресация объекта-контейнера
Каждый контейнер может адресоваться одним или несколькими уникальными URI. и все опера
ции должны выполняться через эти URI. Возможны случаи, когда объект-контейнер может доступен
через несколько виртуальных путей. Например.
http://cloud.example.comyusersfenia/cdmi/
также досту
пен через http.7/snia.example.com/cdmi/. Конфликт записи через разные пути должен регулиро-ваться
аналогично обработке конфликта записи через один и тот же путь, по прин-ципу возможной
связности (см. 9.2).
9.1.4 Представления объекта-контейнера
Представления в данном разделе показаны с использованием нотации JSON. И клиенты, и сер
веры должны поддерживать UTF-8 представление JSON. В телах сообщений-запросов и ответов, поля
JSON могут указываться и возвращаться в лю-бом порядке, за исключением полей childrenrange
и children, которые указываются последними и в данном порядке.
9.2 Создание объокта-контейнора с использованием типа содержимого CDMI
9.2.1 Обзор
Для создания нового объекта-контейнера следует выполнить запрос:
PUT <root URI>/<ContainerName>/<NewContainerName>/
где:
- <root URI> путь к облаку CDMI;
- <ContainerName> неотрицательное число уже существующих объектов-контейнеров, разделен
ных одной наклонной чертой (т.е., «/»):
- <NewContainerName> имя нового создаваемого объекта-контейнера.
После создания, к контейнеру можно обращаться как <root URI>/cdmi_objectid/<objectlD>/.
9.2.2 Отсроченное завершенио создания
В ответ на запрос создания объекта-контейнера, сервер может вернуть код 202 Accepted, что
указывает на то. что объект находится в процессе создания. Это полезно в случае длительных опера
ций (например, десериализации исходного объекта данных для создания сложной иерархии объектов).
Такой ответ означает, что:
- сервер должен вернуть заголовок Location, содержащий URI к создавае-мому объекту со стату
сом HTTP 202 Accepted;
- статус 202 Accepted со стороны сервера удостоверяет, что были пройдены несколько про
верок:
- пользователь авторизован для создания нового объекта-контейнера;
- пользователь авторизован для чтения любого исходного объекта, ко-торый необходимо пере
местить. скопировать, сериализовать или десериализовать;
- достаточно места для создания объекта-контейнера или, по крайней мере, достаточно места
для создания URI к сообщению об ошибке.
Клиент может не иметь опции немедленно обратиться к созданному объекту, например, из-за за
держек. вызванных использованием реализацией целостности а конечном итоге.
Для отслеживания процесса создания клиент выполняет операции GET к URI. В ответ сервер воз
вращает два поля в теле сообщения-ответа, которые описывают текущее состояние:
- обязательное текстовое поло completionStatus содержит «Processing#, «Complete», либо строку
сообщения об ошибке, начинающуюся с «Error»:
- опциональное поле percentComplete содержит процент выполнения приня-того запроса PUT
(от 0 ло 100). GET не возвращает объектов-потомков контейнера, если completionStatus не равно
«Complete».
Если создание объекта завершается с ошибкой, создается URI. а поле comple-tionStatus уста
навливается равным сообщению об ошибке. Удаление URI после об-работки ошибки возлагается на
клиента.
41