Requisiti
Invariati: Node.js 20 o più recente, oppure un browser; ESM e CommonJS.Riepilogo delle modifiche incompatibili
429 non viene più ripetuto
RATE_LIMITED copre sia una finestra per route sia un blocco dell’account o dell’IP che può durare circa 30 minuti, quindi l’SDK non lo ripete più. Questo include il limite degli upload semplici e TOO_MANY_CONCURRENT_UPLOADS. Gestiscilo tu e attendi prima di riprovare:
TOO_MANY_CONCURRENT_CHUNKS su una parte multipart: il server rifiuta la parte prima di leggerla, quindi l’SDK la invia di nuovo entro maxRetries.
Le scritture hanno un solo tentativo
Gli errori di rete e i5xx ora vengono ripetuti solo sulle chiamate GET e sulle parti degli upload multipart. Queste chiamate hanno un solo tentativo:
put()semplice, e avvio, completamento e annullamento di un upload multipart;update(),copy(),move(),delete();rules.set(),uploadTokens.create(),shares.create(),shares.revoke().
put() sullo stesso nome con overwrite: true. Vedi Ripetere tu le scritture.
Meno retry, backoff più breve
maxRetries ora ha come valore predefinito 2 (prima 5), e il backoff è limitato a 8 secondi (prima 30). Per mantenere il vecchio budget su letture e parti multipart:
429 o sulle scritture.
SavedRule.active_from è opzionale
L’API invia active_from solo per le regole con delete_after_days. In TypeScript, gestisci undefined:
delete([id]) con un solo id
Un batch con un solo id ora riporta PREFIX_NOT_ALLOWED in failed, come qualsiasi altro batch, invece di lanciare un errore:
delete(id) con una semplice stringa lancia ancora un errore.
RATE_LIMIT è deprecato
Il servizio non invia più RATE_LIMIT: il blocco dell’account o dell’IP è RATE_LIMITED. Il vecchio codice resta in BlobErrorCode così i confronti esistenti continuano a compilare; sostituiscili con RATE_LIMITED. È stato aggiunto DUPLICATE_RULE_PREFIX.
Correzioni
- Un body della risposta troncato durante la lettura è ora un errore di rete: viene ripetuto sulle chiamate
GETe sulle parti multipart, altrimenti viene lanciato l’errore originale difetch(prima eraUNKNOWN_ERROR). - Un upload multipart fallito ora attende le parti ancora in transito prima di annullare, così nessuna parte arriva dopo l’annullamento e nessuna richiesta sopravvive a
put().
Checklist
1
Gestisci tu il 429
Intercetta
RATE_LIMITED e rallenta; l’SDK non lo ripete più.2
Rivedi le scritture
Aggiungi un tuo retry solo alle scritture sicure da ripetere.
3
Scegli un budget di retry
Passa
{ maxRetries: 5 } se facevi affidamento sul vecchio numero di tentativi per letture e parti multipart.4
Aggiorna i tipi
Gestisci il caso in cui
active_from sia undefined, e sostituisci RATE_LIMIT con RATE_LIMITED.
