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 dostarczane na adres podany podczas otwierania kanału powiadomień nie są wliczane do limitów. Wywołania metod changes.watch, channels.stopfiles.watch są jednak wliczane do limitu.

Jeśli przekroczysz limit, otrzymasz odpowiedź z kodem stanu HTTP 403: User rate limit exceeded. Dodatkowe sprawdzanie limitu żądań w usłudze Drive może też generować odpowiedź 429: Too many requests. W takiej sytuacji użyj algorytmu wzrastającego czasu do ponowienia i spróbuj ponownie później. Jeśli nie przekroczysz podanych poniżej limitów na minutę, nie ma ograniczeń co do liczby żądań, które możesz wysłać w ciągu dnia.

W tabeli poniżej znajdziesz limity zapytań:

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

Rozwiązywanie błędów związanych z limitami czasowymi

W przypadku wszystkich błędów związanych z czasem (maksymalnie N żądań w ciągu X minut) zalecamy, aby kod przechwytywał wyjątek i używał skróconego wycofywania wykładniczego, aby urządzenia nie generowały nadmiernego obciążenia.

Wycofywanie wykładnicze to standardowa strategia obsługi błędów w aplikacjach sieciowych. Algorytm wykładniczego wycofywania ponawia żądania, stosując wykładniczo rosnące czasy oczekiwania między żądaniami, aż do maksymalnego czasu wycofywania. Jeśli żądania nadal są nieudane, ważne jest, aby opóźnienia między żądaniami z czasem się zwiększały, aż żądanie zostanie zrealizowane.

Przykładowy algorytm

Algorytm wykładniczego wycofywania ponawia żądania wykładniczo, zwiększając czas oczekiwania między ponownymi próbami aż do maksymalnego czasu wycofywania. Na przykład:

  1. Wysyłanie żądania do interfejsu Google Drive API.
  2. Jeśli prośba się nie powiedzie, poczekaj 1 + random_number_milliseconds i spróbuj ponownie.
  3. Jeśli żądanie się nie powiedzie, poczekaj 2 + random_number_milliseconds i spróbuj ponownie.
  4. Jeśli prośba się nie powiedzie, poczekaj 4 + random_number_milliseconds i spróbuj ponownie.
  5. I tak dalej, aż do maximum_backoff.
  6. Kontynuuj oczekiwanie i ponawianie prób do osiągnięcia maksymalnej liczby prób, ale nie wydłużaj czasu oczekiwania między próbami.

gdzie:

  • Czas oczekiwania wynosi min(((2^n)+random_number_milliseconds), maximum_backoff), a w każdej iteracji (żądaniu) wartość n zwiększa się o 1.
  • random_number_milliseconds to losowa liczba milisekund mniejsza lub równa 1000. Pomaga to uniknąć sytuacji, w których wielu klientów jest synchronizowanych w określonych okolicznościach i wszyscy ponawiają próbę w tym samym czasie, wysyłając żądania w zsynchronizowanych falach. Wartość random_number_milliseconds jest ponownie obliczana po każdej próbie ponowienia żądania.
  • maximum_backoff wynosi zwykle 32 lub 64 sekundy. Odpowiednia wartość zależy od przypadku użycia.

Klient może ponawiać próby po osiągnięciu limitu maximum_backoff. Ponowne próby po tym czasie nie muszą wydłużać czasu oczekiwania. Jeśli na przykład klient używa maximum_backoff czasu 64 sekund, po osiągnięciu tej wartości może ponawiać próbę co 64 sekundy. W pewnym momencie należy uniemożliwić klientom ponawianie prób w nieskończoność.

Czas oczekiwania między ponownymi próbami i liczba ponownych prób zależą od przypadku użycia i warunków sieciowych.

Ceny

Korzystanie z interfejsu Google Drive API jest bezpłatne. Przekroczenie limitów liczby żądań nie wiąże się z dodatkowymi opłatami, a na Twoim koncie nie zostaną naliczone żadne płatności.

Poproś o zwiększenie limitu

W zależności od wykorzystania zasobów w projekcie możesz poprosić o dostosowanie limitu. Wywołania interfejsu API przez konto usługi są traktowane jako korzystanie z jednego konta. Wysłanie wniosku o zmianę limitu nie gwarantuje jego zatwierdzenia. Zatwierdzenie próśb o dostosowanie limitu, które znacznie zwiększają jego wartość, może potrwać dłużej.

Nie wszystkie projekty mają takie same limity. W miarę upływu czasu i zwiększania wykorzystania Google Cloud wartości limitów mogą wymagać zwiększenia. Jeśli spodziewasz się znacznego wzrostu wykorzystania, możesz z wyprzedzeniem poprosić o zmianę limitów na stronie Limity w konsoli Google Cloud.

Więcej informacji znajdziesz w tych materiałach: