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.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de