成为赞助商——支持中文 Agent 生态

了解赞助
库Agent场景库
← 返回用例列表

Supabase Storage 存储桶与访问控制简报

按桶类型、S3/REST/TUS、CDN 与默认拒绝+RLS 策略,整理对象存储接入简报;不代持 service role、不代改生产策略为全开。

场景说明

面向独立开发者:把「用户上传文件怎么存、怎么鉴权」写成可对账步骤,区别于 Supabase Database Webhooks 与泛 S3 连通性检查。

案例叙事

01他们做了什么

应用要收用户头像、附件或导出文件时,常见卡点是:桶建了但上传 403,或为图省事把策略写成全开导致对象被扫库。

Supabase Docs《Storage》(Updated / dateModified 可核)说明:Supabase Storage 用于管理任意大小文件,带细粒度访问控制与优化分发。关键能力包括多协议(S3 兼容、RESTful API、TUS 可恢复上传)、全球 CDN、即时图像优化,以及多种桶类型:Files(通用文件与直链/RLS)、Analytics(Iceberg 等分析场景)、Vector(向量与相似度检索)。配套《Access Control》强调 Storage 与 Postgres RLS 协同:默认在无策略时不允许上传;通过在 storage.objects 上创建策略按业务限制访问;不同操作所需策略不同,例如上传主要需 INSERT,使用 upsert 覆盖则还需 SELECT 与 UPDATE。文档示例从宽松 INSERT 策略收紧为仅 authenticated 且限定 bucket_id,并可进一步限制到桶内文件夹前缀。本场景据此输出存储桶与访问控制简报。禁止回显 service role 或声称「生产策略已收紧」。

02实际效果

  • 源未披露量化「未授权访问下降」;公开文只描述桶类型、协议面与默认拒绝+RLS 模型。
  • 能把「403 无策略 / 策略过宽 / 与 Database Webhooks 混淆」拆开。
  • 为上传与读权限提供可落地的最小权限提问清单。

03值得知道

  • Analytics/Vector 桶能力与定价以对应专页为准;本条一手源以 Storage 总览为主。
  • 操作级策略细节以 Access Control 与 helper 函数文档为准。
  • 上面写的是机制说明,不是你项目下现有桶与策略实况。

04可复制提示词

Supabase Storage 接入简报

你是 Supabase Storage 助手。只给存储桶与访问控制核对简报,不要编造策略已生效。

文件类型与大小:{{file_profile}}
读权限模型:{{read_model}}
是否需要可恢复上传:{{resumable}}
现有桶/策略摘要:{{current}}

输出 Markdown:
1. 桶类型选择提问
2. S3/REST/TUS 何时需要
3. 默认拒绝与最小 RLS 策略提纲
4. 非生产试传验收
禁止索要 service role key;禁止建议生产策略 with check (true) 长期全开。

上传 403/对象可被匿名读排查提纲

上传失败或怀疑对象可被未登录读取,请写排查提纲。

HTTP 状态/报错:{{error}}
桶是否 public:{{bucket_public}}
相关策略摘要:{{policies}}

输出:
1. 是否缺少 INSERT/SELECT 策略
2. upsert 是否缺 UPDATE
3. public 桶与 RLS 组合风险
4. 下一步人工验证
不要伪造「已全部锁死」;不要索要密钥。

05一手来源

Supabase Documentation · Storage ↗

文档更新

怎么做

  1. 粘贴文件类型/大小、是否需断点续传、公开读还是登录读,以及当前桶与策略摘要
  2. Agent 按官方 Storage 总览与 Access Control 要点输出:桶类型→协议面→默认拒绝与 RLS 最小权限提问清单
  3. 人工在 Dashboard/SQL 配策略并试传;Agent 不代持 service role、不代把策略改成 true 全开到生产

实用提示

  • Storage 默认不允许无 RLS 策略的上传;须在 storage.objects 上按操作授予策略,upsert 还需额外 SELECT/UPDATE
  • 与 supabase-database-webhooks-brief 不同:本条是对象存储与访问策略,不是表事件出站 Webhook
#Supabase#Storage#RLS#对象存储#独立开发者