Sostituire un allegato
Esistono due modi per sostituire una risorsa allegato: inserire il contenuto multimediale in Azure Cosmos DB come nel protocollo AtomPub oppure inserire solo i metadati degli allegati nel supporto archiviato esternamente.
Il primo consiste nell'inserire il supporto non elaborato nel payload del corpo per archiviarlo nell'archivio allegati fornito nell'account Cosmos DB. Per sostituire questo tipo di allegato, gli sviluppatori includono l'allegato non elaborato (video, audio, file, BLOB e così via) come corpo di PUT. È necessario impostare due intestazioni: Content-Type e Slug. L'intestazione Content-Type viene impostata sul tipo MIME dell'allegato, mentre l'intestazione Slug viene impostata sul nome dell'allegato.
Il secondo modo per sostituire una risorsa allegato consiste nell'inserire le proprietà della risorsa allegato che notino il tipo e il collegamento multimediale dell'allegato. A differenza del primo tipo di risorsa allegato, le intestazioni Content-Type e Slug non devono essere configurate, perché il file multimediale non elaborato non fa parte del payload della richiesta.
Richiesta
Metodo | URI richiesta | Descrizione |
---|---|---|
PUT | https:// {databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{doc-name}/attachments/{att-name} | Si noti che {databaseaccount} è il nome dell'account Cosmos DB creato nella sottoscrizione. Il valore {db-id} è il nome/ID generato dall'utente del database, non l'ID generato dal sistema (rid). Il valore {coll-id} è il nome della raccolta in cui è contenuto il documento. Il valore {doc-name} è il nome del documento associato all'allegato. Il valore {att-name} è il nome dell'allegato da sostituire. |
Intestazioni
Vedere Intestazioni di richiesta REST comuni di Azure Cosmos DB per le intestazioni usate da tutte le richieste di Cosmos DB.
Intestazione | Obbligatoria | Tipo | Descrizione |
---|---|---|---|
Slug | Facoltativo | String | Nome dell'allegato. È obbligatorio solo quando i supporti non elaborati vengono inviati all'archiviazione degli allegati di Cosmos DB. Per altre informazioni, vedere Protocollo AtomPub. |
Corpo
Proprietà | Obbligatoria | Tipo | Descrizione |
---|---|---|---|
id | Facoltativo | String | Configurazione non obbligatoria quando si allega un file multimediale non elaborato. Si tratta di una proprietà impostabile dall'utente. È il nome univoco che identifica l'allegato, ovvero non due allegati condividono lo stesso ID. L'ID non deve superare i 255 caratteri. |
contentType | Facoltativo | String | Configurazione non obbligatoria quando si allega un file multimediale non elaborato. Si tratta di una proprietà impostabile dall'utente. Annota il tipo di contenuto dell'allegato. Quando si inviano i bit degli allegati come corpo, Cosmos DB imposta contentType sul tipo impostato nell'intestazione Content-Type . |
Supporti | Facoltativo | String | Configurazione non obbligatoria quando si allega un file multimediale non elaborato. Si tratta del collegamento URL o del percorso del file in cui si trova l'allegato. |
{
"id": "image_id_2",
"contentType": "image/jpg",
"media": "www.microsoft.com"
}
Risposta
Intestazioni
Vedere Intestazioni di risposta REST comuni di Azure Cosmos DB per le intestazioni restituite da tutte le risposte di Cosmos DB.
Codici di stato
La seguente tabella elenca i codici di stato comuni restituiti da questa operazione. Per un elenco completo dei codici di stato, vedere Codici di stato HTTP.
Codice di stato HTTP | Descrizione |
---|---|
200 Ok | L'operazione è stata completata. |
400 - Richiesta non valida | Il corpo JSON non è valido. Controllare parentesi graffe o virgolette mancanti. |
404 - Non trovato | L'allegato da sostituire non è più una risorsa, ovvero l'allegato è stato eliminato. |
409 - Conflitto | L'ID fornito per l'allegato è stato acquisito da un allegato esistente. |
413 Entity Too Large | Le dimensioni del documento nella richiesta hanno superato le dimensioni di documento consentite in una richiesta. |
Corpo
Proprietà | Descrizione |
---|---|
_liberarsi | Si tratta di una proprietà generata dal sistema. L'ID risorsa (_rid) è un identificatore univoco gerarchico anche per ogni stack di risorse nel modello di risorse. Viene usato internamente per il posizionamento e l'esplorazione della risorsa allegato. |
_Ts | Si tratta di una proprietà generata dal sistema. Indica il timestamp dell'ultimo aggiornamento della risorsa. Il valore è un timestamp. |
_stesso | Si tratta di una proprietà generata dal sistema. URI indirizzabile univoco per la risorsa. |
_Etag | Si tratta di una proprietà generata dal sistema che specifica l'etag della risorsa necessaria per il controllo della concorrenza ottimistica. |
{
"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\""
}
Esempio
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\""
}