moneylog icon indicating copy to clipboard operation
moneylog copied to clipboard

Google Drive: Erro 403 - userRateLimitExceeded - User Rate Limit Exceeded

Open aureliojargas opened this issue 7 years ago • 2 comments

A API do Google Drive tem um limite de 10 requisições por segundo, por usuário.

Se o cara tem 11 ou mais arquivos .txt pra carregar de uma vez (usando o * no seletor de arquivos), vai atingir o limite e esse erro 403 irá aparecer no console do navegador. O MoneyLog em si dará o erro de "lançamento inválido na linha N".

O que tenho que fazer é implementar um algoritmo que detecte o erro 403 ao usar o readFile e que tente novamente baixar o arquivo, N segundos depois. Esse N deve ir aumentando exponencialmente para evitar continuar atingindo o limite.

Pra detectar o erro:

  • xhr.status === 403
  • xhr.responseText contains userRateLimitExceeded

Saiba mais:

  • https://developers.google.com/drive/v3/web/handle-errors#exponential-backoff
  • https://github.com/owncloud/core/issues/20481
  • Ajax 101: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#See_also

aureliojargas avatar Feb 02 '18 15:02 aureliojargas

Até que essa issue esteja resolvida, é melhor desabilitar a opção de carregar múltiplos arquivos (*).

Ou talvez só desabilitar se o cara tiver >10 arquivos.

aureliojargas avatar Feb 02 '18 15:02 aureliojargas

Ok, desabilitado somente no Google Drive (no filesystem não tem problema) e somente se o cara tiver 10 ou mais arquivos.

aureliojargas avatar Feb 02 '18 23:02 aureliojargas