Создание вложения

Операция 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.

См. также: