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

Tech
Vues 3

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