A API Google Drive oferece suporte a 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 baixar ou exportar o conteúdo do arquivo, verifique se os usuários podem baixar o
arquivo usando o capabilities.canDownload campo no files recurso.
Para descrições dos tipos de arquivo mencionados aqui, incluindo arquivos de blob e do Google Workspace, consulte Tipos de arquivo.
O restante deste guia fornece instruções detalhadas para realizar esses tipos de ações de download e exportação.
Baixar conteúdo de arquivo de blob
Para baixar um arquivo de blob armazenado no Drive, use o files.get método com o ID do arquivo a ser baixado e o
alt=media parâmetro de URL. 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
do sistema disponível
em todas as APIs REST do Google. Se você usar uma biblioteca de cliente para a API Drive, não precisará definir esse parâmetro explicitamente.
O exemplo de código a seguir mostra como usar o método files.get para baixar um arquivo com as bibliotecas de cliente da API Drive.
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
Este exemplo de código usa um método de biblioteca que adiciona o parâmetro de URL alt=media à solicitação HTTP subjacente.
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 está autorizado a baixar o conteúdo do arquivo.
Este exemplo de código usa 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
scopes.
Os usuários com permissões owner (para arquivos do Meu Drive) ou
organizer (para arquivos de drives compartilhados) podem restringir o download
pelo
DownloadRestrictionsMetadata
objeto. Para mais informações, consulte Impedir que os usuários baixem, imprimam ou
copiem seu arquivo.
Os arquivos identificados como abusivos
(como softwares nocivos) só podem ser baixados pelo proprietário do arquivo.
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 baixar software 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
Range cabeçalho. Exemplo:
Range: bytes=500-999
Baixar conteúdo de arquivo de blob em uma versão anterior
Só é possível baixar revisões de conteúdo de arquivo de blob marcadas como "Manter indefinidamente". Se você quiser baixar uma revisão, defina-a como "Manter indefinidamente" primeiro. Para mais informações, consulte Especificar revisões a serem salvas da exclusão automática.
Para baixar o conteúdo de arquivos de blob em uma versão anterior, use o
revisions.get método com o ID do
arquivo a ser baixado, o ID da revisão e o alt=media parâmetro de URL. 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. Semelhante a 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.
O protocolo de solicitação é mostrado aqui.
GET https://www.googleapis.com/drive/v3/files/{FILE_ID}/revisions/{REVISION_ID}?alt=mediaBaixar conteúdo de arquivo de blob em um navegador
Para baixar o conteúdo de arquivos de blob armazenados no Drive em um
navegador, em vez de usar a API, use o webContentLink campo do recurso files. Se o usuário tiver acesso de download ao arquivo, um link para baixar o arquivo e o conteúdo dele será retornado. Você pode redirecionar um usuário para esse URL ou oferecê-lo como um link clicável.
Baixar conteúdo de arquivo de blob durante operações de longa duração
Para baixar o conteúdo de arquivos de blob durante operações de longa duração, use o
files.download método com o ID do
arquivo a ser baixado. Opcionalmente, defina 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
fileNotExportable erro.
Para mais informações, consulte Gerenciar operações de longa duração.
Exportar conteúdo de documentos do Google Workspace
Para exportar o conteúdo de bytes de documentos do Google Workspace, use o files.export método com o ID do arquivo a ser exportado e
o tipo Tipo MIME correto. O conteúdo exportado é limitado a 10 MB.
O exemplo de código a seguir mostra como usar o método files.export para exportar um documento do Google Workspace no formato PDF usando as bibliotecas de cliente da API Drive:
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
Este exemplo de código usa o escopo 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
scopes.
O exemplo de código também declara o tipo MIME de exportação como application/pdf. Para uma
lista completa de todos os tipos MIME de exportação aceitos para 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 documentos do Google Workspace em um navegador, use o
exportLinks campo do files recurso. Dependendo do tipo de documento, um link para baixar o arquivo e o conteúdo dele será retornado para cada tipo MIME disponível.
Você pode redirecionar um usuário para um URL ou oferecê-lo como um link clicável.
Exportar conteúdo de documentos do Google Workspace em uma versão anterior em um navegador
Para exportar o conteúdo de documentos do Google Workspace em uma versão anterior em um
navegador, use o revisions.get método com
o ID do arquivo a ser baixado e o ID da revisão para gerar um link de exportação
em que você possa realizar o download. Se o usuário tiver acesso de download ao arquivo, um link para baixar o arquivo e o conteúdo dele será retornado. Você pode redirecionar um usuário para esse URL ou oferecê-lo como um link clicável.
Exportar conteúdo de documentos do Google Workspace durante operações de longa duração
Para exportar o conteúdo de documentos do Google Workspace durante operações de longa duração,
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.