Flutter中如何通过Supabase Storage访问文件夹并获取文件信息
获取Supabase Storage指定文件夹内的文件信息
你需要调用Bucket对象的list()方法,传入目标文件夹路径并配置参数获取完整元数据,以下是修改后的可运行代码:
final supabase = Supabase.instance.client; // 访问user1 Bucket下的images文件夹,获取所有文件及元数据 final fileList = await supabase.storage.from('user1').list( path: 'images', // 指定要读取的文件夹路径 options: const SearchOptions( metadata: true, // 开启后才能获取文件类型、上传时间等元数据 ), ); // 遍历提取每个文件的关键信息 for (final file in fileList) { final fileName = file.name; final fileType = file.metadata?.contentType; // 比如image/png、image/jpeg final uploadTime = file.metadata?.updatedAt; // 文件上传/更新的时间戳 final fileSize = file.metadata?.size; // 文件大小(单位:字节) // 按需使用这些信息,比如打印或存入自定义列表 print('文件名: $fileName | 类型: $fileType | 上传时间: $uploadTime'); }
核心说明
list(path: 'images'):明确指定要读取的文件夹,对应Bucket下的images目录,如果要读取子文件夹(比如images/avatar),直接修改path参数即可。SearchOptions(metadata: true):默认情况下list()只返回文件名,必须开启此参数才能获取文件类型、上传时间、大小等元数据。- 返回的
FileObject对象常用属性:name:文件名(如果有子文件夹,会包含相对路径,比如avatar/head.png)metadata?.contentType:文件的MIME类型,用于判断是否为图片metadata?.updatedAt:文件最后一次上传或修改的时间metadata?.size:文件的字节大小
内容的提问来源于stack exchange,提问作者Jaafar Melhem
相关产品推荐
相关产品推荐

