Baixe o conteúdo de um DriveItem

Namespace: microsoft.graph

Baixar o conteúdo do fluxo principal (arquivo) de um driveItem. Somente driveItems com a propriedade file podem ser baixados.

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

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

Permissões

Escolha a permissão ou as permissões marcadas como menos privilegiadas para essa API. Use uma permissão ou permissões privilegiadas mais altas 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 privilegiadas mais altas
Delegado (conta corporativa ou de estudante) Files.Read Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All
Delegado (conta pessoal da Microsoft) Files.Read Files.ReadWrite, Files.Read.All, Files.ReadWrite.All
Application Files.Read.All Files.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All

Solicitação HTTP

GET /drives/{drive-id}/items/{item-id}/content
GET /groups/{group-id}/drive/items/{item-id}/content
GET /me/drive/root:/{item-path}:/content
GET /me/drive/items/{item-id}/content
GET /shares/{shareIdOrEncodedSharingUrl}/driveItem/content
GET /sites/{siteId}/drive/items/{item-id}/content
GET /users/{userId}/drive/items/{item-id}/content

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.
if-none-match Cadeia de caracteres . Se este cabeçalho de solicitação estiver incluso e a eTag (ou cTag) fornecida corresponder à marca atual do arquivo, uma resposta HTTP 304 Not Modified será exibida.

Exemplo

Aqui está um exemplo para baixar um arquivo completo.

Solicitação

GET /me/drive/items/{item-id}/content

Resposta

Retorna um 302 Found redirecionamento de resposta para uma URL de download pré-autenticada para o arquivo, que é a mesma URL disponível por meio da @microsoft.graph.downloadUrl propriedade no DriveItem.

Para baixar o conteúdo do arquivo, seu aplicativo precisa seguir o Location cabeçalho na resposta. Várias bibliotecas de cliente HTTP seguirão automaticamente o redirecionamento 302 e começarão a baixar imediatamente o arquivo.

URLs de download pré-autenticadas são válidas apenas por um curto período de tempo (alguns minutos) e não exigem um Authorization cabeçalho para download.

HTTP/1.1 302 Found
Location: https://b0mpua-by3301.files.1drv.com/y23vmagahszhxzlcvhasdhasghasodfi

Download de arquivos em aplicativos JavaScript

Para baixar arquivos em um aplicativo JavaScript, você não pode usar a /content API, pois isso responde com um 302 redirecionamento. Um 302 redirecionamento é explicitamente proibido quando um pré-vôo cors (compartilhamento de recursos de origem cruzada) é necessário, como ao fornecer o cabeçalho de autorização.

Em vez disso, seu aplicativo precisa selecionar a propriedade @microsoft.graph.downloadUrl, que retorna o mesmo URL para o qual /content direciona. Essa URL pode ser solicitada diretamente usando XMLHttpRequest. Como essas URLs são pré-autenticadas, elas podem ser recuperadas sem uma solicitação de pré-vôo cors.

Exemplo

Para recuperar a URL de download de um arquivo, faça primeiro uma solicitação que inclua a propriedade @microsoft.graph.downloadUrl:

GET /drive/items/{item-ID}?select=id,@microsoft.graph.downloadUrl

A chamada retorna a ID e baixa a URL de um arquivo:

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

{
  "id": "12319191!11919",
  "@microsoft.graph.downloadUrl": "https://..."
}

Você pode fazer uma XMLHttpRequest para a URL fornecida em @microsoft.graph.downloadUrl para recuperar o arquivo.

Downloads de intervalo parcial

Para baixar um intervalo parcial de bytes do arquivo, o aplicativo pode usar o cabeçalho Range conforme especificado em RFC 2616. Você deve acrescentar o Range cabeçalho à URL real @microsoft.graph.downloadUrl e não à solicitação de /content.

GET https://b0mpua-by3301.files.1drv.com/y23vmag
Range: bytes=0-1023

A chamada retorna uma HTTP 206 Partial Content resposta com o intervalo de solicitações de bytes do arquivo. Se o intervalo não puder ser gerado, o cabeçalho Range poderá ser ignorado e uma HTTP 200 resposta será retornada com o conteúdo completo do arquivo.

HTTP/1.1 206 Partial Content
Content-Range: bytes 0-1023/2048
Content-Type: application/octet-stream

<first 1024 bytes of file>

Respostas de erros

Confira mais informações sobre como os erros são retornados em Respostas de Erros.