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.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 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 |
|
||||
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:
- Wysyłanie żądania do interfejsu Google Drive API.
- Jeśli prośba się nie powiedzie, poczekaj 1 +
random_number_millisecondsi spróbuj ponownie. - Jeśli żądanie się nie powiedzie, poczekaj 2 +
random_number_millisecondsi spróbuj ponownie. - Jeśli prośba się nie powiedzie, poczekaj 4 +
random_number_millisecondsi spróbuj ponownie. - I tak dalej, aż do
maximum_backoff. - 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śćnzwiększa się o 1. random_number_millisecondsto 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_millisecondsjest ponownie obliczana po każdej próbie ponowienia żądania.maximum_backoffwynosi 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:
- Informacje o dostosowywaniu limitów
- Wyświetlanie bieżącego wykorzystania limitu i limitów
- Wysyłanie prośby o wyższy limit