存储辅助函数
了解存储模式
Supabase Storage 提供了 SQL 辅助函数,可用于编写 RLS (行级安全)策略。
storage.filename()
返回文件名。例如,如果文件存储在 public/subfolder/avatar.png
路径下,该函数将返回:'avatar.png'
使用示例
以下示例展示如何允许所有用户下载名为 favicon.ico
的文件:
1234567create policy "允许公开下载"on storage.objectsfor selectto publicusing ( storage.filename(name) = 'favicon.ico');
storage.foldername()
返回文件所属的所有子文件夹组成的数组路径。例如,如果文件存储在 public/subfolder/avatar.png
路径下,该函数将返回:[ 'public', 'subfolder' ]
使用示例
以下示例展示如何允许认证用户上传文件到名为 private
的文件夹:
1234567create policy "允许认证用户上传"on storage.objectsfor insertto authenticatedwith check ( (storage.foldername(name))[1] = 'private');
storage.extension()
返回文件扩展名。例如,如果文件存储在 public/subfolder/avatar.png
路径下,该函数将返回:'png'
使用示例
以下示例展示如何限制在名为 cats
的存储桶中只允许上传 PNG 文件:
1234567create policy "仅允许上传PNG文件"on storage.objectsfor insertto authenticatedwith check ( bucket_id = 'cats' and storage.extension(name) = 'png');