printDocument: createUploadSession
Namespace: microsoft.graph
Erstellen Sie eine Uploadsitzung, die es einer App ermöglicht, Bereiche einer binären Datei, die mit dem Druckdokument verknüpft ist, iterativ hochzuladen.
Als Teil der Antwort gibt diese Aktion eine Upload-URL zurück, die in nachfolgenden sequenziellen Abfragen verwendet werden PUT kann. Anforderungsheader für jeden PUT Vorgang können verwendet werden, um den genauen Bytebereich anzugeben, der hochgeladen werden soll. Dadurch kann die Übertragung fortgesetzt werden, falls die Netzwerkverbindung während des Uploads unterbrochen wird.
Hinweis: Das Erstellen einer Uploadsitzung mit Anwendungsberechtigungen ist nur erfolgreich, wenn ein printTask-Vorgang in einem
processingZustand des zugeordneten Druckauftrags vorhanden ist, der durch einen Trigger gestartet wird, den die anfordernde App erstellt hat. Ausführliche Informationen zum Registrieren eines Aufgabenauslösers finden Sie unter Extending Universal Print to support pull printing.
Berechtigungen
Eine der nachfolgenden Berechtigungen ist erforderlich, um diese API aufrufen zu können. Weitere Informationen, unter anderem zur Auswahl von Berechtigungen, finden Sie im Artikel zum Thema Berechtigungen.
Zusätzlich zu den folgenden Berechtigungen muss der Mandant des Benutzers oder der App über ein aktives Universelles Druckabonnement und eine Berechtigung verfügen, die abhängig davon, ob Printer oder printerShare verwendet wird, Zugriff auf "Drucker abrufen" oder "Druckerfreigabe abrufen" gewährt.
| Berechtigungstyp | Berechtigungen (von der Berechtigung mit den wenigsten Rechten zu der mit den meisten Rechten) |
|---|---|
| Delegiert (Geschäfts-, Schul- oder Unikonto) | PrintJob.Create, PrintJob.ReadWrite, PrintJob.ReadWrite.All |
| Delegiert (persönliches Microsoft-Konto) | Nicht unterstützt. |
| Anwendung | PrintJob.ReadWrite.All |
HTTP-Anforderung
So erstellen Sie eine Uploadsitzung mithilfe des Druckers:
POST /print/printers/{id}/jobs/{id}/documents/{id}/createUploadSession
So erstellen Sie eine Uploadsitzung mit printerShare (wird nur mit delegierten Berechtigungen unterstützt):
POST /print/shares/{id}/jobs/{id}/documents/{id}/createUploadSession
Anforderungsheader
| Name | Beschreibung |
|---|---|
| Authorization | Bearer {token}. Erforderlich. |
| Content-Type | application/json. Erforderlich. |
Anforderungstext
Geben Sie im Anforderungstext ein JSON-Objekt mit den folgenden Parametern an.
| Parameter | Typ | Beschreibung |
|---|---|---|
| properties | printDocumentUploadProperties | Stellt die Eigenschaften der hochzuladenden Binärdatei dar. |
Der Wert der contentType-Eigenschaft im Anforderungstext sollte vom Printer/PrinterShare unterstützt werden. Sie können die unterstützten Inhaltstypen abrufen, indem Sie printerCapabilities des Druckers/printerShare abrufen.
Für die Konvertierung von OXPS in PDF müssen Sie application/oxps als contentType für Drucker/PrinterShare übergeben, der application/pdf unterstützt. Universal Print konvertiert OXPS in PDF, wenn alle folgenden Bedingungen erfüllt sind:
- Die Drucker-/Druckerfreigabe wird
application/pdfin printerCapabilities unterstützt. - Die Drucker-/Druckerfreigabe wird
application/oxpsin printerCapabilities NICHT unterstützt. - Der Wert für die eigenschaft contentType im Anforderungstext ist
application/oxps.
Antwort
Bei erfolgreicher Ausführung gibt die Methode den 200 OK 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 undurchsichtige URL für nachfolgende Abfragen zum Hochladen von
PUTBytebereichen der Datei. Es enthält das entsprechende Authentifizierungstoken für nachfolgendePUTAbfragen, die bis expirationDateTime ablaufen. Ändern Sie diese URL nicht.
Beispiele
Das folgende Beispiel zeigt, wie Sie eine Uploadsitzung erstellen, die Sie in nachfolgenden Dateiuploadvorgängen in das angegebene printDocument verwenden können.
Anforderung
POST https://graph.microsoft.com/v1.0/print/printers/{printerId}/jobs/{printJobId}/documents/{printDocumentId}/createUploadSession
Content-Type: application/json
{
"properties": {
"documentName": "TestFile.pdf",
"contentType": "application/pdf",
"size": 4533322
}
}
Antwort
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.uploadSession",
"uploadUrl": "https://print.print.microsoft.com/uploadSessions/5400be13-5a4e-4c20-be70-90c85bfe5d6e?tempauthtoken={token}",
"expirationDateTime": "2020-10-25T02:19:38.1694207Z",
"nextExpectedRanges": [
"0-4533321"
]
}
Feedback
Feedback senden und anzeigen für