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
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 | 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
Eis um exemplo para transferir um ficheiro completo.
Solicitação
GET /me/drive/items/{item-id}/content
Resposta
Devolve uma 302 Found resposta redirecionando para um URL de transferência pré-autenticado para o ficheiro, que é 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.
Várias bibliotecas de cliente HTTP seguirão automaticamente o redirecionamento 302 e começarão a baixar imediatamente o arquivo.
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, uma vez que esta ação 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
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.