Limity wykorzystania

Interfejs Google Drive API jest usługą współdzieloną, więc stosujemy limity, aby mieć pewność, że wszyscy użytkownicy będą z niego w równym stopniu korzystać, a także aby chronić ogólną wydajność systemu Google Workspace.

Powiadomienia dostarczane na adres określony podczas otwierania kanału powiadomień nie wliczają się do limitów. Wywołania metod changes.watch, channels.stop i files.watch są jednak wliczane 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 mogą też generować odpowiedź 429: Too many requests. W takim przypadku użyj algorytmu wykładniczego wycofywania i spróbuj ponownie później. Jeśli zmieścisz się w poniższych limitach na minutę, nie będzie limitu liczby żądań, które możesz przesłać dziennie.

Limity zapytań znajdziesz w tej tabeli:

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

Napraw błędy limitu ograniczonego czasowo

W przypadku wszystkich błędów czasowych (maksymalnie N żądań na X minut) zalecamy, aby Twój kod wyłapał wyjątek i używał skróconego wykładniczego ponowienia, aby urządzenia nie powodowały nadmiernego obciążenia.

Wykładniczy czas ponowienia to standardowa strategia obsługi błędów w aplikacjach sieciowych. Algorytm wykładniczy ponawiania prób ponawiania żądań, w wyniku których rośnie wykładniczo czas oczekiwania między żądaniami aż do maksymalnego czasu do ponowienia. Jeśli żądania wciąż nie są realizowane, ważne jest, aby opóźnienia między żądaniami wzrastały w miarę upływu czasu do momentu ich zrealizowania.

Przykładowy algorytm

Algorytm wykładniczy ponawiania prób wykładniczych, wydłużając czas oczekiwania między kolejnymi próbami aż do osiągnięcia maksymalnego czasu do ponowienia. Na przykład:

  1. Wyślij żądanie do interfejsu Google Drive API.
  2. Jeśli żądanie się nie powiedzie, zaczekaj 1 + random_number_milliseconds i spróbuj jeszcze raz.
  3. Jeśli żądanie się nie powiedzie, zaczekaj 2 + random_number_milliseconds i spróbuj jeszcze raz.
  4. Jeśli żądanie się nie powiedzie, poczekaj 4 + random_number_milliseconds i spróbuj jeszcze raz.
  5. I tak dalej, do maximum_backoff raz.
  6. Zaczekaj i ponów próbę, maksymalnie do maksymalnej liczby ponownych prób, ale nie wydłużaj czasu oczekiwania między kolejnymi próbami.

gdzie:

  • Czas oczekiwania wynosi min(((2^n)+random_number_milliseconds), maximum_backoff), przy czym n dla każdej iteracji (żądania) zwiększa się o 1.
  • random_number_milliseconds to losowa liczba milisekund,mniejsza lub równa 1000. Pomaga to uniknąć sytuacji, w której wielu klientów jest synchronizowanych w określonej sytuacji i wszystkie ponawiają próby jednocześnie, wysyłając żądania w zsynchronizowanych falach. Wartość random_number_milliseconds jest przeliczana po każdym ponownym żądaniu.
  • maximum_backoff to zwykle 32 lub 64 sekundy. Odpowiednia wartość zależy od przypadku użycia.

Klient może kontynuować ponawianie próby po osiągnięciu limitu maximum_backoff. Ponowne próby po tym punkcie nie muszą wydłużać czasu do ponowienia. Jeśli na przykład klient używa czasu maximum_backoff wynoszącego 64 sekundy, to po osiągnięciu tej wartości klient może ponawiać próbę co 64 sekundy. W pewnym momencie klienty powinny utracić możliwość ponawiania prób w nieskończoność.

Czas oczekiwania między kolejnymi próbami a liczbą ponownych prób zależy od konkretnego przypadku użycia i warunków sieci.

Ceny

Z interfejsu Google Drive API można korzystać bez dodatkowych opłat. Przekroczenie limitów żądań limitu nie wiąże się z dodatkowymi opłatami, a konto nie jest obciążane.

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 korzystające z jednego konta. Zgłoszenie do programu o zwiększonym limicie 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ę jak z czasem będziesz korzystać z Google Cloud, Twoje limity mogą wymagać zwiększenia. Jeśli spodziewasz się znacznego wzrostu wykorzystania, możesz aktywnie poprosić o korektę limitów na stronie Limity w konsoli Google Cloud.

Więcej informacji znajdziesz w tych materiałach: