Превышен лимит пользователей с Google Drive API - PullRequest
0 голосов
/ 06 декабря 2018

Я создаю веб-приложение поверх API Google Drive.В основном, веб-приложение отображает фотографии и видео.Мультимедиа хранится в папке Google Диска. После аутентификации приложение отправляет запросы в Google Drive API, чтобы получить URL-адрес для мультимедиа, и отображает каждый из них.На данный момент у меня есть только 16 изображений для отображения.Эти изображения написаны жестко в приложении (для демонстрации).

Я столкнулся с проблемой, когда мое приложение обращалось к Google Drive API.Действительно, после нескольких попыток, я получил эту ошибку для случайных запросов

Превышен предел скорости пользователя.Частота запросов для пользователя превышает настроенную квоту проекта.Вы можете пересмотреть ожидаемый пользовательский трафик в API и соответствующим образом скорректировать лимиты квоты проекта.Вы можете отслеживать использование совокупной квоты и корректировать лимиты в консоли API: https://console.developers.google.com/apis/api/drive.googleapis.com/quotas?project=XXXXXXX"

Поэтому я посмотрел консоль API и ничего особенного не увидел, я не превышаю установленный предел скорости.Возможно, я неправильно использую API Google, на самом деле я не знаю ...

the bar on the right is my last try: 32 queries

Я следовал документации по Google Drive API, чтобы проверить, правильно ли ясделал что-то не так.Для каждого запроса API запрос содержит токен доступа, поэтому он должен работать правильно!

Доступна демонстрация приложения: https://poc -drive-api.firebaseapp.com

Исходный код также доступен: https://github.com/Mcdostone/poc-google-drive-api (файл App.js)

1 Ответ

0 голосов
/ 06 декабря 2018

403: превышен предел пользовательской скорости - защита от наводнений.Пользователь может делать только столько запросов одновременно.к сожалению, ограничение на скорость пользователя не отображается на графике, который вы смотритеЭтот график на самом деле очень плохо показывает, что на самом деле происходит.Google тестирует в фоновом режиме и выдает ошибку, если вы превышаете свой лимит.Они не обязаны фактически показывать нам, что на графике

403: превышен предел скорости пользователя

Достигнут предел для каждого пользователя.Это может быть ограничение из консоли разработчика или ограничение из бэкэнда накопителя.

{"error": {"errors": [{"domain": "useLimits", "reason": "userRateLimitExceeded", "message": "Превышен предел пользовательской скорости"}], "код": 403, "message": "Превышен предел пользовательской скорости"}}

Предлагаемые действия:

  • Увеличьте квоту для каждого пользователя в проекте консоли разработчика.
  • Если один пользователь делает много запросов от имени многих пользователей домена G Suite, рассмотрите учетную запись службы с делегированием полномочий (установка quotaUser параметр).
  • Использовать экспоненциальный откат.

ИМО. Главное, что нужно сделать, когда вы начинаете сталкиваться с этим сообщением об ошибке, - реализовать экспоненциальный откат таким образом ваше приложение сможет замедлиться и сделать запрос снова.

...