You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 13:37:13