Étant donné que l'API Google Drive est un service partagé, nous appliquons des quotas et des limites pour nous assurer qu'elle est utilisée de manière équitable par tous les utilisateurs et pour protéger les performances globales du système Google Workspace.
Les notifications envoyées à l'adresse spécifiée lors de l'ouverture d'un canal de notification ne sont pas comptabilisées dans vos limites de quota. Toutefois, les appels aux méthodes changes.watch
, channels.stop
et files.watch
sont comptabilisés dans votre quota.
Si vous dépassez un quota, vous recevrez une réponse avec le code d'état HTTP 403: User rate limit
exceeded
. Des vérifications supplémentaires de la limite de débit sur le backend Drive peuvent également générer une réponse 429: Too many
requests
. Dans ce cas, vous devez utiliser un algorithme d'intervalle exponentiel entre les tentatives, puis réessayer plus tard. Si vous respectez les quotas par minute ci-dessous, vous n'êtes pas limité au nombre de requêtes que vous pouvez envoyer par jour.
Le tableau suivant détaille les limites de requête:
Quotas | |||||
---|---|---|---|---|---|
Requêtes |
|
Résoudre les erreurs de quota basées sur le temps
Pour toutes les erreurs temporelles (N requêtes maximum toutes les X minutes), nous vous recommandons d'utiliser votre code pour détecter l'exception et utiliser un intervalle exponentiel entre les tentatives tronqué afin de vous assurer que vos appareils ne génèrent pas de charge excessive.
L'intervalle exponentiel entre les tentatives est une stratégie standard de traitement des erreurs pour les applications réseau. Un algorithme d'intervalle exponentiel entre les tentatives relance les requêtes de manière exponentielle, en augmentant le temps d'attente entre les tentatives jusqu'à ce que la durée maximale de l'intervalle exponentiel soit atteinte. Si les requêtes échouent toujours, il est important que les délais entre les requêtes augmentent au fil du temps jusqu'à ce que la requête aboutisse.
Exemple d'algorithme
Un algorithme d'intervalle exponentiel entre les tentatives relance les requêtes de manière exponentielle, en augmentant le temps d'attente entre les tentatives jusqu'à un intervalle maximal. Exemple :
- Envoyez une requête à l'API Google Drive.
- Si la requête échoue, attendez 1 +
random_number_milliseconds
et effectuez une nouvelle tentative. - Si la requête échoue, attendez 2 +
random_number_milliseconds
, puis effectuez une nouvelle tentative. - Si la requête échoue, attendez 4 +
random_number_milliseconds
, puis effectuez une nouvelle tentative. - Poursuivez ainsi jusqu'à atteindre la valeur
maximum_backoff
. - Continuez d'attendre et de relancer la requête jusqu'à atteindre le nombre maximal de tentatives, mais n'augmentez pas le temps d'attente entre les tentatives.
où :
- Le temps d'attente est défini sur
min(((2^n)+random_number_milliseconds), maximum_backoff)
, avecn
incrémenté de 1 pour chaque itération (requête). random_number_milliseconds
correspond à un nombre aléatoire de millisecondes inférieur ou égal à 1 000. Cela permet d'éviter les cas où de nombreux clients sont synchronisés dans une situation donnée et effectuent tous une nouvelle tentative en même temps, en envoyant des requêtes par vagues synchronisées. La valeur derandom_number_milliseconds
est recalculée après chaque nouvelle tentative de requête.- La valeur
maximum_backoff
est généralement définie sur 32 ou 64 secondes. La valeur appropriée dépend du cas d'utilisation.
Le client peut continuer à effectuer de nouvelles tentatives après avoir atteint le délai maximum_backoff
.
Au-delà de ce point, il n'est pas nécessaire de continuer à augmenter la durée de l'intervalle exponentiel entre les tentatives. Par exemple, si un client utilise un délai maximum_backoff
de 64 secondes, une fois celui-ci atteint, il peut effectuer une nouvelle tentative toutes les 64 secondes. À un moment donné, les clients ne doivent pas pouvoir effectuer de nouvelles tentatives indéfiniment.
Le temps d'attente entre les nouvelles tentatives et le nombre de tentatives dépendent de votre cas d'utilisation et des conditions du réseau.
Tarifs
L'utilisation de l'API Google Drive est disponible sans frais supplémentaires. Si vous dépassez les limites de requêtes de quota, aucuns frais supplémentaires ne vous sont facturés et votre compte n'est pas débité.
Demander une augmentation du quota
En fonction de l'utilisation des ressources de votre projet, vous pouvez demander une augmentation de quota. Les appels d'API effectués par un compte de service sont considérés comme utilisant un seul compte. La demande d'augmentation de quota ne garantit pas l'approbation. Les augmentations importantes peuvent nécessiter plus de temps pour être approuvées.
Tous les projets ne sont pas soumis aux mêmes quotas. À mesure que vous utilisez Google Cloud de plus en plus, vous devrez peut-être augmenter vos quotas. Si vous prévoyez une augmentation notable de l'utilisation, vous pouvez anticiper cette évolution en demandant des ajustements de quota sur la page Quotas (Quotas) de la console Google Cloud.
Pour en savoir plus, consultez les ressources suivantes :
- À propos des demandes d'augmentation de quota
- Afficher votre utilisation actuelle et vos limites de quota
- Demander une augmentation de limite de quota