moneylog
moneylog copied to clipboard
Google Drive: Erro 403 - userRateLimitExceeded - User Rate Limit Exceeded
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
containsuserRateLimitExceeded
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
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.
Ok, desabilitado somente no Google Drive (no filesystem não tem problema) e somente se o cara tiver 10 ou mais arquivos.