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

Posted

技术标签:

【中文标题】如何使用 Node.js 从 Supabase Storage 保存文件(将 blob 转换为文件)【英文标题】:How to save a file from Supabase Storage using Node.js (converting blob to file) 【发布时间】:2022-01-11 18:20:20 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

从 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 中的 *** 答案 关于 from.download() 的 Supabase 文档

【讨论】:

以上是关于如何使用 Node.js 从 Supabase Storage 保存文件(将 blob 转换为文件)的主要内容,如果未能解决你的问题,请参考以下文章

Node.js:来自获取的 PNG URL 的新文件

如何添加 supabase nativescript

使用 supabase 的 Prisma 迁移失败

supabase 开源firebase 可选工具

如何使用 node.js 和 javascript 模仿 Facebook 的“链接共享”功能

请求新页面时如何将 AngularJS 路由与 Express (Node.js) 一起使用?