printDocument: createUploadSession

Namespace: microsoft.graph

Wichtig

APIs unter der /beta Version in Microsoft Graph können geändert werden. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in Version 1.0 verfügbar ist, verwenden Sie die Versionsauswahl .

Erstellen Sie eine Uploadsitzung, mit der eine App iterative Bereiche einer mit dem Druckdokument verknüpften Binärdatei hochladen kann.

Als Teil der Antwort gibt diese Aktion eine Upload-URL zurück, die in nachfolgenden sequenziellen Abfragen PUT verwendet werden kann. Anforderungsheader für jeden Vorgang können verwendet werden, um den genauen Bytebereich anzugeben, PUT der hochgeladen werden soll. Dadurch kann die Übertragung fortgesetzt werden, falls die Netzwerkverbindung während des Uploads nicht mehr besteht.

Hinweis: Das Erstellen einer Uploadsitzung mithilfe von Anwendungsberechtigungen ist nur erfolgreich, wenn für den zugeordneten Druckauftrag ein printTask-Status vor liegt, der von einem Trigger gestartet wurde, den die anfordernde processing App erstellt hat. Weitere Informationen zum Registrieren eines Aufgabenauslösers finden Sie unter Extending Universal Print to support pull printing.

Berechtigungen

Zum Aufrufen dieser API ist eine der folgenden Berechtigungen erforderlich. Weitere Informationen, unter anderem zur Auswahl von Berechtigungen, finden Sie unter Berechtigungen. Zusätzlich zu den folgenden Berechtigungen muss der Mandant des Benutzers oder der App über ein aktives Universelles Druckabonnement verfügen und über eine Berechtigung verfügen, die drucker- oder druckerfreigabenzugriff erhalten gewährt, je nachdem, ob drucker oder printerShare verwendet wird.

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 (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 zu hochladenden 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 als contentType für application/oxps drucker/printerShare übergeben, der application/pdf unterstützt. 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 wird application/oxps in printerCapabilities NICHT unterstützt.
  3. Der Wert für die contentType-Eigenschaft im Anforderungstext ist application/oxps .

Antwort

Wenn die Methode erfolgreich ist, werden der Antwortcode und 200 OK ein neues uploadSession-Objekt im Antworttext zurückgegeben.

Hinweis: Die uploadUrl-Eigenschaft, die als Teil des uploadSession-Antwortobjekts zurückgegeben wird, ist eine undurchsichtige URL für nachfolgende Abfragen zum Hochladen von PUT Bytebereichen der Datei. Es enthält das entsprechende Authentifizierungstoken für nachfolgende PUT Abfragen, die durch 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/beta/print/shares/1c879027-5120-4aaf-954a-ebfd509a3bcc/jobs/46207/documents/9001bcd9-e36a-4f51-bfc6-140c3ad7f9f7/createUploadSession
Content-type: application/json

{
  "properties": {
    "documentName": "TestFile.pdf",
    "contentType": "application/pdf", 
    "size": 4533322
  }
}

Antwort

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$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"
    ]
}