Como a API Google Drive é um serviço compartilhado, aplicamos cotas e limitações para garantir que ela seja usada de forma justa por todos os usuários e proteger a performance geral do sistema do Google Workspace.
As notificações enviadas para o endereço especificado ao
abrir um canal de notificação não contam para os limites de cota. No entanto,
as chamadas para os métodos changes.watch
,
channels.stop
e
files.watch
são contabilizadas na
sua cota.
Se você exceder uma cota, vai receber uma resposta de código de status HTTP 403: User rate limit
exceeded
. Outras verificações de limite de taxa no
back-end do Drive também podem gerar uma resposta
429: Too many
requests
. Se isso acontecer, use um algoritmo de espera exponencial e tente novamente mais tarde. Desde que você fique dentro das cotas por minuto abaixo, não há limite para o número de solicitações que você pode fazer por dia.
A tabela a seguir detalha os limites de consulta:
Cotas | |||||
---|---|---|---|---|---|
Consultas |
|
Resolver erros de cota com base no tempo
Para todos os erros baseados em tempo (máximo de N solicitações por X minutos), recomendamos que o código capture a exceção e use um backoff exponencial truncado para garantir que os dispositivos não gerem carga excessiva.
A espera exponencial é uma estratégia padrão de tratamento de erros para aplicativos de rede. Um algoritmo de espera exponencial repete solicitações usando tempos de espera exponencialmente crescentes entre as solicitações, até um tempo máximo de espera. Se as solicitações ainda não forem bem-sucedidas, é importante que os atrasos entre elas aumentem ao longo do tempo até que a solicitação seja bem-sucedida.
Exemplo de algoritmo
Um algoritmo de espera exponencial repete solicitações exponencialmente, aumentando o tempo de espera entre novas tentativas até um tempo máximo de espera. Exemplo:
- Faça uma solicitação para a API Google Drive.
- Se a solicitação falhar, aguarde 1 +
random_number_milliseconds
e tente novamente. - Se a solicitação falhar, aguarde 2 +
random_number_milliseconds
e tente novamente. - Se a solicitação falhar, aguarde 4 +
random_number_milliseconds
e tente novamente. - E assim por diante, até um tempo
maximum_backoff
. - Continue aguardando e tentando até um número máximo de novas tentativas, mas não aumente o tempo de espera entre elas.
em que:
- O tempo de espera é
min(((2^n)+random_number_milliseconds), maximum_backoff)
, comn
incrementado em 1 para cada iteração (solicitação). random_number_milliseconds
é um número aleatório de milissegundos menor ou igual a 1.000. Isso ajuda a evitar casos em que muitos clientes são sincronizados por alguma situação e todos tentam novamente ao mesmo tempo, enviando solicitações em ondas sincronizadas. O valor derandom_number_milliseconds
é recalculado após cada nova tentativa de solicitação.maximum_backoff
costuma ser 32 ou 64 segundos. O valor adequado depende do caso de uso.
O cliente pode continuar tentando novamente depois de maximum_backoff
.
As novas tentativas após esse ponto não precisam continuar aumentando o tempo de espera. Por
exemplo, se um cliente usa um tempo maximum_backoff
de 64 segundos, depois de atingir
esse valor, o cliente pode tentar novamente a cada 64 segundos. Em algum momento,
os clientes precisam ser impedidos de tentar novamente indefinidamente.
O tempo de espera entre novas tentativas e o número de novas tentativas depende do seu caso de uso e das condições da rede.
Preços
O uso da API Google Drive não tem custo financeiro. Exceder os limites de solicitação de cota não gera cobranças extras, e sua conta não é faturada.
Solicitar aumento de cota
Dependendo do uso de recursos do seu projeto, talvez seja necessário solicitar um aumento de cota. As chamadas de API por uma conta de serviço são consideradas como o uso de uma única conta. Solicitar uma cota maior não garante a aprovação. A aprovação de grandes aumentos de cota pode levar mais tempo.
Nem todos os projetos têm as mesmas cotas. À medida que você usa o Google Cloud com o tempo, suas cotas podem aumentar. Caso espere um aumento de uso significativo, solicite o ajuste das cotas na página Cotas no console do Google Cloud.
Para saber mais, consulte os seguintes recursos:
- Sobre as solicitações de aumento de cota
- Conferir o uso e os limites de cota atuais
- Solicitar um limite de cota maior