vercel blob commands support private stores and updated blob workflows
Introduced 2026-02-19 · score 0.98
HOW TO USE IT
When creating, uploading, downloading, or copying blobs in a private store, run the matching `vercel blob` command with `--access private`. For conditional operations, use `--if-match` on put/del/copy or `--if-none-match` on get.
vercel blob create-store my-store --access privatevercel blob put file.txt --access private
vercel blob get file.txt --access privatevercel blob copy source.txt dest.txt --access privateWHY THIS HELPS
Create, upload, download, or copy blobs in a Vercel Blob store, including a private store.
BEFORE THIS CHANGE
Old commands and options continue to work but are deprecated; the prior overwrite option was `--force`.
REQUIREMENTS AND LIMITATIONS
- Version: 50.20.0
- --access <access>: Select `private` or `public`; defaults to `public` per the release note. The current CLI docs say it is required, which conflicts with that release note.
- --if-match <etag>: Proceed only if the blob ETag matches; applies to put, del, and copy.
- --if-none-match <etag>: Return get content only if the blob ETag does not match; an unchanged blob returns 304.
- --allow-overwrite: Allow an upload to replace an existing file; use this in place of `--force` per the release note.
- Prerequisite: Authenticate through OIDC in a linked project with a connected Blob store, or provide `BLOB_READ_WRITE_TOKEN` from an env file or with `--rw-token`.
- `--access` defaults to `public` for backward compatibility.
- `blob get` works with both public and private stores.
- Old commands and options are deprecated but still work.
- Docs conflict: The current CLI docs, last updated August 13, 2026, say `--access` is required; release 50.20.0 says it defaults to `public`. The current docs are newer than the stated release version, so the release note governs behavior for this card.
FIRST-PARTY EVIDENCE
Check the installed version and the source before using it. Entry JSON