A API Google Drive é compatível com vários tipos de ações de download e exportação, conforme listado na tabela a seguir:
| Ações de download |
|
||||
| Ações de exportação |
|
Antes de fazer o download ou exportar o conteúdo do arquivo, verifique se os usuários podem baixar o
arquivo usando o campo capabilities.canDownload no recurso files.
Para descrições dos tipos de arquivo mencionados aqui, incluindo blob e arquivos do Google Workspace, consulte Tipos de arquivo.
O restante deste documento fornece instruções detalhadas para realizar esses tipos de ações de download e exportação.
Baixar conteúdo do arquivo blob
Para fazer o download de um arquivo blob armazenado no Drive, use o método files.get com o ID do arquivo a ser baixado e o parâmetro de URL alt=media. O parâmetro de URL alt=media informa ao servidor que um
download de conteúdo está sendo solicitado como um formato de resposta alternativo.
O parâmetro de URL alt=media é um parâmetro de sistema disponível em todas as APIs REST do Google. Se você usar uma biblioteca de cliente da API Drive,
não será necessário definir explicitamente esse parâmetro, já que o método da biblioteca de cliente
adiciona o parâmetro de URL alt=media à solicitação HTTP subjacente.
Os exemplos de código a seguir mostram como usar o método files.get para baixar um
arquivo:
Apps Script
/**
* Downloads a file from Drive.
* @param {string} fileId The ID of the file to download.
* @return {Blob} The file content as a Blob.
*/
function downloadFile(fileId) {
var url = 'https://www.googleapis.com/drive/v3/files/' + fileId + '?alt=media';
var response = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
}
});
return response.getBlob();
}
Java
Python
Node.js
PHP
.NET
curl
curl -L "https://www.googleapis.com/drive/v3/files/FILE_ID?alt=media" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--output "FILE_NAME"
Substitua:
- FILE_ID: o ID do arquivo a ser baixado.
- ACCESS_TOKEN: o token de acesso que concede acesso à API.
- FILE_NAME: o nome do arquivo de saída.
Os downloads de arquivos iniciados no seu app precisam ser autorizados com um escopo que permita
acesso de leitura ao conteúdo do arquivo. Por exemplo, um app que usa o
escopo drive.readonly.metadata não tem autorização para fazer o download do conteúdo do arquivo.
As amostras de código da biblioteca de cliente usam o escopo de arquivo restrito drive, que permite
aos usuários visualizar e gerenciar todos os arquivos do Drive. Para saber mais sobre os escopos do Drive, consulte Escolher escopos da API Google Drive.
Os usuários com permissões owner (para arquivos do Meu Drive) ou organizer (para arquivos de drive compartilhado) podem restringir o download usando o objeto DownloadRestrictionsMetadata. Para mais informações, consulte Impedir que os usuários baixem, imprimam ou copiem seu arquivo.
Os arquivos identificados como abusivos
(como software malicioso) só podem ser baixados pelo proprietário.
Além disso, o parâmetro de consulta get acknowledgeAbuse=true precisa ser incluído para indicar que o usuário reconheceu o risco de fazer o download de software potencialmente indesejado ou outros arquivos abusivos. Seu aplicativo precisa avisar o usuário de forma interativa antes de usar esse parâmetro de consulta.
Download parcial
O download parcial envolve o download apenas de uma parte especificada de um arquivo. É
possível especificar a parte do arquivo que você quer baixar usando um intervalo
de bytes com o cabeçalho
Range. Exemplo:
Range: bytes=500-999
Baixar o conteúdo do arquivo blob em uma versão anterior
Só é possível baixar revisões de conteúdo de arquivos blob marcadas como "Manter indefinidamente". Se quiser baixar uma revisão, defina como "Manter indefinidamente" primeiro. Para mais informações, consulte Especificar revisões para salvar da exclusão automática.
Para fazer o download do conteúdo de arquivos blob em uma versão anterior, use o método revisions.get com o ID do arquivo a ser baixado, o ID da revisão e o parâmetro de URL alt=media. O parâmetro de URL alt=media informa ao servidor que um download de conteúdo está sendo solicitado como um formato de resposta alternativo. Assim como files.get, o método
revisions.get também aceita o parâmetro de consulta opcional
acknowledgeAbuse e o cabeçalho Range. Para mais informações, consulte Gerenciar
operações de longa duração.
curl
curl -L "https://www.googleapis.com/drive/v3/files/FILE_ID/revisions/REVISION_ID?alt=media" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--output "FILE_NAME"
Substitua:
- FILE_ID: o ID do arquivo a ser baixado.
- REVISION_ID: o ID da revisão a ser baixada.
- ACCESS_TOKEN: o token de acesso que concede acesso à API.
- FILE_NAME: o nome do arquivo de saída.
Fazer o download do conteúdo de um arquivo blob em um navegador
Para baixar o conteúdo de arquivos blob armazenados no Drive em um navegador, em vez de usar a API, use o campo webContentLink do recurso files. Se o usuário tiver acesso para fazer o download do arquivo,
um link para baixar o arquivo e o conteúdo dele será retornado. É possível redirecionar um usuário para esse URL ou oferecê-lo como um link clicável.
curl
curl "https://www.googleapis.com/drive/v3/files/FILE_ID?fields=webContentLink" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Accept: application/json"
Substitua:
- FILE_ID: o ID do arquivo para receber o link de download.
- ACCESS_TOKEN: o token de acesso que concede acesso à API.
Baixar conteúdo de arquivo blob usando operações de longa duração
Para baixar o conteúdo de arquivos blob usando operações de longa duração (LROs), use
o método files.download com o ID do
arquivo a ser baixado. Também é possível definir o ID da revisão.
Essa é a única maneira de baixar arquivos do Google Vids. Se você tentar exportar arquivos do Google Vids, vai receber um erro fileNotExportable.
Para mais informações, consulte Gerenciar operações de longa
duração.
curl
O comando curl a seguir inicia um LRO e retorna uma resposta JSON. Para baixar o arquivo ou fazer uma pesquisa com essa LRO, faça outra solicitação usando o ID retornado para receber o URL do conteúdo. Em seguida, faça uma solicitação curl final para esse URL e baixe o arquivo. Para mais informações, consulte Gerenciar operações de longa duração.
curl --request POST "https://www.googleapis.com/drive/v3/files/FILE_ID/download?mimeType=video/mp4" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Content-Length: 0" \
--header "Accept: application/json"
Substitua:
- FILE_ID: o ID do arquivo a ser baixado.
- ACCESS_TOKEN: o token de acesso que concede acesso à API.
Exportar conteúdo de documentos do Google Workspace
Para exportar o conteúdo de bytes de documentos do Google Workspace, use o método files.export com o ID do arquivo a ser exportado e o tipo MIME correto. O conteúdo exportado é limitado a 10 MB.
Os exemplos de código a seguir mostram como usar o método files.export para exportar um
documento do Google Workspace em formato PDF:
Apps Script
/**
* Exports a Google Workspace document.
* @param {string} fileId The ID of the file to export.
* @param {string} mimeType The MIME type to export to.
* @return {Blob} The exported content as a Blob.
*/
function exportPdf(fileId, mimeType) {
var url = 'https://www.googleapis.com/drive/v3/files/' + fileId + '/export?mimeType=' + encodeURIComponent(mimeType);
var response = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
}
});
return response.getBlob();
}
Java
Python
Node.js
PHP
.NET
curl
curl -L "https://www.googleapis.com/drive/v3/files/FILE_ID/export?mimeType=application/pdf" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--output "FILE_NAME.pdf"
Substitua:
- FILE_ID: o ID do arquivo a ser baixado.
- ACCESS_TOKEN: o token de acesso que concede acesso à API.
- FILE_NAME: o nome do arquivo de saída.
As amostras de código da biblioteca de cliente usam o escopo restrito drive, que permite que
os usuários vejam e gerenciem todos os seus arquivos do Drive. Para saber mais sobre os escopos do Drive, consulte Escolher escopos da API Google Drive.
Os exemplos de código também declaram o tipo MIME de exportação como application/pdf. Para uma lista completa de todos os tipos MIME de exportação compatíveis com cada documento do Google Workspace, consulte Tipos MIME de exportação para documentos do Google Workspace.
Exportar conteúdo de documentos do Google Workspace em um navegador
Para exportar o conteúdo de um documento do Google Workspace em um navegador, use o campo exportLinks do recurso files. Dependendo do tipo de documento, um link para baixar o arquivo e o conteúdo dele é retornado para cada tipo MIME disponível. É possível redirecionar um usuário para um URL ou oferecê-lo como um link clicável.
curl
curl "https://www.googleapis.com/drive/v3/files/FILE_ID?fields=id,name,exportLinks" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Accept: application/json"
Substitua:
- FILE_ID: o ID do arquivo para receber o link de download.
- ACCESS_TOKEN: o token de acesso que concede acesso à API.
Exportar conteúdo de documentos do Google Workspace em uma versão anterior em um navegador
Para exportar o conteúdo de um documento do Google Workspace em uma versão anterior em um navegador, use o método revisions.get com o ID do arquivo a ser baixado e o ID da revisão para gerar um link de exportação em que você pode fazer o download. Se o usuário tiver acesso para baixar o arquivo, um link para fazer isso e acessar o conteúdo dele será retornado. É possível redirecionar um usuário para esse URL ou oferecê-lo como um link clicável.
curl
curl "https://www.googleapis.com/drive/v3/files/FILE_ID/revisions/REVISION_ID?fields=id,name,exportLinks" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Accept: application/json"
Substitua:
- FILE_ID: o ID do arquivo a ser baixado.
- REVISION_ID: o ID da revisão a ser baixada.
- ACCESS_TOKEN: o token de acesso que concede acesso à API.
Exportar conteúdo de documentos do Google Workspace usando operações de longa duração
Para exportar o conteúdo de documentos do Google Workspace usando operações de longa duração (LROs), use o método files.download com o ID do arquivo a ser baixado e o ID da revisão. Para mais informações,
consulte Gerenciar operações de longa duração.
curl
O comando curl a seguir inicia um LRO e retorna uma resposta JSON. Para baixar o arquivo ou fazer uma pesquisa com essa LRO, faça outra solicitação usando o ID retornado para receber o URL do conteúdo. Em seguida, faça uma solicitação curl final para esse URL e baixe o arquivo. Para mais informações, consulte Gerenciar operações de longa duração.
curl --request POST "https://www.googleapis.com/drive/v3/files/FILE_ID/download?mimeType=MIME_TYPE&revisionId=REVISION_ID" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Content-Length: 0" \
--header "Accept: application/json"
Substitua:
- FILE_ID: o ID do arquivo a ser baixado.
- MIME_TYPE: o tipo MIME para exportar.
- REVISION_ID: o ID da revisão a ser baixada.
- ACCESS_TOKEN: o token de acesso que concede acesso à API.