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.