从 NodeJS 中的本地文件路径返回 File 对象

问题描述 投票:0回答:2

我正在尝试编写一个返回

Blob
File
对象
blob_object
的函数,同时获取对象
tmpFilePath
的本地文件路径,并且我必须使用 NodeJS 来完成此操作函数用作 Firebase 云函数的一部分。我尝试了很多方法,但没有一个有效。他们主要围绕这个。

尝试 1:使用

streamToBlob
。灵感来自reddit

const streamToBlob = require('stream-to-blob');
const fs = require('fs-extra');


const input_read_stream = fs.createReadStream(tmpFilePath);
const blob_object = await streamToBlob(input_read_stream);

错误:

ReferenceError: Blob is not defined

尝试 2:使用

blob
。灵感来自stackoverflow

const Blob = require('blob');
const fs = require('fs-extra');

const file_buffer = fs.readFileSync(tmpFilePath);
const blob_object = new Blob([file_buffer]);

错误:

TypeError: Blob is not a constructor

一个可行的解决方案意味着在我的文件

file.js
中编写代码后,我将能够运行
node file.js
并console.log一个
Blob
File
对象。有谁知道如何通过一系列步骤来完成此操作?我在节点 8。

javascript node.js blob buffer fs-extra
2个回答
5
投票

在撰写本文时,

Blob
支持仍处于实验阶段,但这应该适用于最新版本的 Node.js:

import fs from "fs";
import { Blob } from "buffer";

let buffer = fs.readFileSync("./your_file_name");
let blob = new Blob([buffer]);

因此,如果您将 Node 升级到 v16,您的第二个示例应该可以工作。


© www.soinside.com 2019 - 2024. All rights reserved.