Anlage: createUploadSession

Namespace: microsoft.graph

Wichtig

Die APIs unter der /beta Version in Microsoft Graph können sich ändern. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in v1.0 verfügbar ist, verwenden Sie die Version Selektor.

Erstellen Sie eine Uploadsitzung, die es einer App ermöglicht, Bereiche einer Datei iterativ hochzuladen, um die Datei an ein Outlook-Element anzufügen. Bei dem Element kann es sich um eine Nachricht oder ein Ereignis handeln.

Verwenden Sie diesen Ansatz zum Anhängen einer Datei, wenn die Dateigröße zwischen 3 MB und 150 MB liegt. Um eine Datei anzufügen, die kleiner als 3 MB ist, führen Sie einen POST Vorgang in der Eigenschaft zur Anlagennavigation des Outlook-Elements aus. Weitere Informationen finden Sie bei einer Nachricht oder einem Ereignis.

Als Teil der Antwort gibt diese Aktion eine Upload-URL zurück, die Sie in nachfolgenden sequenziellen PUT Abfragen verwenden können. Mit Anforderungsheadern für jeden PUT Vorgang können Sie den genauen Bereich der hochzuladenden Bytes angeben. Dadurch kann die Übertragung fortgesetzt werden, falls die Netzwerkverbindung während des Uploads getrennt wird.

Im Folgenden finden Sie die Schritte zum Anfügen einer Datei an ein Outlook-Element mithilfe einer Uploadsitzung:

  1. Erstellen Sie eine Uploadsitzung.
  2. Laden Sie innerhalb dieser Uploadsitzung iterativ Bytebereiche (jeweils bis zu 4 MB) hoch, bis alle Bytes der Datei hochgeladen wurden und die Datei an das angegebene Element angefügt ist.
  3. Speichern Sie die ID für die Anlage für den zukünftigen Zugriff.
  4. Optional: Löschen Sie die Uploadsitzung.

Ein Beispiel finden Sie unter Anfügen von großen Dateien an Outlook-Nachrichten oder -Ereignisse .

Tipp

Mit Exchange Online können Administratoren das Limit der Nachrichtengröße für Microsoft 365-Postfächer anpassen, einschließlich aller Nachrichtenanlagen. Diese Nachrichtengröße ist standardmäßig auf 35 MB beschränkt. Erfahren Sie, wie Sie die maximale Nachrichtengröße anpassen , um Anlagen zu unterstützen, die größer als das Standardlimit für Ihren Mandanten sind.

Wichtig

Beachten Sie ein bekanntes Problem , wenn Sie eine große Datei an eine Nachricht oder ein Ereignis in einem freigegebenen oder delegierten Postfach anfügen.

Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.

Weltweiter Service US Government L4 US Government L5 (DOD) China, betrieben von 21Vianet

Berechtigungen

Wählen Sie die Berechtigungen aus, die für diese API als am wenigsten privilegiert markiert sind. Verwenden Sie eine höhere Berechtigung oder Berechtigungen nur, wenn Ihre App dies erfordert. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.

Berechtigungstyp Berechtigungen mit den geringsten Berechtigungen Berechtigungen mit höheren Berechtigungen
Delegiert (Geschäfts-, Schul- oder Unikonto) Calendars.ReadWrite Mail.ReadWrite
Delegiert (persönliches Microsoft-Konto) Calendars.ReadWrite Mail.ReadWrite
Anwendung Calendars.ReadWrite Mail.ReadWrite

HTTP-Anforderung

So erstellen Sie eine Uploadsitzung zum Anfügen einer Datei an ein Ereignis:

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

So erstellen Sie eine Uploadsitzung zum Anfügen einer Datei an eine Nachricht:

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

Anforderungsheader

Name Beschreibung
Authorization Bearer {token}. Erforderlich. Erfahren Sie mehr über Authentifizierung und Autorisierung.

Anforderungstext

Geben Sie im Anforderungstext ein JSON-Objekt mit den folgenden Parametern an.

Parameter Typ Beschreibung
Anlageelement AnlageElement Stellt Attribute des Elements dar, das hochgeladen und angefügt werden soll. Geben Sie mindestens den Anlagentyp (file), einen Namen und die Größe der Datei an.

Antwort

Bei erfolgreicher Ausführung gibt diese Methode einen 201 Created Antwortcode und ein neues uploadSession-Objekt im Antworttext zurück.

Hinweis:

Die uploadUrl-Eigenschaft , die als Teil des uploadSession-Antwortobjekts zurückgegeben wird, ist eine nicht transparente URL für nachfolgende PUT Abfragen zum Hochladen von Bytebereichen der Datei. Es enthält das entsprechende Authentifizierungstoken für nachfolgende PUT Abfragen, die durch expirationDateTime ablaufen. Passen Sie diese URL nicht an.

Die nextExpectedRanges-Eigenschaft gibt den nächsten Dateibytespeicherort an, von dem hochgeladen werden soll, "NextExpectedRanges":["2097152"]z. B. Sie müssen die Bytes einer Datei in der korrekten Reihenfolge hochladen.

Beispiele

Beispiel 1: Erstellen einer Uploadsitzung zum Hinzufügen einer großen Anlage zu einem Nachrichtenentwurf

Im folgenden Beispiel wird gezeigt, wie Sie eine Uploadsitzung erstellen, die Sie in nachfolgenden Dateiuploadvorgängen zu der angegebenen Nachricht verwenden können.

Anforderung

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

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

Antwort

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

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

Beispiel 2: Erstellen einer Uploadsitzung, um einem Nachrichtenentwurf eine große Inline-Anlage hinzuzufügen

Im folgenden Beispiel wird gezeigt, wie Sie eine Uploadsitzung erstellen, die verwendet werden kann, um einem Nachrichtenentwurf eine große Inlineanlage hinzuzufügen.

Legen Sie für eine Inline-Anlage die isInline-Eigenschaft auf true und verwenden Sie die contentId-Eigenschaft , um eine CID für die Anlage anzugeben, wie unten dargestellt. Verwenden Sie im Nachrichtentext den gleichen CID-Wert, um die Position anzugeben, an der Sie die Anlage einfügen möchten, z. B <img src="cid:my_inline_picture">. mit einem CID-HTML-Referenztag. Nach erfolgreichem Hochladen der Datei enthält die gerenderte Nachricht die Anlage als Teil des Nachrichtentexts am angegebenen Speicherort.

Anforderung

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

Antwort

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

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