from.download()

from.download()的作用是从私有存储桶下载文件。对于公共存储桶,从 getPublicUrl 返回的 URL 发起请求。

需要RLS策略权限:

  • buckets表的权限: 无
  • objects表的权限:select权限

请参考存储指南中关于访问控制的工作方式。

案例教程

案例1 (下载文件)#

1const { data, error } = await supabase
2.storage
3.from('avatars')
4.download('folder/avatar1.png')

案例2 (带transform参数的下载文件)#

1const { data, error } = await supabase
2.storage
3.from('avatars')
4.download('folder/avatar1.png', {
5  transform: {
6    width: 100,
7    height: 100,
8    quality: 80
9  }
10})

参数说明

  • 路径(path)[必要参数]
    string类型

    文件路径,包括文件名。应该采用folder/subfolder/filename.png的格式。在尝试上传之前,必须确保存储桶已经存在。

  • 选项(option)[可选参数]
    object类型

      特性
    • transform[可选参数]
      TransformOptions类型

      在向客户端提供资源之前对资源进行转换。

        特性
      • format[可选参数]
        "origin"

        指定请求的图像格式。当使用 'origin' 时,我们强制格式与原始图像相同。如果未传递此选项,则将图像优化为现代图像格式,如 Webp。

      • height[可选参数]
        数字类型

        图像的高度(以像素为单位)。

      • quality[可选参数]
        数字类型

        设置返回图像的质量。取值范围从20到100,其中100是最高质量。默认为80。

      • resize[可选参数]
        "cover" | "contain" | "fill"

        调整大小模式可以是 cover、contain 或 fill。默认为 cover。Cover 将图像调整到保持其宽高比的同时填充整个宽度和高度。 Contain 将图像调整到保持其宽高比的同时将整个图像放入宽度和高度内。Fill 将图像调整为填充整个宽度和高度。如果对象的宽高比不匹配宽度和高度,则图像将被拉伸以适应。

      • width[可选参数]
        数字类型

        图像的宽度(以像素为单位)。