Limity wykorzystania

Interfejs Google Drive API jest usługą współdzieloną, dlatego stosujemy limity i ograniczenia, aby zapewnić sprawiedliwe korzystanie z niego przez wszystkich użytkowników i chronić ogólną wydajność systemu Google Workspace.

Powiadomienia wysyłane na adres podany podczas otwierania kanału powiadomień nie wliczają się do limitu. Jednak wywołania do metod changes.watch, channels.stop i files.watch wliczają się do limitu.

Jeśli przekroczysz limit, otrzymasz odpowiedź z kodem stanu HTTP 403: User rate limit exceeded. Dodatkowe kontrole limitu liczby żądań w backendzie Dysku również mogą wygenerować odpowiedź 429: Too many requests. W takim przypadku należy użyć wzrastającego algorytmu przerwania i spróbować ponownie później. Jeśli nie przekroczysz podanych niżej limitów na minutę, nie ma limitu liczby próśb, które możesz wysłać w ciągu dnia.

W tabeli poniżej znajdziesz limity zapytań:

Limity
Zapytania
Co 60 sekund 12 000
Na 60 sekund na użytkownika 12 000

Rozwiązywanie błędów związanych z limitem czasowym

W przypadku wszystkich błędów związanych z czasem (maksymalnie N żądań na X minut) zalecamy, aby kod przechwytywał wyjątki i używał odciętej ujemnej funkcji wykładniczej, aby urządzenia nie generowały nadmiernego obciążenia.

Wzrostowy czas do ponowienia to standardowa strategia obsługi błędów w przypadku aplikacji sieciowych. Wykładniczy algorytm ponawiania próbuje ponawiać żądania, zwiększając czas oczekiwania między żądaniami aż do maksymalnego czasu ponowienia. Jeśli żądania nadal nie są skuteczne, ważne jest, aby opóźnienia między żądaniami zwiększały się z czasem, aż do momentu, gdy żądanie zostanie zrealizowane.

Przykładowy algorytm

Wykładniczy algorytm ponawiania prób wykładniczy ponawianie żądań, zwiększając czas oczekiwania między kolejnymi próbami do maksymalnego czasu do ponowienia. Na przykład:

  1. Wyślij żądanie do Google Drive API.
  2. Jeśli prośba się nie powiedzie, odczekaj 1 + random_number_milliseconds i ponownie ją prześlij.
  3. Jeśli prośba nie powiedzie się, odczekaj 2 + random_number_milliseconds i spróbuj ponownie.
  4. Jeśli prośba zakończy się niepowodzeniem, odczekaj 4 + random_number_milliseconds i ponownie ją wyślij.
  5. I tak dalej, maksymalnie maximum_backoff raz.
  6. Kontynuować oczekiwanie i próby do maksymalnej liczby prób, ale nie zwiększać czasu oczekiwania pomiędzy próbami.

gdzie:

  • Czas oczekiwania wynosi min(((2^n)+random_number_milliseconds), maximum_backoff), a wartość n zwiększa się o 1 przy każdej iteracji (żądaniu).
  • random_number_milliseconds to losowa liczba w milisekundach mniejsza lub równa 1000. Pozwala to uniknąć sytuacji, w których w pewnych sytuacjach wiele klientów jest zsynchronizowanych i wszystkie ponawiają próby jednocześnie, co powoduje wysyłanie żądań w zsynchronizowanych falach. Wartość random_number_milliseconds jest ponownie obliczana po każdym ponownym przesłaniu żądania.
  • maximum_backoff wynosi zwykle 32 lub 64 sekund. Odpowiednia wartość zależy od przypadku użycia.

Klient może kontynuować próby po upływie czasu maximum_backoff. Ponowne próby po tym momencie nie muszą zwiększać czasu oczekiwania. Jeśli na przykład klient używa czasu maximum_backoff wynoszącego 64 sekundy, a następnie po osiągnięciu tej wartości może ponawiać próby co 64 sekundy. W pewnym momencie należy zablokować klientom możliwość nieograniczonego powtarzania prób.

Czas oczekiwania między próbami i ich liczba zależą od przypadku użycia i warunków sieci.

Ceny

Korzystanie z interfejsu Dysku Google jest bezpłatne. Przekroczenie limitu próśb o przekroczenie limitu nie powoduje dodatkowych opłat, a Twoje konto nie zostanie obciążone.

Poproś o zwiększenie limitu

W zależności od wykorzystania zasobów w projekcie możesz poprosić o zwiększenie limitu. Wywołania interfejsu API przez konto usługi są uznawane za używane z 1 konta. Wysłanie wniosku o zwiększenie limitu nie gwarantuje jego zatwierdzenia. Zatwierdzenie dużego zwiększenia limitu może potrwać dłużej.

Nie wszystkie projekty mają takie same limity. W miarę zwiększania się wykorzystania Google Cloud może być konieczne zwiększenie limitów. Jeśli spodziewasz się znacznego wzrostu wykorzystania, możesz poprosić o zmianę limitu na stronie Limity w konsoli Google Cloud.

Więcej informacji znajdziesz w tych materiałach: