我是将文件上传到blob存储的新手,我需要帮助将视频文件上传到nodejs中的azure blob存储。我为这项服务做了一些代码。
这是我的服务代码段
uploadCourseVideo.post(multipartMiddleware, function (req, res) {
var dataStream;
console.log(req.body, req.files);
fs.readFile(req.files.file.path, function (err, dataStream) {
var blobSvc = azure.createBlobService('ariasuniversity', 'account key');
blobSvc.createContainerIfNotExists('elmsvideos', function (error, result, response) {
if (!error) {
// Container exists and is private
blobSvc.createBlockBlobFromStream('elmsvideos', 'myblob', dataStream, dataStream.length, function (error, result, response) {
if (!error) {
// file uploaded
}
});
}
});
});`
请帮帮我。感谢
答案 0 :(得分:1)
您使用了fs.readfile()
函数,该函数不会返回流,从而引发您的问题。
您可以使用fs.createReadStream()
函数,然后可以使用createWriteStreamToBlockBlob
提供一个流来写入块blob。
var readStream = fs.createReadStream(req.files.file.path);
var blobSvc = azure.createBlobService('ariasuniversity', 'account key');
blobSvc.createContainerIfNotExists('elmsvideos', function (error, result, response) {
if (!error) {
// Container exists and is private
readStream.pipe(blobSvc.createWriteStreamToBlockBlob('elmsvideos', 'myblob', function (error, result, response) {
if(!error) {
// file uploaded
}
}));
}
});