存储桶
存储桶(Buckets)允许您对文件进行组织管理,并决定资产的访问模型。上传限制如最大文件大小和允许的内容类型也是在存储桶级别定义的。
访问模型
存储桶有两种访问模型:公开和私有存储桶。
私有存储桶
当存储桶设置为私有时,所有操作都需通过RLS策略进行访问控制。下载资产时也同样适用此规则。存储桶默认是私有的。
访问私有存储桶内资产的唯一方式是:
- 使用下载方法,并提供包含用户JWT的授权头信息。您在
storage.objects
表上创建的RLS策略将使用该用户来判断其是否有访问权限。 - 使用
createSignedUrl
方法创建具有时效性的签名URL。
典型用例:
- 上传用户的敏感文档
- 通过RLS设置细粒度访问控制来保护私有资产
公开存储桶
当存储桶被指定为"公开"时,对于检索和提供存储桶内文件的操作将绕过访问控制。这意味着任何拥有资产URL的人都可以直接访问文件。
对于其他类型的操作(包括上传、删除、移动和复制),访问控制仍然有效。
典型用例:
- 用户个人资料图片
- 用户公开媒体文件
- 博客文章内容
公开存储桶比私有存储桶性能更高,因为它们的缓存机制不同。