printDocument: createUploadSession

Namespace: microsoft.graph

Erstellen Sie eine Uploadsitzung, die es einer App ermöglicht, Bereiche einer Binärdatei, die mit dem Druckdokument verknüpft ist, iterativ hochzuladen.

Im Rahmen der Antwort gibt diese Aktion eine Upload-URL zurück, die in nachfolgenden sequenziellen PUT Abfragen verwendet werden 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 im processing zugehörigen Druckauftrag vorhanden ist, der von einem Trigger gestartet wurde, den die anfordernde App erstellt hat. Ausführliche Informationen zum Registrieren eines Tasktriggers finden Sie unter Erweitern des universellen Druckens zur Unterstützung des Pulldrucks.

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

Globaler Dienst US Government L4 US Government L5 (DOD) China, betrieben von 21Vianet

Berechtigungen

Wählen Sie für diese API die Als am wenigsten privilegierten Berechtigungen gekennzeichneten Berechtigungen aus. Verwenden Sie nur dann eine Berechtigung mit höheren Berechtigungen , wenn dies für Ihre App erforderlich ist. 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) PrintJob.Create PrintJob.ReadWrite, PrintJob.ReadWrite.All
Delegiert (persönliches Microsoft-Konto) Nicht unterstützt Nicht unterstützt
Anwendung PrintJob.ReadWrite.All Nicht verfügbar.

HTTP-Anforderung

So erstellen Sie eine Uploadsitzung mit dem Drucker:

POST /print/printers/{id}/jobs/{id}/documents/{id}/createUploadSession

So erstellen Sie eine Uploadsitzung mit printerShare (nur mit delegierten Berechtigungen unterstützt):

POST /print/shares/{id}/jobs/{id}/documents/{id}/createUploadSession

Anforderungsheader

Name Beschreibung
Authorization Bearer {token}. Erforderlich. Erfahren Sie mehr über die Authentifizierung und Autorisierung.
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 Drucker/printerShare unterstützt werden. Sie können die unterstützten Inhaltstypen abrufen, indem Sie printerCapabilities of the printer/printerShare abrufen.

Für die Konvertierung von OXPS in PDF müssen Sie als contentType für printer/printerShare übergeben application/oxps , der unterstützt application/pdf. Universal Print konvertiert OXPS in PDF, wenn alle folgenden Bedingungen erfüllt sind:

  1. Die Drucker-/Druckerfreigabe unterstützt application/pdf in printerCapabilities.
  2. Die Drucker-/Druckerfreigabe unterstützt application/oxps in printerCapabilities NICHT.
  3. Der Wert für die contentType-Eigenschaft 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 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 um 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"
    ]
}