我想通过NodeJS将文件上传到我的Azure Blob存储。到目前为止,我通过express-fileupload
将文件上传到我的服务器,它们存储在磁盘上,然后上传到Azure blob存储。现在我想在上传文件时将文件上传到Azure,即在将文件上传到Azure之前不要将它们保存在服务器磁盘上。这是我到目前为止使用的方法:
router.post('/upload', function(req, res) {
"use strict"
if (!req.files)
return res.status(400).send('No files were uploaded.');
// The name of the input field (i.e. "sampleFile") is used to retrieve the uploaded file
let context = req.files.context;
let filenameContext = req.files.context.name;
context.mv('../'+filenameContext, function(err) {
if (err)
return res.status(500).send(err);
else {
blobSvc.createBlockBlobFromStream(containerName, filenameContext, context, function(error, result, response){
if(!error){
console.log(filenameContext+" stored in blob");
fs.unlink('../'+filenameContext, function() {
if (err) throw err;
});
} else {
console.error(filenameContext+" storing in blob failed");
}
});
}
});
是否可以将上传的文件直接转换为流以使用createBlockBlobFromStream
方法,而无需先将文件存储在服务器磁盘上?