Vercel Blob consistent reads : séparer fraîcheur, concurrence et cache
Les appels privés get() et presignUrl() acceptent useCache: false pour contourner le CDN. Après écrasement du même pathname, la lecture normale peut renvoyer l'ancienne version jusqu'à 60 secondes.
La nouveauté
Les appels privés get() et presignUrl() acceptent useCache: false pour contourner le CDN. Après écrasement du même pathname, la lecture normale peut renvoyer l'ancienne version jusqu'à 60 secondes.
Fraîcheur ≠ concurrence
Cette option ne règle que le read-after-write. Avec plusieurs writers, ETag et ifMatch transforment une mise à jour perdue en BlobPreconditionFailedError explicite.
Auth et cache de livraison
Vérifiez l'autorisation dans le route handler près de get(). Vercel recommande private, no-cache côté navigateur et no-store pour les données très sensibles.
Modèle opérationnel
Classez les objets en asset immutable, état mutable ou snapshot dérivé. Réservez l'origine à la mémoire d'agent, aux checkpoints et aux validations strictes.
Risques
Le bypass augmente latence et Fast Origin Transfer. Pour transactions et nombreux writers, Postgres peut être plus simple.
Checklist
✓Recenser allowOverwrite
✓Vérifier @vercel/blob ≥ 2.6.1
✓Tester les conflits ETag
✓Mesurer les lectures origin