Vercel Blob consistent reads : séparer fraîcheur, concurrence et cache

Tech
Vues 95

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.

Vercel Blob consistent reads : séparer fraîcheur, concurrence et cache
useCache: false lit le dernier overwrite d'un Blob privé. Guide pour mémoire d'agent, ETag, autorisation et cache navigateur.

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

Sources