Limites d'utilisation

L'API Google Drive étant 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 prises en compte dans vos limites de quota. Toutefois, les appels aux méthodes changes.watch, channels.stop et files.watch sont pris en compte dans votre quota.

Si vous dépassez un quota, vous recevrez un 403: User rate limit exceeded code d'état HTTP en réponse. Des vérifications supplémentaires de la limite de débit sur le backend Drive peuvent également générer une 429: Too many requests réponse. Dans ce cas, vous devez utiliser un algorithme d'intervalle exponentiel entre les tentatives et réessayer plus tard. Si vous respectez les quotas par minute ci-dessous, le nombre de requêtes que vous pouvez effectuer par jour n'est pas limité.

Le tableau suivant détaille les limites de requêtes :

Quotas
Requêtes
Par 60 secondes 12 000
Par 60 secondes et par utilisateur 12 000

Résoudre les erreurs de quota basées sur le temps

Pour toutes les erreurs basées sur le temps (maximum de N requêtes par X minutes), nous vous recommandons de faire en sorte que votre code intercepte l'exception et utilise un intervalle exponentiel entre les tentatives tronqué pour 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 d'erreurs pour les applications réseau. Un algorithme d'intervalle exponentiel entre les tentatives relance les requêtes en augmentant de manière exponentielle le temps d'attente entre les requêtes jusqu'à ce que la durée maximale de l'intervalle 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'à ce que la durée maximale de l'intervalle exponentiel soit atteinte. Exemple :

  1. Vous envoyez une requête à l'API Google Drive.
  2. Si la requête échoue, attendez 1 + random_number_milliseconds, puis effectuez une nouvelle tentative.
  3. Si la requête échoue, attendez 2 + random_number_milliseconds, puis effectuez une nouvelle tentative.
  4. Si la requête échoue, attendez 4 + random_number_milliseconds, puis effectuez une nouvelle tentative.
  5. Poursuivez ainsi jusqu'à atteindre la valeur maximum_backoff.
  6. 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), avec n 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 se retrouvent synchronisés pour une raison quelconque et effectuent tous une nouvelle tentative en même temps, en envoyant des requêtes par vagues synchronisées. La valeur de random_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 des nouvelles tentatives après avoir atteint la valeur 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 une valeur maximum_backoff de 64 secondes, une fois celle-ci atteinte, il peut effectuer une nouvelle tentative toutes les 64 secondes. À un certain moment, vous devez empêcher les clients d'effectuer des tentatives à l'infini.

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. Le dépassement des limites de requêtes de quota n'entraîne pas de frais supplémentaires et votre compte n'est pas facturé.

Demander une augmentation du quota

Selon l'utilisation des ressources de votre projet, vous pouvez demander un ajustement 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'ajustement de quota ne garantit pas l'approbation. Les demandes d'ajustement de quota qui augmenteraient considérablement la valeur du quota peuvent nécessiter plus de temps pour être approuvées.

Tous les projets ne sont pas soumis aux mêmes quotas. À mesure que votre utilisation de Google Cloud s'accroît, vos valeurs de quota peuvent devoir augmenter. Si vous prévoyez une augmentation significative de votre utilisation, vous pouvez anticiper cette évolution en demandant des ajustements de quotas sur la page Quotas de la console Google Cloud.

Pour en savoir plus, consultez les ressources suivantes :