Поскольку API Google Drive является общим сервисом, мы применяем квоты и ограничения, чтобы гарантировать его справедливое использование всеми пользователями и защитить общую производительность системы Google Workspace.
Уведомления, доставленные на адрес, указанный при открытии канала уведомлений, не учитываются в вашей квоте. Однако вызовы методов changes.watch
, channels.stop
и files.watch
учитываются в вашей квоте.
Если вы превысите квоту, вы получите ответ с кодом состояния HTTP 403: User rate limit exceeded
. Дополнительные проверки ограничения скорости на сервере Диска также могут привести к ответу 429: Too many requests
. В этом случае следует использовать алгоритм экспоненциальной задержки и повторить попытку позже. Если вы не выходите за рамки указанных ниже поминутных квот, количество запросов в день не ограничено.
В следующей таблице приведены ограничения запросов:
Квоты | |||||
---|---|---|---|---|---|
Запросы |
|
Устранение ошибок квот, связанных со временем
Для всех ошибок, связанных со временем (максимум N запросов за X минут), мы рекомендуем, чтобы ваш код перехватывал исключение и использовал усеченную экспоненциальную задержку , чтобы ваши устройства не создавали чрезмерной нагрузки.
Экспоненциальная задержка — стандартная стратегия обработки ошибок для сетевых приложений. Алгоритм экспоненциальной задержки повторяет запросы, используя экспоненциально увеличивающееся время ожидания между запросами, вплоть до максимального значения задержки. Если запросы по-прежнему неуспешны, важно, чтобы задержки между запросами постепенно увеличивались до тех пор, пока запрос не будет успешно выполнен.
Пример алгоритма
Алгоритм экспоненциальной задержки повторяет запросы экспоненциально, увеличивая время ожидания между попытками до максимального значения задержки. Например:
- Сделайте запрос к API Google Drive.
- Если запрос не выполнен, подождите 1 +
random_number_milliseconds
и повторите запрос. - Если запрос не выполнен, подождите 2 +
random_number_milliseconds
и повторите запрос. - Если запрос не выполнен, подождите 4 +
random_number_milliseconds
и повторите запрос. - И так далее, до
maximum_backoff
. - Продолжайте ждать и повторять попытки до достижения максимального количества повторных попыток, но не увеличивайте период ожидания между повторными попытками.
где:
- Время ожидания составляет
min(((2^n)+random_number_milliseconds), maximum_backoff)
, при этомn
увеличивается на 1 для каждой итерации (запроса). - Значение
random_number_milliseconds
— случайное число миллисекунд, меньшее или равное 1000. Это помогает избежать ситуаций, когда множество клиентов синхронизируются по какой-либо причине и все одновременно повторяют попытку, отправляя запросы синхронизированными волнами. Значениеrandom_number_milliseconds
пересчитывается после каждого повторного запроса. -
maximum_backoff
обычно составляет 32 или 64 секунды. Выбор значения зависит от конкретного случая.
Клиент может продолжать повторные попытки после достижения maximum_backoff
time). Повторные попытки после этого момента не требуют дальнейшего увеличения времени отсрочки. Например, если клиент использует максимальное время maximum_backoff
time) 64 секунды, то после достижения этого значения он сможет повторять попытки каждые 64 секунды. В какой-то момент следует запретить клиентам бесконечно повторять попытки.
Время ожидания между попытками и количество попыток зависят от вашего варианта использования и состояния сети.
Цены
Использование API Google Диска предоставляется бесплатно. Превышение квоты запросов не влечет за собой дополнительных расходов, и с вашего аккаунта не взимается плата.
Запросить увеличение квоты
В зависимости от использования ресурсов вашим проектом вам может потребоваться запросить корректировку квоты. Вызовы API, выполняемые сервисной учётной записью, считаются выполненными с использованием одной учётной записи. Подача заявки на корректировку квоты не гарантирует её одобрения. Запросы на корректировку квоты, которые могут значительно увеличить её значение, могут рассматриваться дольше.
Квоты не у всех проектов одинаковые. По мере того, как вы будете всё активнее использовать Google Cloud, вам может потребоваться увеличить значения квот. Если вы ожидаете значительного роста использования, вы можете заранее запросить корректировку квот на странице «Квоты» в консоли Google Cloud.
Более подробную информацию можно найти на следующих ресурсах:
- О корректировке квот
- Просмотр текущего использования квоты и ограничений
- Запросить более высокий лимит квоты