printDocument: createUploadSession

Namespace: microsoft.graph

Importante

As APIs na versão /beta no Microsoft Graph estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção. Para determinar se uma API está disponível na v1.0, use o seletor Versão.

Crie uma sessão de upload que permita que um aplicativo carregue iterativamente intervalos de um arquivo binário vinculado ao documento impresso.

Como parte da resposta, essa ação retorna uma URL de upload que pode ser usada em consultas sequenciais PUT subsequentes. Os cabeçalhos de solicitação de cada PUT operação podem ser usados para especificar o intervalo exato de bytes a serem carregados. Isso permite que a transferência seja retomada, caso a conexão de rede seja interrompida durante o upload.

Observação: a criação de uma sessão de upload usando permissões de aplicativo só terá êxito se houver um printTask em um processing estado no trabalho de impressão associado, iniciado por um gatilho criado pelo aplicativo solicitante. Para obter detalhes sobre como registrar um gatilho de tarefa, consulte Estendendo a Impressão Universal para oferecer suporte à impressão pull.

Essa API está disponível nas seguintes implantações de nuvem nacional.

Serviço global Governo dos EUA L4 US Government L5 (DOD) China operada pela 21Vianet

Permissões

Escolha a(s) permissão(s) marcada(s) como menos privilegiada(s) para essa API. Use uma permissão ou permissões com privilégios mais altos somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.

Tipo de permissão Permissões menos privilegiadas Permissões com privilégios mais elevados
Delegado (conta corporativa ou de estudante) PrintJob.Create PrintJob.ReadWrite, PrintJob.ReadWrite.All
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application PrintJob.ReadWrite.All Indisponível.

Solicitação HTTP

Para criar uma sessão de upload usando a impressora:

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

Para criar uma sessão de upload usando printerShare (com suporte apenas com permissões delegadas):

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

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.
Content-type application/json. Obrigatório.

Corpo da solicitação

Forneça um objeto JSON com os seguintes parâmetros no corpo da solicitação.

Parâmetro Tipo Descrição
properties printDocumentUploadProperties Representa as propriedades do arquivo binário a ser carregado.

O valor da propriedade contentType no corpo da solicitação deve ser suportado pelo printer/printerShare. Você pode obter os tipos de conteúdo compatíveis obtendo printerCapabilities da impressora/printerShare.

Para conversão de OXPS para PDF , você precisa passar application/oxps como contentType para impressora/printerShare que dá suporte a application/pdf. A Impressão Universal converte OXPS em PDF, quando todas as seguintes condições são atendidas:

  1. O compartilhamento de impressora/impressora dá suporte application/pdf a em printerCapabilities.
  2. O compartilhamento impressora/impressora não dá suporte application/oxps a printerCapabilities.
  3. O valor da propriedade contentType no corpo da solicitação é application/oxps.

Resposta

Se for bem-sucedido, esse método retornará um código de 200 OK resposta e um novo objeto uploadSession no corpo da resposta.

Observação: a propriedade uploadUrl retornada como parte do objeto de resposta uploadSession é uma URL opaca para consultas subsequentes PUT para carregar intervalos de bytes do arquivo. Ele contém o token de autenticação apropriado para consultas subsequentes PUT que expiram em expirationDateTime. Não altere esta URL.

Exemplos

O exemplo a seguir mostra como criar uma sessão de upload que você pode usar em operações subsequentes de upload de arquivo para o printDocument especificado.

Solicitação

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

Resposta

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