Condividi tramite


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\""  
}  
  

Vedere anche