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:
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 e5xx 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().
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:
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
GETe partes de multipart e, caso contrário, o erro original dofetché lançado (antes eraUNKNOWN_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.
