惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
V
V2EX
Jina AI
Jina AI
爱范儿
爱范儿
M
MIT News - Artificial intelligence
量子位
L
LangChain Blog
Google DeepMind News
Google DeepMind News
酷 壳 – CoolShell
酷 壳 – CoolShell
罗磊的独立博客
腾讯CDC
MongoDB | Blog
MongoDB | Blog
P
Proofpoint News Feed
宝玉的分享
宝玉的分享
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
F
Fortinet All Blogs
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Vercel News
Vercel News
T
The Blog of Author Tim Ferriss

Vercel News

Vercel Open Source Program: Winter 2026 cohort How Notion Workers run untrusted code at scale with Vercel Sandbox How we run Vercel's CDN in front of Discourse From idea to secure checkout in minutes with Stripe Building Slack agents can be easy Scaling redirects to infinity on Vercel Advancing Python typing Gamma builds design-first agents with Vercel How Avalara turns pipe dreams into patent-pending with v0 Keeping community human while scaling with agents How OpenEvidence built a healthcare AI that physicians actually trust Security boundaries in agentic architectures Skills Night: 69,000+ ways agents are getting smarter Video Generation with AI Gateway We Ralph Wiggumed WebStreams to make them 10x faster How Stably ships AI testing agents in hours, not weeks How we built AEO tracking for coding agents Anyone can build agents, but it takes a platform to run them Introducing Geist Pixel The Vercel AI Accelerator is back with $6m in credits Making agent-friendly pages with content negotiation The Vercel OSS Bug Bounty program is now available Introducing the new v0 Run untrusted code with Vercel Sandbox, now generally available How Stripe built a game-changing app in a single flight with v0 How Sensay went from zero to product in six weeks AGENTS.md outperforms skills in our agent evals Agent skills explained: An FAQ Testing if "bash is all you need" AWS databases are now live on the Vercel Marketplace and v0
Signed URLs are now available for Vercel Blob - Vercel
Agustin FalcoSoftware EngineerElliot DauberSoftware Engineer · 2026-06-02 · via Vercel News

You can now generate time-bound signed URLs for Vercel Blob. A signed URL is a scoped URL with an expiry that allows you to upload, download, inspect, or delete a specific object without giving access to your entire Blob store.

Each URL is scoped to a single operation (put, get, head, or delete), a single pathname, and an expiry you choose, up to 7 days. The signature covers the operation and constraints, so a URL signed for a GET can't be reused as a PUT.

import { issueSignedToken, presignUrl } from '@vercel/blob';

const token = await issueSignedToken({

operations: ['get'],

});

const { presignedUrl } = await presignUrl(token, {

pathname: 'invoices/2026-q1.pdf',

operation: 'get',

validUntil: Date.now() + 5 * 60 * 1000, // 5 minutes

});

// On client

<img src={presignedUrl} />

Issue a token, mint a 5-minute read URL, and let the browser render the object directly.

Link to headingDirect uploads from the browser

Upload URLs (put) support multipart, so the browser can stream large files straight to Blob storage without round-tripping through your server.

import { presignUrl } from '@vercel/blob';

const { presignedUrl } = await presignUrl(token, {

pathname: 'user-uploads/avatar.png',

operation: 'put',

validUntil: Date.now() + 15 * 60 * 1000,

});

// On client

await fetch(presignedUrl, { method: 'PUT', body: file })

Mint a 15-minute upload URL so the browser writes the file straight to Blob.

Link to headingConditional deletes

Delete URLs accept an ifMatch option so the delete only applies if the object hasn't been overwritten since you signed the URL:

import { presignUrl } from '@vercel/blob';

const { presignedUrl } = await presignUrl(token, {

pathname: 'tmp/session.json',

operation: 'delete',

validUntil: Date.now() + 60 * 1000,

ifMatch: '"a1b2c3"', // ETag of the version you intend to remove

});

// On client

await fetch(presignedUrl, { method: 'DELETE' })

The delete no-ops if the ETag has changed since you signed the URL.

Signed URLs work alongside OIDC. Your server authenticates to Blob via OIDC, generates a signed token, and produces narrowly scoped, time-bound URLs for the browser, so your long-lived BLOB_READ_WRITE_TOKEN never leaves the server.

Update @vercel/blob to 2.4.0 and read the documentation to get started.