pièce jointe : createUploadSession

Espace de noms: microsoft.graph

Importante

Les API sous la version /beta dans Microsoft Graph sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge. Pour déterminer si une API est disponible dans v1.0, utilisez le sélecteur Version .

Créez une session de chargement qui permet à une application de charger de manière itérative des plages d’un fichier, afin d’attacher le fichier à un élément Outlook. L’élément peut être un message ou un événement.

Utilisez cette approche pour joindre un fichier si la taille du fichier est comprise entre 3 Mo et 150 Mo. Pour joindre un fichier d’une taille inférieure à 3 Mo, effectuez une POST opération sur la propriété de navigation pièces jointes de l’élément Outlook. Découvrez comment procéder pour un message ou pour un événement.

Dans le cadre de la réponse, cette action retourne une URL de chargement que vous pouvez utiliser dans les requêtes séquentielles PUT suivantes. Les en-têtes de requête pour chaque PUT opération vous permettent de spécifier la plage exacte d’octets à charger. Cela permet de reprendre le transfert, au cas où la connexion réseau serait interrompue pendant le chargement.

Voici les étapes à suivre pour joindre un fichier à un élément Outlook à l’aide d’une session de chargement :

  1. Créez une session de chargement.
  2. Dans cette session de chargement, chargez de façon itérative des plages d’octets (jusqu’à 4 Mo à chaque fois) jusqu’à ce que tous les octets du fichier aient été chargés et que le fichier soit joint à l’élément spécifié.
  3. Enregistrez l’ID de la pièce jointe pour un accès ultérieur.
  4. Facultatif : supprimez la session de chargement.

Pour obtenir un exemple, consultez Joindre des fichiers volumineux à des messages ou événements Outlook .

Conseil

Exchange Online permet aux administrateurs de personnaliser la limite de taille des messages pour les boîtes aux lettres Microsoft 365, y compris les pièces jointes des messages. Par défaut, cette limite de taille de message est de 35 Mo. Découvrez comment personnaliser la taille maximale des messages pour prendre en charge les pièces jointes supérieures à la limite par défaut pour votre locataire.

Importante

Tenez compte d’un problème connu si vous joignez un fichier volumineux à un message ou à un événement dans une boîte aux lettres partagée ou déléguée.

Cette API est disponible dans les déploiements de cloud national suivants.

Service global Gouvernement des États-Unis L4 Us Government L5 (DOD) Chine gérée par 21Vianet

Autorisations

Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.

Type d’autorisation Autorisations avec privilèges minimum Autorisations privilégiées plus élevées
Déléguée (compte professionnel ou scolaire) Calendars.ReadWrite Mail.ReadWrite
Déléguée (compte Microsoft personnel) Calendars.ReadWrite Mail.ReadWrite
Application Calendars.ReadWrite Mail.ReadWrite

Requête HTTP

Pour créer une session de chargement pour joindre un fichier à un événement :

POST /me/events/{id}/attachments/createUploadSession

Pour créer une session de chargement pour joindre un fichier à un message :

POST /me/messages/{id}/attachments/createUploadSession

En-têtes de demande

Nom Description
Autorisation Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation.

Corps de la demande

Dans le corps de la demande, indiquez un objet JSON avec les paramètres suivants.

Paramètre Type Description
AttachmentItem attachmentItem Représente les attributs de l’élément à charger et à attacher. Au minimum, spécifiez le type de pièce jointe (file), un nom et la taille du fichier.

Réponse

Si elle réussit, cette méthode renvoie un 201 Created code de réponse et un nouvel objet uploadSession dans le corps de la réponse.

Remarque :

La propriété uploadUrl retournée dans le cadre de l’objet de réponse uploadSession est une URL opaque pour les requêtes suivantes PUT pour charger des plages d’octets du fichier. Il contient le jeton d’authentification approprié pour les requêtes suivantes PUT qui expirent par expirationDateTime. Ne personnalisez pas cette URL.

La propriété nextExpectedRanges spécifie l’emplacement d’octet de fichier suivant à partir duquel charger, par exemple . "NextExpectedRanges":["2097152"] Vous devez charger les octets d’un fichier dans l’ordre.

Exemples

Exemple 1 : Créer une session de chargement pour ajouter une pièce jointe volumineuse à un brouillon de message

L’exemple suivant montre comment créer une session de chargement que vous pouvez utiliser dans les opérations de chargement de fichiers suivantes dans le message spécifié.

Demande

POST https://graph.microsoft.com/beta/me/messages/AAMkADI5MAAIT3drCAAA=/attachments/createUploadSession
Content-type: application/json

{
  "AttachmentItem": {
    "attachmentType": "file",
    "name": "flower",
    "size": 3483322
  }
}

Réponse

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#microsoft.graph.uploadSession",
    "uploadUrl": "https://outlook.office.com/api/beta/Users('a8e8e219-4931-95c1-b73d-62626fd79c32@72aa88bf-76f0-494f-91ab-2d7cd730db47')/Messages('AAMkADI5MAAIT3drCAAA=')/AttachmentSessions('AAMkADI5MAAIT3k0uAAA=')?authtoken=eyJhbGciOiJSUzI1NiIsImtpZCI6IktmYUNIUlN6bllHMmNI",
    "expirationDateTime": "2019-09-25T01:09:30.7671707Z",
    "nextExpectedRanges": [
        "0-"
    ]
}

Exemple 2 : Créer une session de chargement pour ajouter une pièce jointe en ligne volumineuse à un brouillon de message

L’exemple suivant montre comment créer une session de chargement qui peut être utilisée pour ajouter une pièce jointe incorporée volumineuse à un brouillon de message.

Pour une pièce jointe inline, définissez la propriété trueisInline sur et utilisez la propriété contentId pour spécifier un CID pour la pièce jointe, comme indiqué ci-dessous. Dans le corps du brouillon de message, utilisez la même valeur CID pour indiquer la position où vous souhaitez inclure la pièce jointe à l’aide d’une balise de référence HTML CID, par exemple <img src="cid:my_inline_picture">. Une fois le fichier chargé, le message rendu inclut la pièce jointe dans le corps du message à l’emplacement spécifié.

Demande

POST https://graph.microsoft.com/beta/me/messages/AAMkAGUwNjQ4ZjIxLTQ3Y2YtNDViMi1iZjc4LTMA=/attachments/createUploadSession
Content-type: application/json

{
  "AttachmentItem": {
    "attachmentType": "file",
    "name": "scenary",
    "size": 7208534,
    "isInline": true,
    "contentId": "my_inline_picture"
  }
}

Réponse

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.uploadSession",
    "uploadUrl": "https://outlook.office.com/api/gv1.0/users('a8e8e219-4931-95c1-b73d-62626fd79c32@72aa88bf-76f0-494f-91ab-2d7cd730db47')/messages('AAMkAGUwNjQ4ZjIxLTQ3Y2YtNDViMi1iZjc4LTMA=')/AttachmentSessions('AAMkAGUwNjQ4ZjIxLTAAA=')?authtoken=eyJhbGciOiJSUzI1NiIsImtpZCI6IjFTeXQ1bXdXYVh5UFJ",
    "expirationDateTime": "2021-12-27T14:20:12.9708933Z",
    "nextExpectedRanges": [
        "0-"
    ]
}