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 są wliczane do limitów. 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 szybkości na zapleczu Drive mogą też generować odpowiedź 429: Too many requests. W takiej sytuacji należy użyć wzrastającego algorytmu 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. Algorytm Exponential back-off powtarza żądania, używając wykładniczo rosnących czasów oczekiwania między żądaniami, aż do maksymalnego czasu oczekiwania. Jeśli żądania nadal nie są skuteczne, ważne jest, aby opóźnienia między żądaniami zwiększały się z czasem, aż żądanie zostanie zrealizowane.

Przykładowy algorytm

Algorytm Exponential Backoff powtarza żądania wykładniczo, zwiększając czas oczekiwania między próbami do maksymalnego czasu oczekiwania. Na przykład:

  1. Wyślij żądanie do interfejsu 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 się nie powiedzie, 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, aż do maximum_backoff razy.
  6. Kontynuuj oczekiwanie i próby do maksymalnej liczby prób, ale nie wydłużaj 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 za każdą iterację (żądanie).
  • random_number_milliseconds to losowa liczba w milisekundach mniejsza lub równa 1000. Pomaga to uniknąć sytuacji, w której wiele klientów jest synchronizowanych w jakiejś sytuacji i wszystkie próbują ponownie od razu, wysyłając żądania w zsynchronizowanych falach. Wartość random_number_milliseconds jest ponownie obliczana po każdym żądaniu ponownego próby.
  • 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 wartości maximum_backoff wynoszącej 64 sekundy, po osiągnięciu tej wartości może próbować ponownie 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 całkowicie 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 korzystanie z jednego 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: