内容提要
Supabase Storage 最近推出了重要更新,支持图像调整和智能CDN,最大可恢复上传容量为50GB。该服务与Postgres数据库无缝集成,提供快速、安全、可扩展的对象存储,适用于机器学习数据和电商产品图库。用户可以通过友好的界面管理文件,并利用Postgres的行级安全性设置访问权限。未来将增加更多存储后端和CDN支持。
延伸解读
为什么 Supabase 选择自建存储 API
文章指出,Supabase 评估了 Ceph、Swift、Minio 等开源对象存储,但它们无法以 Postgres 作为元数据存储,且自带认证系统难以与 Supabase Auth 集成。因此 Supabase 选择自建 Storage API 服务器,将对象元数据和权限规则存入 Postgres,从而复用现有认证体系,并减少外部依赖。
用 SQL 策略管理文件权限
Supabase Storage 的授权不引入新 DSL,而是直接利用 Postgres 的行级安全性。每个项目在 storage schema 下创建 buckets 和 objects 表,用户能否读取或删除对象,取决于其能否对相应行执行 select 或 delete。文章给出了为 avatars 桶开放读取、限制子文件夹以及绑定特定用户 ID 的策略示例。
性能与缓存的设计取舍
存储服务器基于 Fastify 和 TypeScript 构建,全程使用 Node 流,对象直接上传至 S3,减少内存缓冲。文章提到,流式处理导致无法在上传前获知对象大小,但团队认为这一取舍值得。此外,从 S3 取回的对象默认带有 1 小时的 Cache-Control 头,创建对象时可覆盖该缓存时间。
当前后端与后续计划
目前文件对象存储在项目同区域的 S3 桶中,S3 提供高持久性。由于 Wasabi、Backblaze 等也兼容 S3 API,未来增加存储后端较为简单。文章还提到,后续将集成 CDN 以加速全球访问,并改进策略编辑器。图像调整和智能 CDN 已在 v2 中发布,v3 支持最大 50GB 的可恢复上传。
Q&A
Supabase Storage 的主要功能是什么?
Supabase Storage 提供图像调整、智能CDN和最大50GB的可恢复上传容量,适用于机器学习数据和电商产品图库。
Supabase Storage 如何与Postgres数据库集成?
Supabase Storage 与Postgres数据库无缝集成,利用其行级安全性设置访问权限,并存储对象元数据。
Supabase Storage 的文件管理界面有什么特点?
Supabase Storage 提供友好的文件管理界面,支持列式浏览和丰富的文件预览,用户可以快速导航到嵌套文件夹。
Supabase Storage 的安全性如何保障?
Supabase Storage 通过Kong API网关和Postgres的行级安全性来保障安全性,用户请求需通过有效的API密钥进行身份验证。
Supabase Storage 支持哪些存储后端?
目前,Supabase Storage 支持S3存储后端,并计划未来增加更多兼容的存储后端。
Supabase Storage 的未来计划是什么?
未来,Supabase Storage 将增加更多存储后端和CDN支持,以提高全球用户的访问速度。