我使用 multer 和 nodejs 来处理多部分表单数据。我不想保存从客户端获得的 req.file 。我想直接将内存中的文件缓冲区上传到谷歌云存储...
但是存储桶(firebase storage)的上传方法只需要一个文件路径作为参数。有什么方法可以直接实现这一点而不保存文件并将内存中的文件缓冲区直接上传到firebase存储?
如果是这样,该怎么办?
解决方案就在 Nodejs 云存储入门指南中。
function sendUploadToGCS (req, res, next) {
if (!req.file) {
return next();
}
const gcsname = Date.now() + req.file.originalname;
const file = bucket.file(gcsname);
const stream = file.createWriteStream({
metadata: {
contentType: req.file.mimetype
},
resumable: false
});
stream.on('error', (err) => {
req.file.cloudStorageError = err;
next(err);
});
stream.on('finish', () => {
req.file.cloudStorageObject = gcsname;
file.makePublic().then(() => {
req.file.cloudStoragePublicUrl = getPublicUrl(gcsname);
next();
});
});
stream.end(req.file.buffer);
}
参考:https://cloud.google.com/nodejs/getting-started/using-cloud-storage https://cloud.google.com/nodejs/getting-started/using-cloud-storage
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)