Создание вложения
Операция Create Attachment
создает вложение для документа.
Запрос
Метод | Универсальный код ресурса (URI) запроса | Описание |
---|---|---|
POST | https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{doc-name}/attachments. | {databaseaccount} — это имя учетной записи Azure Cosmos DB, созданной в вашей подписке. Значение {db-id} — это созданное пользователем имя или идентификатор базы данных, а не системный идентификатор (rid). Значение {coll-id} — это имя коллекции, в котором содержится документ. Значение {doc-name} — это имя документа, связанного с вложением. |
Заголовки
Заголовки, используемые всеми запросами Azure Cosmos DB, см. в статье Общие заголовки запросов REST Azure Cosmos DB .
Заголовок | Обязательно | Тип | Описание |
---|---|---|---|
Slug | Необязательно | Строка | Имя вложения. Это необходимо, только если необработанный носитель отправляется в хранилище вложений Azure Cosmos DB. Дополнительные сведения см. в статье Протокол AtomPub. |
Текст
Свойство | Обязательно | Тип | Описание |
---|---|---|---|
идентификатор | Необязательно | Строка | Не требуется устанавливать при вложении необработанных данных. Это настраиваемое пользователем свойство. Это уникальное имя, которое идентифицирует вложение, т. е. не два вложения имеют одинаковый идентификатор. Длина идентификатора не должна превышать 255 символов. |
contentType | Необязательно | Строка | Не требуется устанавливать при вложении необработанных данных. Это настраиваемое пользователем свойство. Указывает тип содержимого вложения. При отправке битов вложения в виде текста Cosmos DB задает contentType тип, заданный в заголовке Content-Type . |
Носитель | Необязательно | Строка | Не требуется устанавливать при вложении необработанных данных. Это URL-ссылка или путь к файлу, в котором находится вложение. |
{
"id": "image_id",
"contentType": "image/jpg",
"media": "www.bing.com"
}
Ответ
Заголовки
Заголовки, возвращаемые всеми ответами Azure Cosmos DB, см. в статье Общие заголовки ответов REST Azure Cosmos DB .
Коды состояния
В таблице ниже указаны стандартные коды состояния, возвращаемые этой операцией. Полный список кодов состояния см. в разделе Коды состояния HTTP.
Код состояния HTTP | Описание |
---|---|
201 Создано | Операция выполнена успешно. |
400 — недопустимый запрос | Недопустимый текст JSON. Проверьте наличие фигурных скобок и кавычек. |
409. Конфликт | Идентификатор или slug, указанный для нового вложения, был взят существующим вложением. |
413 (Сущность слишком велика) | Размер документа в запросе превышает допустимый размер документа в запросе. |
Текст
Создание вложения приводит к созданию ресурса вложения со следующим текстом ответа:
Свойство | Описание |
---|---|
_Избавить | Это свойство, созданное системой. Идентификатор ресурса (_rid) — это уникальный идентификатор, который также является иерархическим для стека ресурсов в модели ресурсов. Он используется системой для размещения и перемещения по ресурсам вложения. |
_Ts | Это свойство, созданное системой. Оно представляет метку времени последнего обновления ресурса. Значение — метка времени. |
_Самостоятельно | Это свойство, созданное системой. Это уникальный адресуемый URI для ресурса. |
_etag | Это созданное системой свойство, указывающее тег ресурса, необходимый для управления оптимистическим параллелизмом. |
{
"id": "image_id",
"contentType": "image/jpg",
"media": "www.bing.com",
"_rid": "Sl8fALN4sw4CAAAAAAAAAOnTcEc=",
"_ts": 1449606296,
"_self": "dbs\/Sl8fAA==\/colls\/Sl8fALN4sw4=\/docs\/Sl8fALN4sw4CAAAAAAAAAA==\/attachments\/Sl8fALN4sw4CAAAAAAAAAOnTcEc=",
"_etag": "\"060091c2-0000-0000-0000-56673c980000\""
}
Пример
POST https://contosomarketing.documents.azure.com/dbs/volcanodb/colls/volcano1/docs/c3bb1fef-fcb1-56e3-0389-f88583c3ce0d/attachments HTTP/1.1
x-ms-session-token: 16
x-ms-date: Tue, 08 Dec 2015 20:24:56 GMT
authorization: type%3dmaster%26ver%3d1.0%26sig%3dQ8MDtRExrtOeDL5TSaHvXhPTNyKiRrrIC3IjTSpf958%3d
Cache-Control: no-cache
User-Agent: contoso/1.0
x-ms-version: 2015-08-06
Accept: application/json
Host: contosomarketing.documents.azure.com
Cookie: x-ms-session-token=16
Content-Length: 66
Expect: 100-continue
Connection: Keep-Alive
{
"id": "image_id",
"contentType": "image/jpg",
"media": "www.bing.com"
}
HTTP/1.1 201 Created
Cache-Control: no-store, no-cache
Pragma: no-cache
Content-Type: application/json
Server: Microsoft-HTTPAPI/2.0
x-ms-max-media-storage-usage-mb: 2048
x-ms-media-storage-usage-mb: 0
Strict-Transport-Security: max-age=31536000
x-ms-last-state-change-utc: Sun, 29 Nov 2015 19:20:18.154 GMT
etag: "060091c2-0000-0000-0000-56673c980000"
x-ms-resource-quota: documentSize=10240;documentsSize=10485760;collectionSize=10485760;
x-ms-resource-usage: documentSize=0;documentsSize=291;collectionSize=369;
x-ms-schemaversion: 1.1
x-ms-alt-content-path: dbs/volcanodb/colls/volcano1/docs/c3bb1fef-fcb1-56e3-0389-f88583c3ce0d
x-ms-content-path: Sl8fALN4sw4CAAAAAAAAAA==
x-ms-quorum-acked-lsn: 18
x-ms-session-token: 19
x-ms-current-write-quorum: 3
x-ms-current-replica-set-size: 4
x-ms-request-charge: 4.95
x-ms-serviceversion: version=1.5.57.3
x-ms-activity-id: c03c09bf-a791-4dad-b2f8-fa88fa1bce04
Set-Cookie: x-ms-session-token=19; Domain=contosomarketing.documents.azure.com; Path=/dbs/volcanodb/colls/volcano1
x-ms-gatewayversion: version=1.5.57.3
Date: Tue, 08 Dec 2015 20:24:57 GMT
Content-Length: 292
{
"id": "image_id",
"contentType": "image/jpg",
"media": "www.bing.com",
"_rid": "Sl8fALN4sw4CAAAAAAAAAOnTcEc=",
"_ts": 1449606296,
"_self": "dbs\/Sl8fAA==\/colls\/Sl8fALN4sw4=\/docs\/Sl8fALN4sw4CAAAAAAAAAA==\/attachments\/Sl8fALN4sw4CAAAAAAAAAOnTcEc=",
"_etag": "\"060091c2-0000-0000-0000-56673c980000\""
}
Комментарии
Существует два способа создания ресурса вложения: опубликовать содержимое мультимедиа в Cosmos DB, например в протоколе AtomPub, или опубликовать только метаданные вложения на носители, хранящиеся извне.
Во-первых, нужно отправить необработанный носитель в полезные данные тела, чтобы сохранить его в предоставленном хранилище вложений под учетной записью Cosmos DB. Чтобы создать вложение этого типа, необходимо включить необработанное вложение (видео, аудио, файл, большой двоичный объект и т. д.) в качестве основного текста POST. Необходимо задать два заголовка: Content-Type и Slug. В заголовке Content-Type указывается тип MIME вложения, а в заголовке Slug — имя вложения.
Вторым способом создания ресурса вложения является отправка в методе POST свойств ресурса вложения, определяющих тип и ссылку на вложение. В отличие от первого типа ресурса вложения, не следует задавать заголовки Content-Type и Slug.