Замена вложения

Существует два способа замены ресурса вложения: поместить содержимое мультимедиа в Azure Cosmos DB, как в протокол AtomPub, или поместить только метаданные вложения на носители, хранящиеся извне.

Первый — поместить необработанный носитель в полезные данные тела, чтобы сохранить его в предоставленном хранилище вложений под учетной записью Cosmos DB. Чтобы заменить этот тип вложения, разработчики включают необработанное вложение (видео, аудио, файл, большой двоичный объект и т. д.) в качестве основного текста PUT. Необходимо задать два заголовка: Content-Type и Slug. В заголовке Content-Type указывается тип MIME вложения, а в заголовке Slug — имя вложения.

Второй способ замены ресурса вложения — поместить свойства ресурса вложения, указав тип и ссылку мультимедиа вложения. В отличие от первого типа ресурса вложения, заголовки Content-Type и Slug не задаются, так как необработанные данные не являются частью полезной нагрузки запроса.

Запрос

Метод Универсальный код ресурса (URI) запроса Описание
PUT https:// {databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{doc-name}/attachments/{att-name} Обратите внимание, что {databaseaccount} — это имя учетной записи Cosmos DB, созданной в вашей подписке. Значение {db-id} — это созданное пользователем имя/идентификатор базы данных, а не системный идентификатор (rid). Значение {coll-id} — это имя коллекции, в котором содержится документ. Значение {doc-name} — это имя документа, связанного с вложением. Значение {att-name} — это имя заменяемого вложения.

Заголовки

Заголовки, используемые всеми запросами Cosmos DB, см. в статье Общие заголовки запросов REST Azure Cosmos DB .

Заголовок Обязательно Тип Описание
Slug Необязательно Строка Имя вложения. Это необходимо только в том случае, если необработанный носитель отправляется в хранилище вложений Cosmos DB. Дополнительные сведения см. в статье Протокол AtomPub.

Текст

Свойство Обязательно Тип Описание
идентификатор Необязательно Строка Не требуется устанавливать при вложении необработанных данных. Это настраиваемое пользователем свойство. Это уникальное имя, которое идентифицирует вложение, т. е. не два вложения имеют одинаковый идентификатор. Длина идентификатора не должна превышать 255 символов.
contentType Необязательно Строка Не требуется устанавливать при вложении необработанных данных. Это настраиваемое пользователем свойство. Указывает тип содержимого вложения. При отправке битов вложения в виде текста Cosmos DB задает contentType тип, заданный в заголовке Content-Type .
Носитель Необязательно Строка Не требуется устанавливать при вложении необработанных данных. Это URL-ссылка или путь к файлу, в котором находится вложение.
{  
    "id": "image_id_2",  
    "contentType": "image/jpg",  
    "media": "www.microsoft.com"  
}  
  

Ответ

Заголовки

Заголовки, возвращаемые всеми ответами Cosmos DB, см. в статье Общие заголовки ответов REST Azure Cosmos DB .

Коды состояния

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

Код состояния HTTP Описание
200 (ОК) Операция выполнена успешно.
400 — недопустимый запрос Недопустимый текст JSON. Проверьте наличие фигурных скобок и кавычек.
404 — не найдено Заменяемое вложение больше не является ресурсом, то есть вложение было удалено.
409. Конфликт Идентификатор, предоставленный для вложения, был взят существующим вложением.
413 (Сущность слишком велика) Размер документа в запросе превышает допустимый размер документа в запросе.

Текст

Свойство Описание
_Избавить Это свойство, созданное системой. Идентификатор ресурса (_rid) — это уникальный идентификатор, который также является иерархическим для стека ресурсов в модели ресурсов. Он используется системой для размещения и перемещения по ресурсам вложения.
_Ts Это свойство, созданное системой. Оно представляет метку времени последнего обновления ресурса. Значение — метка времени.
_Самостоятельно Это свойство, созданное системой. Это уникальный адресуемый URI для ресурса.
_etag Это созданное системой свойство, указывающее тег ресурса, необходимый для управления оптимистическим параллелизмом.
{  
    "id": "image_id_2",  
    "contentType": "image/jpg",  
    "media": "www.microsoft.com",  
    "_rid": "Sl8fALN4sw4CAAAAAAAAAOnTcEc=",  
    "_ts": 1449606442,  
    "_self": "dbs\/Sl8fAA==\/colls\/Sl8fALN4sw4=\/docs\/Sl8fALN4sw4CAAAAAAAAAA==\/attachments\/Sl8fALN4sw4CAAAAAAAAAOnTcEc=",  
    "_etag": "\"0600abc2-0000-0000-0000-56673d2a0000\""  
}  
  

Пример

PUT https://contosomarketing.documents.azure.com/dbs/volcanodb/colls/volcano1/docs/c3bb1fef-fcb1-56e3-0389-f88583c3ce0d/attachments/image_id HTTP/1.1  
x-ms-session-token: 19  
x-ms-date: Tue, 08 Dec 2015 20:27:23 GMT  
authorization: type%3dmaster%26ver%3d1.0%26sig%3dKQWBkCCXyJ66fwBe9%2b%2b7oN7CSlIkMMyFEgimGDPawCs%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=19  
Content-Length: 281  
Expect: 100-continue  
  
{  
    "id": "image_id_2",  
    "contentType": "image/jpg",  
    "media": "www.microsoft.com"  
}  
  
HTTP/1.1 200 Ok  
Cache-Control: no-store, no-cache  
Pragma: no-cache  
Content-Type: application/json  
Content-Location: https://contosomarketing.documents.azure.com/dbs/volcanodb/colls/volcano1/docs/c3bb1fef-fcb1-56e3-0389-f88583c3ce0d/attachments/image_id  
Server: Microsoft-HTTPAPI/2.0  
Strict-Transport-Security: max-age=31536000  
x-ms-last-state-change-utc: Sun, 29 Nov 2015 19:20:18.154 GMT  
etag: "0600abc2-0000-0000-0000-56673d2a0000"  
x-ms-resource-quota: documentSize=10240;documentsSize=10485760;collectionSize=10485760;  
x-ms-resource-usage: documentSize=0;documentsSize=289;collectionSize=367;  
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: 19  
x-ms-session-token: 20  
x-ms-current-write-quorum: 3  
x-ms-current-replica-set-size: 4  
x-ms-request-charge: 9.9  
x-ms-serviceversion: version=1.5.57.3  
x-ms-activity-id: 8b8be54a-3c7e-4484-9f65-3a3d778347cc  
Set-Cookie: x-ms-session-token=20; Domain=contosomarketing.documents.azure.com; Path=/dbs/volcanodb/colls/volcano1  
x-ms-gatewayversion: version=1.5.57.3  
Date: Tue, 08 Dec 2015 20:27:24 GMT  
Content-Length: 299  
  
{  
    "id": "image_id_2",  
    "contentType": "image/jpg",  
    "media": "www.microsoft.com",  
    "_rid": "Sl8fALN4sw4CAAAAAAAAAOnTcEc=",  
    "_ts": 1449606442,  
    "_self": "dbs\/Sl8fAA==\/colls\/Sl8fALN4sw4=\/docs\/Sl8fALN4sw4CAAAAAAAAAA==\/attachments\/Sl8fALN4sw4CAAAAAAAAAOnTcEc=",  
    "_etag": "\"0600abc2-0000-0000-0000-56673d2a0000\""  
}  
  

См. также: