printDocument: createUploadSession

Пространство имен: microsoft.graph

Важно!

API версии /beta в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.

Создайте сеанс отправки, позволяющий приложению итеративно отправлять диапазоны двоичного файла, связанного с печатным документом.

В ответ это действие возвращает URL-адрес отправки, который можно использовать в последующих последовательных запросах PUT . Заголовки запроса для каждой PUT операции можно использовать для указания точного диапазона загружаемых байтов. Это позволяет возобновить передачу в случае обрыва сетевого подключения во время отправки.

Примечание. Создание сеанса отправки с использованием разрешений приложения будет успешным только в processing том случае, если в связанном задании печати имеется printTask, запущенный триггером, созданным запрашивающим приложением. Подробные сведения о регистрации триггера задачи см. в статье Расширение функции универсальной печати для поддержки печати по запросу.

Этот API доступен в следующих национальных облачных развертываниях.

Глобальное обслуживание Правительство США L4 Правительство США L5 (DOD) Китай, обслуживаемый 21Vianet
✅ ✅ ✅ ❌

Разрешения

Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более высокий уровень привилегий или разрешений, только если это требуется вашему приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в статье Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.

Тип разрешения Разрешения с наименьшим объемом привилегий Разрешения с более высоким уровнем привилегий
Делегированные (рабочая или учебная учетная запись) PrintJob.Create PrintJob.ReadWrite, PrintJob.ReadWrite.All
Делегированные (личная учетная запись Майкрософт) Не поддерживается. Не поддерживается.
Приложение PrintJob.ReadWrite.All Недоступно.

HTTP-запрос

Чтобы создать сеанс отправки с помощью принтера:

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

Чтобы создать сеанс отправки с помощью printerShare (поддерживается только с делегированными разрешениями):

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

Заголовки запросов

Имя Описание
Авторизация Bearer {token}. Обязательно. Дополнительные сведения об аутентификации и авторизации.
Content-Type application/json. Обязательно.

Текст запроса

В тексте запроса предоставьте JSON-объект с указанными ниже параметрами.

Параметр Тип Описание
properties printDocumentUploadProperties Представляет свойства двоичного файла, который нужно отправить.

Значение свойства contentType в тексте запроса должно поддерживаться printer/printerShare. Поддерживаемые типы содержимого можно получить, получив printerCapabilities раздела printer/printerShare.

Для преобразования OXPS в PDF необходимо передать application/oxps значение contentType для printer/printerShare, поддерживающего application/pdf. Универсальная печать преобразует OXPS в PDF, если выполняются все следующие условия:

  1. Общий ресурс принтера или папки поддерживается application/pdf в printerCapabilities.
  2. Общий ресурс принтера или принтера не поддерживается application/oxps в printerCapabilities.
  3. Значение свойства contentType в тексте запроса равно application/oxps.

Отклик

В случае успеха этот метод возвращает код ответа 200 OK и новый объект uploadSession в тексте ответа.

Примечание. Свойство uploadUrl, возвращаемое как часть объекта ответа uploadSession , является непрозрачным URL-адресом для последующих PUT запросов на передачу диапазонов байтов файла. Он содержит соответствующий маркер проверки подлинности для последующих PUT запросов, срок действия которых истекает по истечении срока действияDateTime. Не изменяйте этот URL-адрес.

Примеры

В следующем примере показано, как создать сеанс отправки, который можно использовать в последующих операциях отправки файла в указанный printDocument.

Запрос

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

Отклик

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