Национальный стандарт республики казахстан



страница11/33
Дата20.11.2016
Размер4.62 Mb.
Просмотров6927
Скачиваний0
1   ...   7   8   9   10   11   12   13   14   ...   33

8.8.8 Пример
ПРИМЕР Удаление объекта данных URI:
DELETE /MyContainer/MyDataObject.txt

HTTP/1.1 Host: cloud.example.com

X-CDMI-Specification-Version: 1.0.2

Ниже приведен ответ.

HTTP/1.1 204 No Content


8.9 Удаление объекта данных с помощью типа контента не-CDMI
8.9.1 Краткий обзор
Чтобы удалить существующий объект данных, осуществляется следующий запрос:

DELETE //



Где:

это путь к CDMI облако.. это ноль или более промежуточных контейнеров. это имя удаляемого объекта данных.

Объект также должен быть доступен на /cdmi_objectid/.

8.9.2 Возможность
Следующие возможности описывают поддерживаемые операции, которые могут выполняться при удалении существующего объекта данных:

Поддержка возможности удалить существующий объект данных указывается наличием возможности cdmi_delete_dataobject в указанном объекте.
8.9.3 Заголовки запросов
Заголовки запросов могут быть предоставлены в соответствии со RFC 2616.

8.9.4 Текст сообщения запроса
Текст сообщения запроса может быть обеспечен в соответствии со RFC 2616.
8.9.5 Заголовки ответов
Заголовки ответов могут быть предоставлены в соответствии со RFC 2616.
8.9.6 Текст сообщения ответа
Текст сообщения ответа может быть предоставлен в соответствии со RFC 2616.
8.9.7 Статус ответа
Таблица 30 описывает коды состояния HTTP, которые происходят при удалении объекта данных, используя тип содержимого не-CDMI.
Таблица 30 - Коды статуса HTTP- Удаление объекта данных CDMI используя тип содержимого не-CDMI

Статус HTTP

Описание

204 Содержание отсутствует

Объект данных был успешно удален.

400 Неверный запрос

Запрос содержит недопустимые параметры или имена полей.

401 Несанкционирован

Полномочия аутентификации отсутствуют или недействительны.

403 Запрещен

Пользователю не хватает надлежащего разрешения на выполнение этого запроса.

404 Не найден

Ресурс не был найден в указанном URI.

409 Конфликт

Операция конфликтует с замком протокола доступа не-CDMI или может привести к ошибке перехода на сервере или объекты данных не могут быть удалены.


8.9.8 Пример
ПРИМЕР Удаление URI-адреса объекта данных:
DELETE /MyContainer/MyDataObject.txt

Host: cloud.example.com
Ниже приведен ответ.

HTTP/1.1 204 No Content
9 Контейнер объектов ресурсов операций
9.1 Обзор
Объекты контейнеров являются основными группировками сохраненных данных в CDMI и аналогичны каталогам в файловой системе. Каждый объект-контейнер имеет ноль или более дочерних объектов и набор четко определенных областей, которые включают стандартизированные и дополнительные метаданные. Метаданные генерируются системой хранения облака и задается пользователем облака.

Контейнеры рассматриваются в CDMI двумя способами:

  • по имени (например, http://cloud.example.com/container/); и

  • по идентификатору объекта (например, http://cloud.example.com/cdmi_objectid/ 0000706D0010B84FAD185C425D8B5 37E.

Каждый объект-контейнер имеет один глобально-уникальный идентификатор объекта, который остается постоянным в течение жизни объекта. Каждый объект-контейнер может также иметь один или несколько адресов URI, которые позволяют объекту-контейнеру быть доступным. В соответствии с соглашениями URI для иерархических путей, контейнерные URI, должны состоять из одного или нескольких контейнерных имен, разделенных косой чертой ("/"), и конец с косой чертой ("/").

Если запрос выполняется в отношении существующего контейнерного ресурса и слэш в конце URI пропущен, сервер должен ответить кодом состояния HTTP 301 Moved Permanentl, и заголовок Location содержащий URI, косая черта будет добавлена.

Если для создания нового ресурса контейнера выполняется запрос CDMI и слэш в конце URI задан, сервер отвечает кодом состояния HTTP 400 Ошибочный Запрос.

Не-CDMI запросы для создания контейнера ресурсов должна включать слэш в конце URI; в противном случае запрос рассматривается запрос для создания объекта данных.

Номера для CDMI просит создать контейнер ресурс должен включать слэш в конце URI; в противном случае, запрос будет рассмотрен как запрос для создания объектов данных.

Контейнеры также могут быть вложенными

ПРИМЕР 1 Следующий URI представляет собой вложенный контейнер:

http://cloud.example.com/container/subcontainer/



Вложенный контейнер имеет родительский объект контейнера, будут включены в поле Дети родительского объекта контейнера, и наследуют метаданные системы данных и списков управления доступом от родительского контейнера.

Эта модель позволяет прямое отображение CDMI управляемой хранилищем облако и файловыми системами (например, NFSv4 или WebDAV). Если объект-контейнер CDMI экспортируется в файловой системе, то файловая система может сделать метаданные CDMI доступные через системы конкретных механизмов файлов. Как создаются файлы и каталоги в файловой системе, они становятся видимым через интерфейс CDMI, действующего в качестве канала передачи данных. Сопоставление между файловой системой конструкции и данных объектов CDMI, контейнерные объекты и метаданные выходят за рамки этого международного стандарта.

Отдельные поля в объекте контейнера могут быть доступны, указав имя поля после вопросительного знака "?", добавляется к концу объекта контейнера URI.

ПРИМЕР 2 Следующий URI возвращает только поля детей в тексте сообщения ответа:

http://cloud.example.com/container/?children



Указав диапазон после имени поля-дочерние, конкретные диапазоны -дети могут быть доступны.

ПРИМЕР 3 Следующий URI возвращает первых троих дочерних из полей:

http://cloud.example.com/container/7children: 0-2

Диапазоны указываются таким образом, что похож на диапазон байтов в соответствии с разделом 14.35.1 RFC 2616. Клиент может определить количество присутствующих детей, запросив поле childrenrange без запроса диапазона детей.

Список полей, разделенных точкой с запятой ";" могут быть использованы, позволяя нескольким полям, быть доступным в одном запросе.

ПРИМЕР 4 Следующий URI вернет детей и полей метаданных в тексте сообщения ответа:

http://cloud.example.com/container/?children;metadata



Когда клиент предоставляет или включает в себя десериализацию полей, которые не определены в данном международном стандарте, эти поля должны быть сохранены как часть объекта.
9.1.1 Метаданные контейнера
Могут предоставляться следующие необязательные данные системы метаданных (см. Табл.31).
Таблица 31 - Метаданные контейнера

Имя метаданных

Тип

Описание

Требование

cdmi_assignedsize

JSON строка

Количество байтов, которые сообщаются через экспортируемые протоколы (например, устройство может быть тонкой подготовки). Это число может ограничить cdmi_size.

Необязательное


Контейнер метаданных могут также включать произвольные пользовательские метаданные и метаданные системы данных, как описано в пункте 16.
9.1.2 Названия зарезервированых контейнеров
Этот международный стандарт определяет зарезервированные имена контейнеров, которые не должны быть использованы при создании новых контейнеров. Эти имена контейнеров зарезервированы для использования этого международного стандарта, и если делается попытка создать или удалить их, HTTP-400 Bad Request код результата, должны быть возвращены клиенту.

Имена зарезервированых контейнеров включают в себя: cdmi_objectid,

cdmi_domains,

cdmi_capabilities,

cdmi_snapshots, and

cdmi_versions.

В будущих версиях этого международного стандарта могут быть добавлены дополнительные имена, реализация сервера должна предотвратить создание пользовательских контейнеров, если имя контейнера начинается с "cdmi_".
9.1.3 Контейнер объектов адресации
Каждый объект контейнера решается через один или более уникальный URI и все операции могут выполняться через любой из этих URI. Например, объект-контейнер может быть доступен через несколько виртуальных хостинг путей, где http://cloud.example.com/users/snia/cdmi/ также доступны через HTTP: // snia.example.com/cdmi

Конфликтующие записи через различные пути осуществляется таким же образом, что конфликтующие записи через один путь управляются через принцип возможного соответствия (см. 9.2).
9.1.4 Объект представления контейнера
Представления в этой статье отображаются, используя нотации JSON. Оба клиенты и серверы должны поддерживать UTF-8 представление JSON. Текст сообщения запроса и ответа в поля JSON может быть определен или возвращен в любом порядке, за исключением того, если они присутствуют, для объекта контейнера, поля childrenrange и поля-дети должны появляться в прошлом, и в таком порядке.
9.2 Создание объекта контейнера, с помощью типа содержимого CDMI
9.2.1 Краткий обзор
Чтобы создать новый объект контейнера, осуществляется следующий запрос:

PUT ///

Где:

<root URI>это путь к CDMI облако.

<ContainerName>ноль или более промежуточных объектов контейнера, которые уже существуют, с одной косой чертой (i.e.,"/") между каждой парой имен объектов контейнера.

<NewContainerName>это имя, указанное для создаваемого объекта контейнера.

После его создания, объект контейнера, также должен быть доступен на /cdmi_objectid//.
9.2.2 Отложенное завершение создания
В ответ на операцию создания для объекта контейнера, сервер может возвращать 202 Accepted для обозначения, что объект находится в процессе создания. Этот ответ является полезным для длительных операций (например, десериализации объекта источника данных для создания большого объекта иерархии контейнера). Такой ответ имеет следующие последствия.

Сервер должен вернуть объект вместе с кодом состояния HTTP 202 Accepted, необходимо создать заголовок Location с помощью URI.

С 202 Accepted сервер предполагает, что прошли следующие проверки:

- авторизация пользователя для создания объекта контейнера;

- авторизация пользователя для доступа на чтение любого объекта источника для перемещения, копирования, сериализации, или десериализации; и

- наличие пространства для создания объекта контейнера или, по крайней мере, достаточного места, для создания URI, чтобы сообщить об ошибке.

Клиент не сможет немедленно получить доступ созданному объекту, например, из-за задержки в результате использования данной реализации в последующей последовательности.

Клиент выполняет GET операции к URI для отслеживания прогресса действии. В ответ на это сервер возвращает два поля в тексте сообщения ответа, указывая прогресс.

Обязательное текстовое поле completionStatus содержит либо "Processing", "Complete", или строку ошибки начиная с величины "Error".

Дополнительное поле PercentComplete содержит процент, что принято PUT завершил (от 0 до 100). GET не возвращает детей к объекту контейнера, когда completionStatus не "Complete".

Когда окончательным результатом операции создания является ошибкой, URI создается с полем completionStatus устанавливая сообщение об ошибке. Это ответственность клиента, чтобы удалить URI после замеченной ошибки.
9.2.3 Возможности
Следующие возможности описания поддерживаемых операций, которые могут быть выполнены при создании нового объекта контейнера:

  • Поддержка способности, чтобы создать новый объект-контейнер обозначается наличием возможности cdmi_create_container в объекте родительского контейнера.

  • Если объект созданный в родительском объекта контейнера является ссылкой, поддержка этой способности указывает наличие способности cdmi_create_reference в родительском объекте контейнера.

  • Если новый объект контейнер это копия существующего объекта контейнера, поддержка возможность копировать указывается наличием способности cdmi_copy_container в объекте родительского контейнера.

  • Если новый объект контейнер назначения движения, поддержка способности, чтобы переместить объект-контейнер обозначается наличием возможности cdmi_move_container в объекте родительского контейнера.

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


9.2.4 Заголовки запросов
Заголовки запросов HTTP для создания объекта контейнера CDMI, используя тип содержимого CDMI, приведены в таблице 32.
Таблица 32 - Заголовки запросов - Создание объекта контейнера, с помощью типа содержимого CDMI

Заголовок

Тип

Описание

Требование

Принимать

Заголовок строки

"Применение /CDMI-контейнер" или последовательное значение в соответствии с п. 5.13.2

Необязательное

Тип содержимого

Заголовок строки

"application/cdmi-container"

"Применение / CDMI-контейнер"

Обязательное

X-CDMI-Спецификация-Версия

Заголовок строки

Разделенных запятыми список версий, поддерживаемых клиентом, например, "1.0.2, 1.5, 2.0"

Обязательное


9.2.5 Текст сообщения запроса
Текст поля запроса сообщения для создания объекта контейнера, с помощью содержимого типа CDMI приведены в таблице 33

Таблица 33 - Текст сообщения запроса - Создание объекта контейнера, с помощью типа содержимого CDMI (лист 1 из 2)

Имя поля

Тип

Описание

Требование

Метаданные

JSON объект

Метаданные для объекта контейнера

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

• Если это поле не входит при десериализации, сериализации, копировании или перемещение объекта контейнера, должны использоваться метаданные из источника URI.

• Если это поле включено при создании нового объекта контейнера, указав значение, значение приводимые в этом поле должны быть использованы в качестве метаданных.

• Если это поле не входит при создании нового объекта контейнера, указав значение, пустой объект JSON (т.е., "{}"), то должны быть назначены в качестве значения поля.

• Это поле не должно быть включено при ссылке на объект контейнера.

Необязательное

aТолько один из этих полей должен быть указан в любой данной операции. За исключением значения, эти поля не должны быть сохранены. Если более чем одно из этих полей поставляется, сервер должен ответить с ответом об ошибке 400 Неверный запрос.


Таблица 33 - Текст сообщения запроса - Создание объекта контейнера, с помощью типа содержимого CDMI (лист 2 из 2)

Имя поля

Тип

Описание

Требование

Домен URI

JSON строка

URI владелец домена

Если отличается от родительского домена, пользователь имеет привилегию cross_domain (см. cdmi_member_privileges в таблице 64).

Если не указано, используется родительский домен.

Необязательное

Экспорт

JSON объект

Структура для каждого протокола, включенного для этого объекта контейнера (см. пункт 13). Это поле не должны быть включены при ссылке на объект контейнера.

Необязательное

Десериализовать

JSON строка

URI объекта сериализованных данных CDMI, должен быть десериализован для создания нового объекта контейнера, включая все дочерние объекты внутри источника сериализации данных объекта (см. пункт 15).

При десериализации объекта контейнера, любые экспортированные протоколы от исходного сериализованного объекта контейнера не применяются к объектам вновь созданного контейнера.

Необязательное

Копия

JSON строка

URI объекта контейнера CDMI, который должны быть скопирован в новый объект контейнера, включая все дочерние объекты контейнера объекта источника.При копировании объекта контейнера, экспортируемые протоколы не сохраняются в копии.

Необязательное

Перемещение

JSON строка

URI существующего локального или удаленного CDMI объекта контейнера (исходный URI), должен быть перемещен, вместе со всеми дочерними объектами, на URI, указанный в PUT. Содержимое объекта контейнера и все исходные, включая идентификатор объекта, должны быть сохранены путем перемещения и объект контейнера и все исходные URI должны быть удалены после того, как были успешно созданы объекты в месте назначения.

Если есть недостаточно разрешений для чтения объектов в исходном URI, написать объекты на целевой URI, или удалить объекты в исходном URI, или если любой из этих операций дадут сбой, перемещение вернется к 400 Неверный запрос и источник и назначение остаются неизменными.

Необязательное

Ссылка

JSON строка

URI объекта контейнера CDMI, который должен быть перенаправлен ссылкой. Если другие поля задаются при создании ссылки, сервер должен ответить с кодом состояния HTTP 400 Неверный запрос.

Необязательное

Значение десериализации

JSON строка

Объект контейнера кодируется с использованием кодировки base64 кодирования правила, описанные в RFC 4648 как указано в пункте 15. Идентификатор объекта, сериализованного объекта контейнера должно соответствовать идентификатору объекта назначения объекта-контейнера.

Необязательное

aТолько одно из этих полей указываются в любой конкретной операции. За исключением значения эти поля не должны храниться.Если более чем одно из этих полей поставляется, сервер должен дать ответ об ошибке с 400 Неверный запрос.


Каталог: sites -> default -> files
files -> Методические рекомендации по проведению Дня Знаний, посвященного Году кино в РФ
files -> Блестящие будущие возможности в сфере икт для нового поколения женщин
files -> Ларцева А. 1 Перевод имен собственных на примере книги ховарда рейнголда
files -> Занятие №18 Здравствуйте, участники программ личностного развития для детей!
files -> Программа кружка «Юный журналист»
files -> Шелакина А. А. Студентка 2 курса атп 921 ппк сгту имени Гагарина Ю. А
files -> Культурного и природного наследия имени д. С. Лихачева
files -> Участники регионального отборочного Чемпионата профессионального мастерства по методике WorldSkills «WorldSkills Russia Иркутск 2016» по компетенции: 21 PlasteringandDrywallSystems – Сухое строительство и штукатурные работы 25 27
files -> Семинар «использование квест- технологии в обучении английскому языку»


Поделитесь с Вашими друзьями:
1   ...   7   8   9   10   11   12   13   14   ...   33


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал