Releases: vercel/storage
Release list
@vercel/blob@2.8.0
Minor Changes
- 8b49164: Add
putImage(pathname, bodyOrUrl, options): optimizes an image through Vercel Image Optimization and stores only the optimized output. The source can be the image content itself (string, File, Blob, Buffer or Stream) or aURLinstance pointing at a public http(s) image, which is fetched server-side. Options mirrorput(access, addRandomSuffix, allowOverwrite, cacheControlMaxAge, ifMatch) plus the requiredoptimizeImageparameters (width,quality,format);contentTypeis not accepted since the stored content type always comes from the optimizer output. Deprecates theoptimizeImageoption onputand theputFromUrlfunction in favor ofputImage; both keep working.
@vercel/global-config@1.5.1
Patch Changes
- 59b9bf5: Rename the internal
@vercel/edge-config-fspackage to@vercel/global-config-fs
@vercel/edge-config@1.5.1
Patch Changes
- 59b9bf5: Rename the internal
@vercel/edge-config-fspackage to@vercel/global-config-fs
@vercel/blob@2.7.0
Minor Changes
-
ad5a134: Add image optimization support: a new
optimizeImageoption onputand a newputFromUrlmethod. Both optimize the image through Vercel Image Optimization before storing it (only the optimized output is stored) and require OIDC authentication.const result = await put("avatars/foo.webp", body, { access: "public", optimizeImage: { width: 128, quality: 75, format: "webp" }, }); const result = await putFromUrl( "avatars/foo.webp", "https://example.com/photo.jpg", { access: "public", optimizeImage: { width: 128, quality: 75, format: "webp" }, } );
@vercel/global-config@1.5.0
Minor Changes
-
5c2d8bf: Introduce
@vercel/global-configas the new name for@vercel/edge-config.The package is a drop-in replacement: all existing exports are unchanged, and the exported types are additionally aliased as
GlobalConfigClient,GlobalConfigItems,GlobalConfigValueandEmbeddedGlobalConfig.The default client now reads the connection string from
process.env.GLOBAL_CONFIG, falling back toprocess.env.EDGE_CONFIGif it is not defined. The same applies toGLOBAL_CONFIG_TRACE_VERBOSEandGLOBAL_CONFIG_DISABLE_DEVELOPMENT_SWR.Connection strings using
https://global-config.vercel.comare now supported, in addition to the existinghttps://edge-config.vercel.comandedge-config:formats.
@vercel/edge-config@1.5.0
Version Packages (#1089) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@vercel/blob@2.6.1
Patch Changes
- d0118c4: Add a
useCacheoption topresignUrl()forgetoperations. WhenuseCache: false, the presigned URL includes acache=0query param so fetches bypass the CDN cache and read the latest content directly from origin storage. Likeget(), the bypass only applies to private blobs. The param is not part of the signed payload, so holders of a presigned URL can also add or remove it manually.
@vercel/blob@2.6.0
Minor Changes
- c4976ba: Add
rename(fromUrlOrPathname, toPathname, options)to move a blob to another pathname. The blob is copied to the new pathname and the source is deleted afterwards; if the copy fails the source is left untouched. By default renaming onto an existing blob throws — passallowOverwrite: trueto replace it, oraddRandomSuffix: trueto generate a unique destination. Requires a read-write token (client tokens are not supported). - 89d94e9: Restore the
useCacheoption onget(). PassinguseCache: falsebypasses the CDN cache and serves the blob directly from origin storage (via thecache=0query parameter), guaranteeing the latest content at the cost of slower reads. Defaults totrue.
@vercel/blob@2.5.0
Minor Changes
- 31a8b8f: Deprecate the
useCacheoption onget(). The backend no longer honors thecache=0query parameter it produced, so the option is now a no-op — reads always go through the standard caching path. The option is still accepted (and ignored) to avoid breaking existing callers, and will be removed in a future major version.
Patch Changes
- 9ac2586: Read the Vercel OIDC token via
@vercel/oidc's refreshinggetVercelOidcTokeninstead of the non-refreshinggetVercelOidcTokenSync. This refreshes an expired token in development environments. In production with a valid token, behavior is unchanged. If a refresh is needed but fails, the token is treated as absent so callers still fall back toBLOB_READ_WRITE_TOKEN.
@vercel/blob@2.4.1
Patch Changes
- b7027de: Read the Vercel OIDC token via the
@vercel/oidcpackage (getVercelOidcTokenSync) instead of an inlined copy. This makes the dependency explicit and discoverable, and matches how other Vercel packages consume OIDC. Behavior is unchanged except for one edge case: a blankx-vercel-oidc-tokenrequest-context header now resolves to no token rather than falling back toVERCEL_OIDC_TOKEN.