RDS Supabase存储服务通过存储桶、文件夹和文件三个核心概念来管理您的文件。
基本概念
存储桶:存储文件的顶层容器,可以看作“超级文件夹”。通常,您会为不同的安全或访问规则创建独立的存储桶,例如,一个用于存放公开图片,另一个用于存放私有用户资料。
文件夹:在存储桶内组织文件,用法与您计算机上的文件夹相同。
文件:任何媒体文件,如图片、视频等。将这类大文件存放在存储服务中,可以减轻数据库的负担。请注意,出于安全原因,HTML文件将以纯文本形式提供。
重要
所有存储桶、文件夹和文件的名称都必须遵循阿里云OSS命名规范,避免使用特殊字符。
基本操作
您可以通过Supabase控制台创建存储桶并管理文件,也可以使用JavaScript库进行实现,以下将以JavaScript库为例进行说明。
创建存储桶
创建一个名为avatars的存储桶。
// Use the JS library to create a bucket.
const { data, error } = await supabase.storage.createBucket('avatars')
上传文件
向avatars存储桶中上传一个文件。
const avatarFile = event.target.files[0]
const { data, error } = await supabase.storage
.from('avatars')
.upload('public/avatar1.png', avatarFile)
下载文件
从avatars存储桶中下载指定文件。
// Use the JS library to download a file.
const { data, error } = await supabase.storage.from('avatars').download('public/avatar1.png')
设置安全规则
要限制对文件的访问,您可以使用仪表板或SQL。以下通过SQL策略(Policy)演示如何精确控制文件的访问权限。
-- Use SQL to create a policy.
create policy "Public Access"
on storage.objects for select
using ( bucket_id = 'public' );
相关API
创建存储桶:createBucket
上传文件:upload()
下载文件:download()
该文章对您有帮助吗?