gpt4 book ai didi

node.js - 使用 NodeJS 和 express-fileupload 将文件上传到服务器,并将其直接流式传输到 Azure 云

转载 作者:行者123 更新时间:2023-12-02 08:04:37 26 4
gpt4 key购买 nike

我想通过 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方法而不先将文件存储在服务器磁盘上?

最佳答案

我建议使用 createBlockBlobFromText相反:

app.post('/upload', function(req, res) {
if (!req.files)
return res.status(400).send('No files were uploaded.');

let data = req.files.context.data;
let filename = req.files.context.name;

blobSvc.createBlockBlobFromText(containerName, filename, data, function(err) {
if (err)
return res.status(500).send(err);

res.send('File uploaded!');
})
})

关于node.js - 使用 NodeJS 和 express-fileupload 将文件上传到服务器,并将其直接流式传输到 Azure 云,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47497538/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com