Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você 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. Apenas os objetos driveItem com a propriedade de ficheiro podem ser transferidos.
Para obter o ID do item a transferir, veja Obter driveItem.
Esta API está disponível nas seguintes implementações de cloud nacionais.
| Serviço global | US Government L4 | US Government L5 (DOD) | China operada pela 21Vianet |
|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ |
Permissões
Escolha a permissão ou permissões marcadas como menos privilegiadas para esta API. Utilize uma permissão ou permissões com privilégios mais elevados apenas se a sua aplicação o exigir. Para obter detalhes sobre as permissões delegadas e de aplicação, veja Tipos de permissão. Para saber mais sobre estas permissões, veja a referência de permissões.
| Tipo de permissão | Permissões com menos privilégios | Permissões com privilégios superiores |
|---|---|---|
| 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 aceder ao conteúdo do contentor. Esta permissão é diferente das mencionadas anteriormente. Além das permissões do Microsoft Graph, a sua aplicação tem de ter as permissões de tipo de contentor necessárias para chamar esta API. Para obter mais informações, veja Autorização e autenticaçã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 for fornecido, o pedido pode transferir um ficheiro infetado. Para pedidos delegados, se a definição de inquilino DisallowInfectedFileDownload estiver ativada, apenas os administradores inquilinos ou administradores globais poderão transferir o ficheiro. Os pedidos apenas de aplicação transferem um ficheiro infetado, independentemente das definições do inquilino. Opcional. |
Exemplo
O exemplo seguinte mostra um pedido sobre como transferir um ficheiro completo.
Solicitação
GET /me/drive/items/{item-id}/content
Resposta
O exemplo a seguir mostra a resposta.
Devolve uma 302 Found resposta redirecionando para um URL de transferência pré-autenticado para o ficheiro.
É o mesmo URL disponível através da @microsoft.graph.downloadUrl propriedade no DriveItem.
Para transferir o conteúdo do ficheiro, a sua aplicação tem de seguir o Location cabeçalho na resposta.
Muitas bibliotecas de cliente HTTP seguem o redirecionamento 302 e começam imediatamente a transferir o ficheiro.
Os URLs de transferência pré-autenticados só são válidos por um curto período de tempo (alguns minutos) e não necessitam de um Authorization cabeçalho para transferir.
HTTP/1.1 302 Found
Location: https://b0mpua-by3301.files.1drv.com/y23vmagahszhxzlcvhasdhasghasodfi
Download de arquivos em aplicativos JavaScript
Para transferir ficheiros numa aplicação JavaScript, não pode utilizar a /content API porque responde com um 302 redirecionamento.
Um 302 redirecionamento é explicitamente proibido quando é necessária uma verificação prévia da Partilha de Recursos Transversais à Origem (CORS), tal 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.
Uma vez que estes URLs são pré-autenticados, podem ser obtidos sem um pedido de verificação prévia 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 devolve o ID e o URL de transferência de um ficheiro:
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.
Tem de acrescentar o Range cabeçalho ao URL real @microsoft.graph.downloadUrl e não ao pedido de /content.
GET https://b0mpua-by3301.files.1drv.com/y23vmag
Range: bytes=0-1023
A chamada devolve uma HTTP 206 Partial Content resposta com o intervalo de bytes de pedido do ficheiro.
Se não for possível gerar o intervalo, o cabeçalho Intervalo poderá ser ignorado e será devolvida uma HTTP 200 resposta com o conteúdo completo do ficheiro.
HTTP/1.1 206 Partial Content
Content-Range: bytes 0-1023/2048
<first 1024 bytes of file>
Respostas de erros
Veja Respostas de erros para obter mais informações sobre como os erros são devolvidos.