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

Flutter中如何获取Supabase Storage已上传媒体的URL?

获取Supabase已上传媒体的下载链接(downloadUrl)

在Flutter的Supabase SDK中,获取已上传媒体的下载链接有两种常用方式,可根据文件访问权限选择:

1. 获取公开文件的下载链接

如果文件存储在公开访问路径(比如示例中的public/前缀路径),直接调用getPublicUrl方法生成链接:

// 基于存储桶和文件路径生成公网下载链接
final downloadUrl = supabase.storage.from('avatars').getPublicUrl('public/avatar1.png');

2. 获取私有文件的签名下载链接

如果文件是私有访问权限,需要生成带有效期的签名链接,使用createSignedUrl方法:

// 生成有效期为3600秒(1小时)的签名下载链接
final signedUrl = await supabase.storage.from('avatars').createSignedUrl('public/avatar1.png', 3600);

补充:通过上传响应获取路径生成链接

上传完成后,也可以从返回的response对象中提取文件路径,再生成链接:

final avatarFile = File('path/to/file');
final response = await supabase
  .storage
  .from('avatars')
  .upload('public/avatar1.png', avatarFile, fileOptions: FileOptions(
    cacheControl: '3600',
    upsert: false
  ));

// 从响应中获取文件路径并生成下载链接
final filePath = response.data?.path;
if (filePath != null) {
  final downloadUrl = supabase.storage.from('avatars').getPublicUrl(filePath);
}

内容的提问来源于stack exchange,提问作者tailor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 09:06:38