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
capabilities.canDownload
champ 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 document 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 paramètre
système.
Le paramètre 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 système alt est disponible dans toutes les API Google REST. Si vous utilisez une bibliothèque cliente de l'API Drive, vous n'avez pas besoin de définir explicitement ce paramètre, car la méthode de la bibliothèque cliente ajoute le paramètre alt=media à la requête HTTP sous-jacente.
Les exemples de code suivants montrent comment utiliser la méthode files.get pour télécharger un fichier :
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"
Remplacez les éléments suivants :
- FILE_ID : ID du fichier à télécharger.
- ACCESS_TOKEN : jeton d'accès qui accorde l'accès à l'API.
- FILE_NAME : nom du fichier de sortie.
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.
Les exemples de code de la bibliothèque cliente utilisent 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.
Les utilisateurs disposant des autorisations owner (pour les fichiers Mon Drive) ou
organizer (pour les fichiers de Drive partagé) 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 acknowledgeAbuse doit être défini sur true 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
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 paramètre
système.
Le paramètre 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 acknowledgeAbuse et l'en-tête Range.
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 en savoir plus sur le téléchargement d'une révision, consultez Gérer les opérations de longue durée.
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"
Remplacez les éléments suivants :
- FILE_ID : ID du fichier à télécharger.
- REVISION_ID : ID de la révision à télécharger.
- ACCESS_TOKEN : jeton d'accès qui accorde l'accès à l'API.
- FILE_NAME : nom du fichier de sortie.
Té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.
curl
curl "https://www.googleapis.com/drive/v3/files/FILE_ID?fields=webContentLink" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Accept: application/json"
Remplacez les éléments suivants :
- FILE_ID : ID du fichier pour lequel obtenir le lien de téléchargement.
- ACCESS_TOKEN : jeton d'accès qui accorde l'accès à l'API.
Télécharger le contenu d'un fichier blob à l'aide d'opérations de longue durée
Pour télécharger le contenu de fichiers blob à l'aide d'opérations de longue durée (OLD), 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.
curl
La commande curl suivante lance une OLD et renvoie une réponse JSON. Pour télécharger le fichier ou interroger cette OLD, vous devez effectuer une autre requête à l'aide de l'ID renvoyé afin d'obtenir l'URL du contenu. Vous pouvez ensuite effectuer une dernière requête curl à cette URL pour télécharger le fichier. Pour en savoir plus, consultez Gérer les opérations de longue durée.
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"
Remplacez les éléments suivants :
- FILE_ID : ID du fichier à télécharger.
- ACCESS_TOKEN : jeton d'accès qui accorde l'accès à l'API.
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.
Les exemples de code suivants montrent comment utiliser la méthode files.export pour exporter un document Google Workspace au format 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"
Remplacez les éléments suivants :
- FILE_ID : ID du fichier à télécharger.
- ACCESS_TOKEN : jeton d'accès qui accorde l'accès à l'API.
- FILE_NAME : nom du fichier de sortie.
Les exemples de code de la bibliothèque cliente utilisent 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.
Les exemples de code déclarent également le type MIME d'exportation comme application/pdf. Pour obtenir la
liste complète de tous les types MIME d'exportation compatibles pour 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. Selon le 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.
curl
curl "https://www.googleapis.com/drive/v3/files/FILE_ID?fields=id,name,exportLinks" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--header "Accept: application/json"
Remplacez les éléments suivants :
- FILE_ID : ID du fichier pour lequel obtenir le lien de téléchargement.
- ACCESS_TOKEN : jeton d'accès qui accorde l'accès à l'API.
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.
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"
Remplacez les éléments suivants :
- FILE_ID : ID du fichier à télécharger.
- REVISION_ID : ID de la révision à télécharger.
- ACCESS_TOKEN : jeton d'accès qui accorde l'accès à l'API.
Exporter le contenu d'un document Google Workspace à l'aide d'opérations de longue durée
Pour exporter le contenu d'un document Google Workspace à l'aide d'opérations de longue durée
(OLD), utilisez la files.download méthode 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.
curl
La commande curl suivante lance une OLD et renvoie une réponse JSON. Pour télécharger le fichier ou interroger cette OLD, vous devez effectuer une autre requête à l'aide de l'ID renvoyé afin d'obtenir l'URL du contenu. Vous pouvez ensuite effectuer une dernière requête curl à cette URL pour télécharger le fichier. Pour en savoir plus, consultez Gérer les opérations de longue durée.
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"
Remplacez les éléments suivants :
- FILE_ID : ID du fichier à télécharger.
- MIME_TYPE : type MIME vers lequel exporter.
- REVISION_ID : ID de la révision à télécharger.
- ACCESS_TOKEN : jeton d'accès qui accorde l'accès à l'API.