【发布时间】:2020-02-16 08:04:18
【问题描述】:
在busboy 的帮助下,我正在尝试将FileStream 保存到Firebase 存储桶中。
代码:
const admin = require('firebase-admin');
const userFilesBucket = admin.storage().bucket(USER_FILES_BUCKET_NAME);
function handlePost(req, res){
const busboy = new Busboy({ headers: req.headers })
busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
file.on('data', function(data) {
});
file.on('end', function() {
uploadFile({filename: filename, file:file, mimetype:mimetype})
.catch(err => {
console.log("attemptFileUpload | err:", err)
reject(err)
});
});
});
}
function uploadFile(fileContainer){
const filePath = fileContainer.filename
const file = userFilesBucket.file(filePath);
file.save(fileContainer.file, function(err) {
if (!err) console.log('Sucess | uploaded a blob or file!');
});
}
这会成功并且文件被保存到bucket但是同时上面的Promise捕获了异常:
The "chunk" argument must be one of type string or Buffer. Received type object
以及文件已损坏。 此错误告诉我应该将 FileStream 转换为 Buffer?
我还要注意,fileContainer.file 的类型是 FileSream。
谢谢。
【问题讨论】:
标签: node.js firebase-storage filestream firebase-admin busboy