Créer une pièce jointe

L’opération Create Attachment crée une pièce jointe pour un document.

Requête

Méthode URI de demande Description
POST https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{doc-name}/attachments. Le {databaseaccount} est le nom du compte Azure Cosmos DB créé sous votre abonnement. La valeur {db-id} est le nom/l’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 le document est contenu. La valeur {doc-name} est le nom du document associé à la pièce jointe.

En-têtes

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

En-tête Obligatoire Type Description
Slug Facultatif String Nom de la pièce jointe. Elle n’est requise que lorsque le support brut est envoyé au stockage de pièces jointes Azure 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, c’est-à-dire qu’aucune pièce jointe ne partage 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",  
    "contentType": "image/jpg",  
    "media": "www.bing.com"  
}  
  

response

En-têtes

Consultez En-têtes de réponse REST Azure Cosmos DB courants pour les en-têtes retournés par toutes les réponses Azure 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
201 Créé 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.
409 Conflit L’ID ou Slug fourni pour la nouvelle 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.

Corps

La création d’une pièce jointe entraîne la création d’une ressource de pièce jointe avec le corps de réponse suivant :

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",  
    "contentType": "image/jpg",  
    "media": "www.bing.com",  
    "_rid": "Sl8fALN4sw4CAAAAAAAAAOnTcEc=",  
    "_ts": 1449606296,  
    "_self": "dbs\/Sl8fAA==\/colls\/Sl8fALN4sw4=\/docs\/Sl8fALN4sw4CAAAAAAAAAA==\/attachments\/Sl8fALN4sw4CAAAAAAAAAOnTcEc=",  
    "_etag": "\"060091c2-0000-0000-0000-56673c980000\""  
}  
  

Exemple

POST https://contosomarketing.documents.azure.com/dbs/volcanodb/colls/volcano1/docs/c3bb1fef-fcb1-56e3-0389-f88583c3ce0d/attachments HTTP/1.1  
x-ms-session-token: 16  
x-ms-date: Tue, 08 Dec 2015 20:24:56 GMT  
authorization: type%3dmaster%26ver%3d1.0%26sig%3dQ8MDtRExrtOeDL5TSaHvXhPTNyKiRrrIC3IjTSpf958%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=16  
Content-Length: 66  
Expect: 100-continue  
Connection: Keep-Alive  
{  
    "id": "image_id",  
    "contentType": "image/jpg",  
    "media": "www.bing.com"  
}  
  
HTTP/1.1 201 Created  
Cache-Control: no-store, no-cache  
Pragma: no-cache  
Content-Type: application/json  
Server: Microsoft-HTTPAPI/2.0  
x-ms-max-media-storage-usage-mb: 2048  
x-ms-media-storage-usage-mb: 0  
Strict-Transport-Security: max-age=31536000  
x-ms-last-state-change-utc: Sun, 29 Nov 2015 19:20:18.154 GMT  
etag: "060091c2-0000-0000-0000-56673c980000"  
x-ms-resource-quota: documentSize=10240;documentsSize=10485760;collectionSize=10485760;  
x-ms-resource-usage: documentSize=0;documentsSize=291;collectionSize=369;  
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: 18  
x-ms-session-token: 19  
x-ms-current-write-quorum: 3  
x-ms-current-replica-set-size: 4  
x-ms-request-charge: 4.95  
x-ms-serviceversion: version=1.5.57.3  
x-ms-activity-id: c03c09bf-a791-4dad-b2f8-fa88fa1bce04  
Set-Cookie: x-ms-session-token=19; Domain=contosomarketing.documents.azure.com; Path=/dbs/volcanodb/colls/volcano1  
x-ms-gatewayversion: version=1.5.57.3  
Date: Tue, 08 Dec 2015 20:24:57 GMT  
Content-Length: 292  
  
{  
    "id": "image_id",  
    "contentType": "image/jpg",  
    "media": "www.bing.com",  
    "_rid": "Sl8fALN4sw4CAAAAAAAAAOnTcEc=",  
    "_ts": 1449606296,  
    "_self": "dbs\/Sl8fAA==\/colls\/Sl8fALN4sw4=\/docs\/Sl8fALN4sw4CAAAAAAAAAA==\/attachments\/Sl8fALN4sw4CAAAAAAAAAOnTcEc=",  
    "_etag": "\"060091c2-0000-0000-0000-56673c980000\""  
}  
  

Notes

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

La première consiste à PUBLIER 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 créer ce type de pièce jointe, vous devez inclure la pièce jointe brute (vidéo, audio, fichier, objet blob, etc.) comme corps du post. 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 seconde manière de créer une ressource de pièce jointe consiste à publier les propriétés de la ressource de pièce jointe en notant le type et le lien multimédia de celle-ci. Contrairement au premier type de ressource de pièce jointe, vous ne devez pas définir les en-têtes Content-Type et Slug.

Voir aussi