Skip to main content
A versão 4.0.0 muda a forma como o SDK faz novas tentativas, para que ele só repita o que é seguro repetir. Nenhum método, opção ou export foi renomeado ou removido.

Requisitos

Inalterados: Node.js 20 ou superior, ou um navegador; ESM e CommonJS.

Resumo das breaking changes

429 não é mais repetido

RATE_LIMITED cobre tanto uma janela por rota quanto um bloqueio de conta ou IP que pode durar cerca de 30 minutos, então o SDK não o repete mais. Isso inclui o limite de upload simples e TOO_MANY_CONCURRENT_UPLOADS. Trate-o você mesmo e aguarde antes de tentar novamente:
A única exceção é TOO_MANY_CONCURRENT_CHUNKS em uma parte de multipart: o servidor recusa a parte antes de lê-la, então o SDK a envia novamente dentro de maxRetries.

Escritas têm uma única tentativa

Erros de rede e 5xx agora só são repetidos em chamadas GET e em partes de uploads multipart. Estas chamadas têm uma tentativa:
  • put() simples, e início, conclusão e cancelamento de um upload multipart;
  • update(), copy(), move(), delete();
  • rules.set(), uploadTokens.create(), shares.create(), shares.revoke().
Repita uma escrita por conta própria apenas quando for seguro para você, por exemplo um put() com o mesmo nome e overwrite: true. Veja Repetindo escritas por conta própria.

Menos novas tentativas, backoff mais curto

maxRetries agora tem padrão 2 (era 5), e o backoff é limitado a 8 segundos (era 30). Para manter o limite antigo em leituras e partes de multipart:
Isso não traz de volta as novas tentativas em 429 nem em escritas.

SavedRule.active_from é opcional

A API só envia active_from para regras com delete_after_days. Em TypeScript, trate o caso undefined:

delete([id]) com um único id

Um lote com um id agora informa PREFIX_NOT_ALLOWED em failed, como qualquer outro lote, em vez de lançar erro:
delete(id) com uma string simples continua lançando erro.

RATE_LIMIT está depreciado

O serviço não envia mais RATE_LIMIT: o bloqueio de conta ou IP é RATE_LIMITED. O código antigo permanece em BlobErrorCode para que as comparações existentes continuem compilando; troque-as por RATE_LIMITED. DUPLICATE_RULE_PREFIX foi adicionado.

Correções

  • Um corpo de resposta cortado no meio da leitura agora é um erro de rede: ele é repetido em chamadas GET e partes de multipart e, caso contrário, o erro original do fetch é lançado (antes era UNKNOWN_ERROR).
  • Um upload multipart que falha agora aguarda as partes ainda em andamento antes de cancelar, para que nenhuma parte chegue depois do cancelamento e nenhuma requisição sobreviva ao put().

Checklist

1

Trate o 429 você mesmo

Capture RATE_LIMITED e aguarde; o SDK não o repete mais.
2

Revise as escritas

Adicione sua própria nova tentativa apenas às escritas que são seguras de repetir.
3

Escolha um limite de novas tentativas

Passe { maxRetries: 5 } se você dependia do número antigo de tentativas em leituras e partes de multipart.
4

Atualize os tipos

Trate o caso de active_from ser undefined e substitua RATE_LIMIT por RATE_LIMITED.