L'API Google Drive est compatible avec plusieurs types d'actions de téléchargement et d'exportation, comme indiqué dans le tableau suivant :
| Actions de téléchargement |
|
||||
| Actions d'exportation |
|
Avant de télécharger ou d'exporter le contenu d'un fichier, vérifiez que les utilisateurs peuvent télécharger le
fichier à l'aide du champ capabilities.canDownload de la ressource files.
Pour obtenir des descriptions des types de fichiers mentionnés ici, y compris les fichiers blob et Google Workspace, consultez Types de fichiers.
Le reste de ce guide fournit des instructions détaillées pour effectuer ces types d'actions de téléchargement et d'exportation.
Télécharger le contenu d'un fichier blob
Pour télécharger un fichier blob stocké sur Drive, utilisez la files.get méthode avec l'ID du fichier à télécharger et le
alt=media paramètre d'URL. Le paramètre d'URL alt=media indique au serveur qu'un téléchargement de contenu est demandé en tant que format de réponse alternatif.
Le paramètre d'URL alt=media est un paramètre
système disponible
dans toutes les API Google REST. Si vous utilisez une bibliothèque cliente pour l'API Drive, vous n'avez pas besoin de définir explicitement ce paramètre.
L'exemple de code suivant montre comment utiliser la méthode files.get pour télécharger un fichier avec les bibliothèques clientes de l'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
Cet exemple de code utilise une méthode de bibliothèque qui ajoute le paramètre d'URL alt=media à la requête HTTP sous-jacente.
Les téléchargements de fichiers lancés depuis votre application doivent être autorisés avec une autorisation qui permet un accès en lecture au contenu du fichier. Par exemple, une application utilisant l'autorisation drive.readonly.metadata n'est pas autorisée à télécharger le contenu du fichier.
Cet exemple de code utilise l'autorisation de fichier "drive" limitée qui permet aux utilisateurs d'afficher et de gérer tous vos fichiers Drive. Pour en savoir plus sur les
autorisations Drive, consultez Choisir les autorisations de l'API Google Drive
scopes.
Les utilisateurs disposant des autorisations owner (pour les fichiers Mon Drive) ou
organizer (pour les fichiers Drive partagés) peuvent limiter le téléchargement
via l'
DownloadRestrictionsMetadata
objet. Pour en savoir plus, consultez Empêcher les utilisateurs de télécharger, d'imprimer ou de
copier votre fichier.
Les fichiers identifiés comme abusifs
(tels que les logiciels malveillants) ne peuvent être téléchargés que par leur propriétaire.
De plus, le paramètre de requête get acknowledgeAbuse=true doit être inclus pour indiquer que l'utilisateur a reconnu le risque de télécharger des logiciels potentiellement indésirables ou d'autres fichiers abusifs. Votre application doit avertir l'utilisateur de manière interactive avant d'utiliser ce paramètre de requête.
Téléchargement partiel
Le téléchargement partiel consiste à ne télécharger qu'une partie spécifiée d'un fichier. Vous
pouvez spécifier la partie du fichier que vous souhaitez télécharger à l'aide d'une plage
d'octets avec l'
Range en-tête. Exemple :
Range: bytes=500-999
Télécharger le contenu d'un fichier blob dans une version antérieure
Vous ne pouvez télécharger que les révisions de contenu de fichier blob marquées comme "Conserver indéfiniment". Si vous souhaitez télécharger une révision, définissez-la d'abord sur "Conserver indéfiniment". Pour en savoir plus, consultez Spécifier les révisions à enregistrer pour éviter la suppression automatique.
Pour télécharger le contenu de fichiers blob dans une version antérieure, utilisez la
revisions.get méthode avec l'ID du
fichier à télécharger, l'ID de la révision et le alt=media paramètre d'URL. Le paramètre d'URL alt=media indique au serveur qu'un téléchargement de contenu est demandé en tant que format de réponse alternatif. Comme files.get, la méthode revisions.get accepte également le paramètre de requête facultatif acknowledgeAbuse et l'en-tête Range. Pour en savoir plus, consultez Gérer
les opérations de longue durée.
Le protocole de requête est présenté ici.
GET https://www.googleapis.com/drive/v3/files/{FILE_ID}/revisions/{REVISION_ID}?alt=mediaTélécharger le contenu d'un fichier blob dans un navigateur
Pour télécharger le contenu de fichiers blob stockés sur Drive dans un
navigateur, au lieu de passer par l'API, utilisez le webContentLink champ de la files ressource. Si l'utilisateur a accès au téléchargement du fichier, un lien permettant de télécharger le fichier et son contenu est renvoyé. Vous pouvez rediriger un utilisateur vers cette URL ou la proposer sous forme de lien cliquable.
Télécharger le contenu d'un fichier blob lors d'opérations de longue durée
Pour télécharger le contenu de fichiers blob lors d'opérations de longue durée, utilisez la
files.download méthode avec l'ID du
fichier à télécharger. Vous pouvez éventuellement définir l'ID de la révision.
Il s'agit du seul moyen de télécharger des fichiers Google Vids. Si vous tentez d'exporter
des fichiers Google Vids, vous recevez une
fileNotExportable erreur.
Pour en savoir plus, consultez Gérer les opérations de longue durée.
Exporter le contenu d'un document Google Workspace
Pour exporter le contenu d'un document Google Workspace en octets, utilisez la files.export méthode avec l'ID du fichier à exporter et
le type MIME approprié. Le contenu exporté est limité à 10 Mo.
L'exemple de code suivant montre comment utiliser la méthode files.export pour exporter un document Google Workspace au format PDF à l'aide des bibliothèques clientes de l'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
Cet exemple de code utilise l'autorisation drive limitée qui permet aux utilisateurs d'afficher et de gérer tous vos fichiers Drive. Pour en savoir plus sur les
autorisations Drive, consultez Choisir les autorisations de l'API Google Drive
scopes.
L'exemple de code déclare également le type MIME d'exportation comme application/pdf. Pour obtenir la
liste complète de tous les types MIME d'exportation compatibles avec chaque document Google Workspace, consultez Types MIME d'exportation pour les documents Google Workspace.
Exporter le contenu d'un document Google Workspace dans un navigateur
Pour exporter le contenu d'un document Google Workspace dans un navigateur, utilisez le
exportLinks champ de la files ressource. En fonction du type de document, un lien permettant de télécharger le fichier et son contenu est renvoyé pour chaque type MIME disponible.
Vous pouvez rediriger un utilisateur vers une URL ou la proposer sous forme de lien cliquable.
Exporter le contenu d'un document Google Workspace dans une version antérieure dans un navigateur
Pour exporter le contenu d'un document Google Workspace dans une version antérieure dans un
navigateur, utilisez la méthode revisions.get avec
l'ID du fichier à télécharger et l'ID de la révision pour générer un lien d'exportation
à partir duquel vous pouvez effectuer le téléchargement. Si l'utilisateur a accès au téléchargement du fichier, un lien permettant de télécharger le fichier et son contenu est renvoyé. Vous pouvez rediriger un utilisateur vers cette URL ou la proposer sous forme de lien cliquable.
Exporter le contenu d'un document Google Workspace lors d'opérations de longue durée
Pour exporter le contenu d'un document Google Workspace lors d'opérations de longue durée,
utilisez la méthode files.download avec l'ID
du fichier à télécharger et l'ID de la révision. Pour en savoir plus, consultez
Gérer les opérations de longue durée.