Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.
Baixar o conteúdo do fluxo principal (arquivo) de um driveItem. Somente objetos driveItem com a propriedade file podem ser baixados.
Para obter a ID do item a ser baixado, consulte Get driveItem.
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) | 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 |
Observação
O SharePoint Embedded requer a FileStorageContainer.Selected permissão para acessar o conteúdo do contêiner. Essa permissão é diferente das mencionadas anteriormente. Além das permissões do Microsoft Graph, seu aplicativo deve ter as permissões de tipo de contêiner necessárias para chamar essa API. Para obter mais informações, consulte Autenticação e autorização do SharePoint Embedded.
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 | 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á retornada. Opcional. |
| Preferir: forceInfectedDownload | Se fornecida, a solicitação pode baixar um arquivo infectado. Para solicitações delegadas, se a configuração de locatário DisallowInfectedFileDownload estiver habilitada, somente administradores de locatários ou administradores globais poderão baixar o arquivo. As solicitações somente de aplicativo baixam um arquivo infectado, independentemente das configurações do locatário. Opcional. |
Exemplo
O exemplo a seguir mostra uma solicitação sobre como baixar um arquivo completo.
Solicitação
GET /me/drive/items/{item-id}/content
Resposta
O exemplo a seguir mostra a resposta.
Retorna uma 302 Found resposta redirecionando para uma URL de download pré-autenticada do arquivo.
É 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.
Muitas bibliotecas de cliente HTTP seguem o redirecionamento 302 e iniciam o download do arquivo imediatamente.
As 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 serem baixadas.
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 ela responde com um 302 redirecionamento.
Um 302 redirecionamento é explicitamente proibido quando uma comprovação de CORS (Compartilhamento de Recursos entre Origens) é necessária, como ao fornecer o cabeçalho 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 simulaçã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 a URL de download 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 anexar 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ção 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
<first 1024 bytes of file>
Respostas de erros
Consulte Respostas de erro para obter mais informações sobre como os erros são retornados.