Baixe o conteúdo de um DriveItem
Namespace: microsoft.graph
Aviso
Esse ponto de extremidade requer que o TLS 1.2 funcione normalmente. A Microsoft anuncia a deprecação do TLS 1.0 e 1.1 para os serviços Office 365 e do Azure AD. Embora a Microsoft Graph suporte a esses dois protocolos, você pode ter erros no nível de transporte. Para obter mais informações sobre a deprecação do TLS 1.0 e 1.1, consulte Habilitar o suporte ao TLS 1.2 em seu ambiente.
Baixar o conteúdo do fluxo principal (arquivo) de um driveItem. Somente driveItems com a propriedade file podem ser baixados.
Permissões
Uma das seguintes permissões é obrigatória para chamar esta API. Para saber mais, incluindo como escolher permissões, confira Permissões.
| Tipo de permissão | Permissões (da com menos para a com mais privilégios) |
|---|---|
| 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 |
| Aplicativo | 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 opcionais
| Nome | Valor | Descrição |
|---|---|---|
| if-none-match | String | 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 uma resposta 302 Found que redireciona para uma URL de download previamente autenticada do arquivo. Esta é a mesma URL disponível por meio da propriedade @microsoft.graph.downloadUrl no DriveItem.
Para baixar o conteúdo do arquivo, seu aplicativo precisará seguir o cabeçalho Location 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 previamente autenticadas são válidas apenas por um curto período de tempo (alguns minutos) e não requerem um cabeçalho Authorization 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, não é possível usar a API /content, pois isso responde com um redirecionamento 302. O redirecionamento 302 é explicitamente proibido quando uma simulação do Cross-Origin Resource Sharing (CORS) é necessária, como ao fornecer o cabeçalho Authorization.
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 previamente autenticadas, podem ser recuperadas sem uma solicitação de simulação de 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
Isso retornará a ID e o URL de download para 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. Observe que você deve acrescentar o cabeçalho Range à URL @microsoft.graph.downloadUrl real e não à solicitação para /content.
GET https://b0mpua-by3301.files.1drv.com/y23vmag
Range: bytes=0-1023
Isso retornará uma resposta HTTP 206 Partial Content com o intervalo de solicitação de bytes do arquivo. Se o intervalo não puder ser gerado, o cabeçalho do Intervalo poderá ser ignorado, e uma resposta HTTP 200 será retornada com todo o conteúdo 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 erro
Confira mais informações sobre como os erros são retornados em Respostas de Erros.
Comentários
Enviar e exibir comentários de