Замена вложения
Существует два способа замены ресурса вложения: поместить содержимое мультимедиа в 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\""
}