Firebase 存储和 PDFkit。如何指定MIME类型?

Fab*_*Dev 6 pdfkit node.js google-cloud-storage firebase google-cloud-functions

我正在尝试使用Firebase 函数创建 PDF 文件并将其保存到Firebase 存储。我使用了在这个答案 中找到的代码。

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const pdfkit = require('pdfkit');

admin.initializeApp(functions.config().firebase);

exports.createPDF = functions.https.onRequest((req, res) => {
    const myPdfFile = admin.storage().bucket("gs://MYBUCKETNAME.appspot.com/").file('test.pdf');
    const doc = new pdfkit();
    const stream = doc.pipe(myPdfFile.createWriteStream());
    doc.fontSize(25).text('Hello World!', 100, 100);
    doc.end();

    stream.on('finish', function () {
        res.status(200).send({status: "ok"});
    });
});
Run Code Online (Sandbox Code Playgroud)

问题:

代码正在运行并且文件已生成。问题是该文件的 MIME 类型为application/octet-stream。所以我无法下载或打开它。 在此输入图像描述

如何保存 pdf 文件并指定 MIME 类型?或者创建后更改?

Jan*_*dez 4

需要为您的文件“contentType: 'application/pdf'”定义内容类型的元数据

例如:

const stream = doc.pipe(myPdfFile.createWriteStream( 
{metadata: { contentType: 'application/pdf'}));
Run Code Online (Sandbox Code Playgroud)