如何使用 Node.js 从 Supabase 存储中保存文件(将 blob 转换为文件)

How to save a file from Supabase Storage using Node.js (converting blob to file)

我正在使用 from.download() 在 NodeJS 中从 Supabase 存储下载媒体文件(主要是图像)。

如何将作为文件返回的 Blob 保存在我的本地硬盘上?

从 Blob 创建缓冲区并将其保存在您的硬盘上。

一个工作示例:
(注意:如果您不使用 NodeJS ESM 模块,则必须使用 require 而不是 import

import fs from 'fs'
import { createClient } from '@supabase/supabase-js';

const supabase = createClient(yourSupaseUrl, yourSupabaseKey)

const fileName = 'some-file.png'
const filePath = 'some-folder/' + fileName
const { data, error } = await supabase.storage
        .from('storage-name')
        .download(filePath)

const blob = data;
const buffer = Buffer.from( await blob.arrayBuffer() );
await fs.promises.writeFile(fileName, buffer);

对我有帮助的链接:

  • Save video blob to filesystem electron/node js
  • 中的 Whosebug 答案
  • 关于 from.download()
  • 的 Supabase 文档