Firebase 存储和 PDFkit。如何指定 MIME 类型?
Firebase Storage and PDFkit. How specify MIME type?
我正在尝试使用 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"});
});
});
问题:
代码运行正常,文件已生成。
问题是该文件的 MIME 类型为 application/octet-stream。所以我无法下载或打开它。
如何保存pdf文件并指定MIME类型?还是创建后再改?
有必要为您的文件定义内容类型的元数据"contentType: 'application/pdf'"
例如:
const stream = doc.pipe(myPdfFile.createWriteStream(
{metadata: { contentType: 'application/pdf'}));
我正在尝试使用 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"});
});
});
问题:
代码运行正常,文件已生成。
问题是该文件的 MIME 类型为 application/octet-stream。所以我无法下载或打开它。
如何保存pdf文件并指定MIME类型?还是创建后再改?
有必要为您的文件定义内容类型的元数据"contentType: 'application/pdf'"
例如:
const stream = doc.pipe(myPdfFile.createWriteStream(
{metadata: { contentType: 'application/pdf'}));