Supabase存储桶请求无法获取数据问题求助
问题分析与解决
你当前的问题是调用了错误的Supabase Storage API方法:supabase.storage.getBucket() 的作用是获取存储桶的元数据(比如桶的名称、是否公开、创建时间等),而不是获取桶内的文件/对象列表,所以返回的是你看到的桶信息对象,而非预期的文件数组。
修正方案
要获取桶内的文件列表,需要使用 supabase.storage.from('桶名称').list() 方法,以下是修正后的代码:
const [media, setMedia] = useState([]); async function getData() { // 调用list方法获取桶内文件列表,可传入路径参数(可选) const { data, error } = await supabase.storage.from("galerie_dimf2023").list(); if (data) setMedia(data); if (error) console.error("获取文件列表失败:", error); } useEffect(() => { getData(); }, []); console.log(media);
补充说明
- 如果需要获取特定文件夹下的文件,可以给
list()方法传入路径参数,比如list('subfolder') - 如果存储桶是私有桶,需要确保用户已通过Supabase Auth完成鉴权,否则会返回权限错误
list()方法返回的data是文件对象数组,每个对象包含name(文件名)、id、metadata等属性
内容的提问来源于stack exchange,提问作者Chicot
相关产品推荐
相关产品推荐

