Voraussetzungen
Unverändert: Node.js 20 oder neuer, oder ein Browser; ESM und CommonJS.Zusammenfassung der Breaking Changes
429 wird nicht mehr wiederholt
RATE_LIMITED umfasst sowohl ein Zeitfenster pro Route als auch eine Konto- oder IP-Sperre, die etwa 30 Minuten dauern kann, daher wiederholt das SDK ihn nicht mehr. Das schließt das Limit für einfache Uploads und TOO_MANY_CONCURRENT_UPLOADS ein. Behandle ihn selbst und warte, bevor du es erneut versuchst:
TOO_MANY_CONCURRENT_CHUNKS bei einem Multipart-Teil: Der Server lehnt den Teil ab, bevor er ihn liest, daher sendet das SDK ihn innerhalb von maxRetries erneut.
Schreibvorgänge erhalten einen einzigen Versuch
Netzwerkfehler und5xx werden jetzt nur noch bei GET-Aufrufen und bei Teilen von Multipart-Uploads wiederholt. Diese Aufrufe erhalten einen Versuch:
- einfaches
put()sowie Starten, Abschließen und Abbrechen eines Multipart-Uploads; update(),copy(),move(),delete();rules.set(),uploadTokens.create(),shares.create(),shares.revoke().
put() auf denselben Namen mit overwrite: true. Siehe Schreibvorgänge selbst wiederholen.
Weniger Wiederholungen, kürzeres Backoff
maxRetries ist jetzt standardmäßig 2 (vorher 5), und das Backoff ist auf 8 Sekunden begrenzt (vorher 30). Um das alte Budget für Lesevorgänge und Multipart-Teile beizubehalten:
429 oder bei Schreibvorgängen zurück.
SavedRule.active_from ist optional
Die API sendet active_from nur bei Regeln mit delete_after_days. Berücksichtige in TypeScript undefined:
delete([id]) mit einer einzelnen ID
Ein Batch mit einer ID meldet PREFIX_NOT_ALLOWED jetzt wie jeder andere Batch in failed, statt zu werfen:
delete(id) mit einem einfachen String wirft weiterhin.
RATE_LIMIT ist veraltet
Der Dienst sendet RATE_LIMIT nicht mehr: Die Konto- oder IP-Sperre ist RATE_LIMITED. Der alte Code bleibt in BlobErrorCode, damit bestehende Vergleiche weiterhin kompilieren; stelle sie auf RATE_LIMITED um. DUPLICATE_RULE_PREFIX wurde hinzugefügt.
Korrekturen
- Ein mitten im Lesen abgeschnittener Antwort-Body ist jetzt ein Netzwerkfehler: Er wird bei
GET-Aufrufen und Multipart-Teilen wiederholt, ansonsten wird der ursprünglichefetch-Fehler geworfen (früher war esUNKNOWN_ERROR). - Ein fehlgeschlagener Multipart-Upload wartet jetzt auf die noch laufenden Teile, bevor er abbricht, sodass kein Teil nach dem Abbruch ankommt und keine Anfrage
put()überdauert.
Checkliste
1
429 selbst behandeln
Fange
RATE_LIMITED ab und warte; das SDK wiederholt ihn nicht mehr.2
Schreibvorgänge prüfen
Füge eigene Wiederholungen nur bei Schreibvorgängen hinzu, die sich gefahrlos wiederholen lassen.
3
Ein Wiederholungsbudget wählen
Übergib
{ maxRetries: 5 }, wenn du dich auf die alte Anzahl von Versuchen bei Lesevorgängen und Multipart-Teilen verlassen hast.4
Typen aktualisieren
Berücksichtige, dass
active_from undefined sein kann, und ersetze RATE_LIMIT durch RATE_LIMITED.
