用途:Neon Object Storage 是 S3 兼容对象存储,随 Neon 项目分支,每个分支获得隔离的存储状态,文件与数据库行在 dev、preview、staging、production 间保持同步。适合存放应用与用户产生的文件(上传、附件、头像、图片、文档、生成资产、备份),也适合需要与数据库跨环境一致、可安全丢弃的环境。若文件随应用发布(HTML、JS、CSS、public/ 图片)则属于静态托管,应放在 Vercel、Netlify 或 Cloudflare,Neon 无网站模式(PutBucketWebsite 返回 501)。
主要能力:S3 兼容,支持 AWS SDK、boto3、AWS CLI、预签名 URL;仅路径风格寻址与 SigV4。分支随库:分支采用写时复制,派生分支即时继承父分支的桶与对象。两种访问模式:private 需每次操作凭证;public_read 允许匿名读、认证写。与 Functions 和 AI Gateway 共用同一套 Neon 凭证系统。
可用区域:目前仅 aws-us-east-2、aws-us-east-1、aws-eu-central-1、aws-ap-southeast-1,需先确认项目所在区域。
用法:在 neon.ts 的 buckets 中声明桶,如 images: {} 与 "public-assets": { access: "public_read" };用 neon deploy(即 neon config apply)在链接分支上创建。用 neon config status/plan/apply 以 Terraform 方式对照分支。声明 buckets 后,Neon 注入 AWS 标准环境变量(AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_ENDPOINT_URL_S3、AWS_REGION),本地可用 neon env pull 或 neon-env run -- <命令>。推荐 Files SDK(files-sdk/neon 适配器),安装 npm install files-sdk @aws-sdk/client-s3 @aws-sdk/s3-presigned-post @aws-sdk/s3-request-presigner,支持 upload、download、url、list、exists、copy、delete、signedUploadUrl;也可直接用 AWS S3 客户端,需设 forcePathStyle: true。可组合模式:生成文件→PutObject 到桶→向 Postgres 插入行→读取时预签名;在 Postgres 列中存桶键而非字节。还有 neon bucket create|list|delete 与 object put|get|list|delete 命令。
日志:neon logs query --branch production --source storage --since 1h,日志按单分支范围,需指定 --branch。
限制:public_read 对象匿名读取,热资源应前置 CDN 并在 PutObject 设 Cache-Control,新版本写入新键再重指向。私有桶应使用预签名 URL。文档为权威来源且功能演进快,应以官方文档为准。其他细节暂未提供。