我已经被这个问题困扰了一段时间,似乎无法弄清楚为什么这个文件没有正确上传到 firebase。我在firebase函数中使用下面的代码来生成一个文档,然后我将该文档转换为一个流,最后我创建一个写入流,声明我希望将文件写入的路径并将我的文档流通过管道传输到firebase存储写入流。
示例 1:通过 firebase 控制台从文件系统上传的 PDF。(链接有效并显示pdf)
示例 2:在 firebase 函数中生成的 PDF 并使用以下代码写入存储
注意事项:
- 我知道 PDF 是有效的,因为我可以从函数中返回它并在我的网络浏览器中查看它,一切都如我所料。
- 尝试打开坏文件时,它不显示任何内容并将我重定向回概览屏幕。
const pdfGen = require("html-pdf");
pdfGen.create(html, { format: "Letter" }).toStream(function (err, stream) {
if (err) return res.status(500).send(err);
var file = storage.bucket()
.file(job.jobNum + "/quote-doc.pdf")
.createWriteStream({
resumable : false,
validation : false,
contentType: "auto",
metadata : {
'Cache-Control': 'public, max-age=31536000'}
});
stream.pipe(file)
.on('error', function(err) {
return res.status(500).send(err);
})
.on('finish', function(data) {
stream.close();
file.end();
res.end();
console.log('finished upload');
});
});