Reemplazar datos adjuntos
Hay dos maneras de reemplazar un recurso de datos adjuntos: coloque el contenido multimedia en Azure Cosmos DB como en el protocolo AtomPub o coloque solo los metadatos adjuntos en los medios almacenados externamente.
El primero es colocar los medios sin procesar en la carga del cuerpo para almacenarlo en el almacenamiento de datos adjuntos proporcionado en la cuenta de Cosmos DB. Para reemplazar este tipo de datos adjuntos, los desarrolladores incluyen los datos adjuntos sin procesar (vídeo, audio, archivo, blob, etc.) como el cuerpo de PUT. Se deben establecer dos encabezados: Content-Type y Slug. El encabezado Content-Type se define en el tipo MIME de los datos adjuntos, mientras que el encabezado Slug se define en el nombre de los datos adjuntos.
La segunda forma de reemplazar un recurso de datos adjuntos es colocar las propiedades del recurso de datos adjuntos que señalan el tipo y el vínculo multimedia de los datos adjuntos. A diferencia del primer tipo de recurso de datos adjuntos, los encabezados Content-Type y Slug no se establecerán, debido a que multimedia sin procesar no forma parte de la carga de la solicitud.
Solicitud
Método | URI de solicitud | Descripción |
---|---|---|
PUT | https:// {databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{doc-name}/attachments/{att-name} | Tenga en cuenta que {databaseaccount} es el nombre de la cuenta de Cosmos DB creada en la suscripción. El valor {db-id} es el nombre o identificador generado por el usuario de la base de datos, no el identificador generado por el sistema (rid). El valor {coll-id} es el nombre de la colección en la que se encuentra el documento. El valor {doc-name} es el nombre del documento asociado a los datos adjuntos. El valor {att-name} es el nombre de los datos adjuntos que se van a reemplazar. |
encabezados
Consulte Encabezados de solicitud REST comunes de Azure Cosmos DB para los encabezados que usan todas las solicitudes de Cosmos DB.
Encabezado | Obligatorio | Tipo | Descripción |
---|---|---|---|
Slug | Opcionales | String | El nombre de los datos adjuntos. Solo es necesario cuando los medios sin procesar se envían al almacenamiento de datos adjuntos de Cosmos DB. Para obtener más información, consulte AtomPub Protocol( Protocolo AtomPub). |
Body
Propiedad | Obligatorio | Tipo | Descripción |
---|---|---|---|
id | Opcionales | String | No se requiere definir cuando se adjunta multimedia sin procesar. Es una propiedad que se puede establecer por el usuario. Es el nombre único que identifica los datos adjuntos, es decir, ningún dato adjunto comparte el mismo identificador. El identificador no debe superar los 255 caracteres. |
contentType | Opcionales | String | No se requiere definir cuando se adjunta multimedia sin procesar. Es una propiedad que se puede establecer por el usuario. Indica el tipo de contenido de los datos adjuntos. Al enviar los bits de datos adjuntos como cuerpo, Cosmos DB establece contentType en el tipo establecido en el encabezado Content-Type . |
Elementos multimedia | Opcionales | String | No se requiere definir cuando se adjunta multimedia sin procesar. Es el vínculo de dirección URL o la ruta de acceso del archivo donde residen los datos adjuntos. |
{
"id": "image_id_2",
"contentType": "image/jpg",
"media": "www.microsoft.com"
}
Response
encabezados
Consulte Encabezados de respuesta REST comunes de Azure Cosmos DB para ver los encabezados devueltos por todas las respuestas de Cosmos DB.
Códigos de estado
La tabla siguiente muestra los códigos de estado comunes que devuelve esta operación. Para obtener una lista completa de los códigos de estado, consulte Códigos de estado HTTP.
Código de estado HTTP | Descripción |
---|---|
200 Ok | La operación se realizó correctamente. |
400 - Solicitud incorrecta | El cuerpo JSON no es válido. Compruebe si faltan llaves o comillas. |
404 No encontrado | Los datos adjuntos que se van a reemplazar ya no son un recurso, es decir, se han eliminado los datos adjuntos. |
409 Conflicto | Un archivo adjunto existente ha tomado el identificador proporcionado para los datos adjuntos. |
413 Entidad demasiado grande | El tamaño del documento en la solicitud supera el tamaño de documento permitido en una solicitud. |
Body
Propiedad | Descripción |
---|---|
_Librar | Es una propiedad generada por el sistema. El identificador de recurso (_rid) es un identificador único que también es jerárquico por la pila de recursos en el modelo de recursos. Se usa internamente para la colocación y el desplazamiento del recurso de datos adjuntos. |
_Ts | Es una propiedad generada por el sistema. Especifica la última marca de tiempo actualizada del recurso. El valor es una marca de tiempo. |
_propio | Es una propiedad generada por el sistema. Es el URI direccionable único para el recurso. |
_Etag | Es una propiedad generada por el sistema que especifica la etag de recursos necesaria para el control de simultaneidad optimista. |
{
"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\""
}
Ejemplo
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\""
}