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

推荐订阅源

G
GRAHAM CLULEY
V
V2EX
WordPress大学
WordPress大学
博客园 - Franky
Last Week in AI
Last Week in AI
博客园 - 司徒正美
有赞技术团队
有赞技术团队
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 【当耐特】
V
Visual Studio Blog
C
CERT Recently Published Vulnerability Notes
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Jina AI
Jina AI
Attack and Defense Labs
Attack and Defense Labs
腾讯CDC
The Hacker News
The Hacker News
Hugging Face - Blog
Hugging Face - Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
J
Java Code Geeks
人人都是产品经理
人人都是产品经理
阮一峰的网络日志
阮一峰的网络日志
T
Tailwind CSS Blog
S
SegmentFault 最新的问题
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
A
Arctic Wolf
量子位
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
News and Events Feed by Topic
雷峰网
雷峰网
博客园_首页
Google Online Security Blog
Google Online Security Blog
Spread Privacy
Spread Privacy
罗磊的独立博客
H
Hacker News: Front Page
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
TaoSecurity Blog
TaoSecurity Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - 三生石上(FineUI控件)
宝玉的分享
宝玉的分享
IT之家
IT之家
The Cloudflare Blog
爱范儿
爱范儿
博客园 - 叶小钗
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell

Netlify Changelog

Gemini 3.5 Flash now available in Agent Runners 4 Nuxt CVEs: what Netlify users need to know Gemini 3.5 Flash now available in AI Gateway Agent Runners workflow improvements Next.js & React security release (May 2026): what to know Block project transfers out of your team Gemini 3.1 Flash-Lite now available in AI Gateway OpenAI GPT-5.5 Instant now available in AI Gateway New `netlify logs` CLI command Deploy to Netlify with Stripe Projects Netlify Database is now generally available OpenAI GPT-5.5 and GPT-5.5 Pro in AI Gateway & Agent Runners Rename an agent run GPT Image 2 now available in AI Gateway New frontend-design skill for Agent Runners Claude Opus 4.7 now available in AI Gateway and Agent Runners Pricing updates for Credit-based plans New sorting and filter controls on the Members page Netlify Database GA coming soon, no new databases for now Deploy logs streaming is now faster Netlify CLI adds prompt-based creation and anonymous deploys Deploy from Codex with the Netlify Plugin Hydrogen with React Router 7 now supported on Netlify Monitor credit usage by day Invoices for Enterprise Available on the Billing Page AI app development on production infrastructure with Netlify Introducing Prompt Templates OpenAI GPT-5.4 Nano and GPT-5.4 Mini in AI Gateway Change your pricing plan Internal Builder Role & Project Access Controls See your available credits at a glance Astro 6 just works on Netlify Limit AI feature usage OpenAI GPT-5.4 and GPT-5.4 Pro in AI Gateway & Agent Runners Deploy Preview screenshots in agent runs Gemini 3.1 Flash-Lite Preview now available in AI Gateway GPT-5.3 Instant now available in AI Gateway Use Netlify Agent Runners from Linear Automatic PHP bot scan blocking now live on all plans Support for stale-while-revalidate in Cache API Gemini 3.1 Flash Image Preview now available in AI Gateway GPT-5.3-Codex now available in AI Gateway Gemini 3.1 Pro Preview now available in AI Gateway Claude Sonnet 4.6 now available in AI Gateway and Agent Runners Sync changes with Agent Runners without Git Claude Opus 4.6 now available in AI Gateway and Agent Runners Agent Runners improvements recap 6 new React Router & Remix CVEs: what you need to know Vulnerability in Node.js: what Netlify users need to know 5 SvelteKit security vulnerabilities: what Netlify users need to know GPT-5.2-Codex Now Available in AI Gateway and Agent Runners Play Games While Agent Runners Do the Work Prerender.io support updated as new extension Gemini 3 Flash Preview now available in AI Gateway GPT-image-1.5 now available in AI Gateway AI Gateway now Generally Available Observability release is here Prerender extension now generally available Action required: React/Next.js CVE-2025-55184 and CVE-2025-55183 GPT-5.2 and GPT-5.2-Pro now available in AI Gateway and Agent Runners GPT-5.1-Codex-Max now available in AI Gateway and Agent Runners Netlify’s response to the critical React security vulnerability Netlify Vite Plugin now supports AI Gateway locally Claude Opus 4.5 now available in AI Gateway Projects deployed using a zip file via API now support branch deploys Day one support for Angular v21 on Netlify Gemini 3 now available in AI Gateway and Agent Runners DNS record management simplified for teams in Netlify organizations Skew protection for CLI workflows Support for more domain TLDs GPT-5.1 model now available in AI Gateway React Router 7 apps can now be deployed to Edge Functions | Netlify Changelog Git SHA exposed for triggered deploys | Netlify Changelog Test scheduled functions in Netlify dashboard | Netlify Changelog Revert agent run in a task | Netlify Changelog Deletion improvements with Netlify Blobs | Netlify Changelog Preview Server restart for cross-functional collaborators | Netlify Changelog AI inference usage graphs | Netlify Changelog Buy credit packs on demand | Netlify Changelog React Router 7 middleware now supported | Netlify Changelog Skew protection now available | Netlify Changelog Next.js 16 is ready to deploy on Netlify | Netlify Changelog Enforce Git-based workflows for production deploys | Netlify Changelog Claude Haiku 4.5 is now available in the AI Gateway | Netlify Changelog GPT 5 Pro now available in the AI Gateway | Netlify Changelog Updates to credit-based Personal and Pro plans | Netlify Changelog New AI workflows: Agent Runners and AI Gateway (beta) | Netlify Changelog Netlify pricing update: Introducing credit-based plans | Netlify Changelog Security Update: Multiple vulnerabilities in Next.js | Netlify Changelog ChatGPT deep link for failed deploy analysis | Netlify Changelog Equinix IP address expiring for 4-year old sites | Netlify Changelog Nuxt 4 support + new @netlify/nuxt module for local dev | Netlify Changelog Smart Secret Scanning for AI-Generated Code | Netlify Netlify DB: Serverless PostgreSQL Database | Netlify One-click install Netlify MCP on Cursor | Netlify Changelog Netlify MCP Server: AI Agents Can Now Deploy Code Directly | Netlify Netlify Becomes Official Vite Deployment Partner + New Plugin | Netlify Angular 20 support | Netlify Changelog Netlify CLI 21.4.1 UI and workflow enhancements | Netlify Changelog Security Update: Next.js sites on Netlify not vulnerable to CVE-2025-32421 | Netlify Changelog
Introducing Netlify Blobs Beta
Nahrin Jalal · 2023-11-15 · via Netlify Changelog

At Netlify, we’re committed to building strong platform primitives that empower developers to do their best work and achieve more with less. From more control over caching for optimal performance with less reliance on framework internals to more powerful serverless computing with less API surface area, we continue to deliver on our commitment.

Today, we’re excited to announce Netlify Blobs, a general purpose data store built natively into the Netlify Composable Web Platform (CWP). It unlocks more complex and feature-rich applications with less configuration and maintenance.

Native data store

Data is the heart of every web application, and we want developers on Netlify to have access to the storage solutions that best fit their needs.

We believe that seamlessly integrating with the best-in-class vendors of each database type gives developers more control and flexibility than any one-size-fits-all solution we could ever prescribe.

But there’s a category of use cases that have become as ubiquitous as the web itself, and a data store for unstructured and binary data, built into the platform, can help developers take their products to market faster than ever. No setup required and no architecture lock-in.

Universal access, zero setup

With Netlify Blobs, you can create multiple stores for the different types of data in your application and access them from anywhere in the Netlify platform: your builds, functions, and edge functions.

True to our form, there is absolutely no setup involved in creating and starting to use a store — no provisioning stage, no configuration files, not even a button in a UI that you have to click.

You can get from zero to data with just two lines of code in an edge function:

import { getStore } from "@netlify/blobs"

import type { Context, Config } from "@netlify/edge-functions"

export default async (req: Request, context: Context) => {

const store = getStore("lyrics")

const data = await store.get("hey-jude")

// "Na na na nananana"

console.log(data)

return new Response(data)

}

export const config: Config = {

path: "/hey-jude"

}

Site-wide or deploy-specific

You can configure a store to exist at the site level, which means your data will be accessible from any deploy in any context. This lets you keep a persistent state that will remain available as you create new deploys or roll back to previous ones.

Alternatively, you can create a store that is scoped to one single deploy. This is perfect for augmenting a deploy at build time, since your data will be published, rolled back, and deleted in lockstep with the deploy it belongs to.

The example below shows how to achieve this using a Build Event Handler.

import { Blob } from "node:buffer"

import { readFileSync } from "node:fs"

import { getDeployStore } from "@netlify/blobs"

import { NetlifyIntegration } from "@netlify/sdk"

const integration = new NetlifyIntegration()

integration.addBuildEventHandler("onPreBuild", ({ constants }) => {

const store = getDeployStore({

siteID: constants.SITE_ID,

token: constants.NETLIFY_API_TOKEN,

})

const blob = new Blob([readFileSync("./path/to/some/file")])

await store.set("my-file", blob)

})

Use cases

Netlify Blobs is not a feature with one clear paved path, but rather a primitive that developers and frameworks can use as building blocks for an infinite number of applications.

Still, we wanted to share a few examples of powerful new patterns that you can unlock today.

Data store for functions

With Background Functions, you can trigger asynchronous serverless workflows on any Netlify site. This pattern is perfect for long-running operations like generating a site map, processing media assets, or sending emails in bulk.

Netlify Blobs is perfect for persisting the output of those computations:

import { getStore } from "@netlify/blobs"

export default async (req) => {

const store = getStore("media")

// Emulating a task that takes 60 seconds to complete

setTimeout(async () => {

await store.set("something-precious", "💎")

}, 60_000)

}

Because reading from a store is as simple as writing, you can write a second function that checks, as part of a synchronous request/response flow, whether a background function execution has finished and what the output was:

import { getStore } from "@netlify/blobs"

import type { Config } from "@netlify/functions"

export default async (req) => {

const store = getStore("media")

const value = await store.get("something-precious")

if (value === null) {

return Response.json({

ready: false

});

}

return Response.json({

ready: true,

value

})

}

export const config: Config = {

path: "/poll"

}

You can also use Netlify Blobs with Scheduled Functions and write to a store the result of a computation that runs on a schedule:

import { getStore } from "@netlify/blobs"

import type { Config } from "@netlify/functions"

export default async (req) => {

const store = getStore("daily-random-numbers")

const key = new Date().toLocaleDateString()

await store.set(key, Math.random().toString());

}

export const config: Config = {

schedule: "@daily"

}

Programmable cache

Another powerful capability of Netlify Blobs is its ability to be used as a programmable cache for HTTP requests. If your application interacts with a third-party API that is slow, unreliable, or expensive, you may benefit from caching its responses so you call it less often.

The Netlify Blobs API is built on top of web platform standards, so it’s highly interoperable with the Fetch API. For example, you can retrieve a blob in most of the formats supported by the Request object, including a stream.

For maximum flexibility, you can attach arbitrary metadata to blobs, which you can use to persist status codes and response headers:

import { getStore } from "@netlify/blobs"

import { Config } from "@netlify/functions"

export default async (req) => {

const store = getStore("api-cache")

const apiURL = "<https://example.com/slow-api>"

// Try to get the response from the store.

const cached = await store.getWithMetadata(apiURL, { type: "stream" })

// If it exists in the store, return it.

if (cached !== null) {

return new Response(cached.data, {

headers: new Headers(cached.metadata.headers),

status: cached.metadata.status,

})

}

// If it doesn't exist, make the HTTP call and cache the

// response in the store.

const response = await fetch(apiURL)

const body = await response.arrayBuffer()

await store.set(apiURL, body, {

metadata: {

headers: [...response.headers],

status: response.status

}

})

return new Response(body, response)

}

export const config: Config = {

path: "/call-external-api"

}

Processing uploads

If your application takes user submissions, like reviews on a product page or image files for a gallery, Netlify Blobs is a great fit for storing that data. When coupled with Functions or Edge Functions, it becomes very easy to create an endpoint to receive a form, validate the contents, and persist the data (if everything checks out):

import { getStore } from "@netlify/blobs"

import type { Config, Context } from "@netlify/functions"

import * as uuid from "uuid"

export default async (req: Request, context: Context) => {

const key = uuid.v4()

const store = getStore("uploads")

const form = await req.formData()

const file = form.get("file") as File

if (file.type !== "image/png") {

return new Response("Sorry, only PNGs are allowed", { status: 400 })

}

await store.set(key, file)

return new Response(`Upload processed: ${key}`)

}

export const config: Config = {

method: "POST",

path: "/upload"

}

Now in public beta

Netlify Blobs is available today as a beta feature. It’s still under active development and it’s not perfect, but we believe in getting it into the hands of developers sooner, rather than later, because listening to your feedback is how we’ll make a better product.

We’re very excited with the capabilities we’ve showcased here, but we can’t wait to see the use cases that we haven’t even dreamed of that our community will put together.

There are no costs associated with Netlify Blobs during the beta period. We’ll announce the pricing model before it’s generally available, but it will be accessible on all plans (including Starter).

We invite you to follow our documentation and try Netlify Blobs today. Let us know about your experience through our support portal or our community forum.