Partager via


Remplacer une pièce jointe

Il existe deux façons de remplacer une ressource de pièce jointe : placer le contenu multimédia dans Azure Cosmos DB comme dans le protocole AtomPub, ou placer uniquement les métadonnées de la pièce jointe sur un média stocké en externe.

La première consiste à placer le média brut dans la charge utile du corps pour le stocker dans le stockage de pièces jointes fourni sous votre compte Cosmos DB. Pour remplacer ce type de pièce jointe, les développeurs incluent la pièce jointe brute (vidéo, audio, fichier, objet blob, etc.) comme corps du PUT. Deux en-têtes doivent être définis : Content-Type et Slug. L'en-tête Content-Type est défini sur le type MIME de la pièce jointe, tandis que l'en-tête Slug est défini sur le nom de celle-ci.

La deuxième façon de remplacer une ressource de pièce jointe consiste à PLACER les propriétés de ressource de pièce jointe en notant le type et le lien multimédia de la pièce jointe. Contrairement au premier type de ressource de pièce jointe, les en-têtes Content-Type et Slug ne doivent ne pas être définis, car le média brut ne fait pas partie de la charge utile de la demande.

Requête

Méthode URI de demande Description
PUT https:// {databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{doc-name}/attachments/{att-name} Notez que {databaseaccount} est le nom du compte Cosmos DB créé sous votre abonnement. La valeur {db-id} correspond au nom/id généré par l’utilisateur de la base de données, et non à l’ID généré par le système (rid). La valeur {coll-id} est le nom de la collection dans laquelle se trouve le document. La valeur {doc-name} est le nom du document associé à la pièce jointe. La valeur {att-name} est le nom de la pièce jointe à remplacer.

En-têtes

Consultez En-têtes de requête REST Azure Cosmos DB communs pour les en-têtes utilisés par toutes les requêtes Cosmos DB.

En-tête Obligatoire Type Description
Slug Facultatif String Nom de la pièce jointe. Il est nécessaire uniquement lorsque le média brut est soumis au stockage des pièces jointes Cosmos DB. Pour plus d’informations, consultez Protocole AtomPub.

body

Propriété Obligatoire Type Description
id Facultatif String Ne doit pas être définie en cas d'attachement d'un média brut. Il s’agit d’une propriété settable par l’utilisateur. Il s’agit du nom unique qui identifie la pièce jointe, autrement dit, que deux pièces jointes ne partagent pas le même ID. L’ID ne doit pas dépasser 255 caractères.
contentType Facultatif String Ne doit pas être définie en cas d'attachement d'un média brut. Il s’agit d’une propriété settable par l’utilisateur. Elle indique le type de contenu de la pièce jointe. Lors de l’envoi des bits de pièce jointe en tant que corps, Cosmos DB définit le contentType sur le type défini dans l’en-tête Content-Type .
Média Facultatif String Ne doit pas être définie en cas d'attachement d'un média brut. Il s’agit du lien d’URL ou du chemin d’accès au fichier où réside la pièce jointe.
{  
    "id": "image_id_2",  
    "contentType": "image/jpg",  
    "media": "www.microsoft.com"  
}  
  

response

En-têtes

Consultez En-têtes de réponse REST Azure Cosmos DB communs pour les en-têtes retournés par toutes les réponses Cosmos DB.

Codes d’état

Le tableau suivant répertorie les codes d'état courants renvoyés par cette opération. Pour obtenir la liste complète des codes status, consultez Codes d’état HTTP.

Code d'état HTTP Description
200 Ok L'opération a réussi.
400 Demande incorrecte Le corps au format JSON n'est pas valide. Vérifiez qu'il ne manque pas d'accolades ou de guillemets.
404 Introuvable La pièce jointe à remplacer n’est plus une ressource, c’est-à-dire que la pièce jointe a été supprimée.
409 Conflit L’ID fourni pour la pièce jointe a été pris par une pièce jointe existante.
413 Entité trop grande La taille du document dans la demande a dépassé la taille de document autorisée dans une demande.

body

Propriété Description
_Débarrasser Il s’agit d’une propriété générée par le système. L’ID de ressource (_rid) est un identificateur unique qui est également hiérarchique en fonction de la pile de ressources sur le modèle de ressource. Il est utilisé en interne pour le positionnement et la navigation dans la ressource de pièce jointe.
_Ts Il s’agit d’une propriété générée par le système. Elle spécifie l'horodateur de la dernière mise à jour de la ressource. La valeur est un horodateur.
_self Il s’agit d’une propriété générée par le système. Il s'agit de l'URI adressable unique pour la ressource.
_Etag Il s’agit d’une propriété générée par le système qui spécifie l’etag de ressource requis pour le contrôle d’accès concurrentiel optimiste.
{  
    "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\""  
}  
  

Exemple

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

Voir aussi