![](/img/trans.png)
[英]Upload a Stream to Azure Blob Storage using REST API without Azure SDK
[英]Upload stream to azure blob storage
我会将音频文件上传到 azure blob 存储。 首先,我向 url 发出 http 请求以获取文件。
然后我会“直接”将其保存到 azure blob 存储中,而无需将其存储在服务器中然后上传。
这是我的代码:
request
.get(url, {
auth: {
bearer: token
}
})
.on("response", async function(response) {
const res = await blobService.createAppendBlobFromStream(
"recordings", // container name
"record.wav",
response, // should be stream
177777, // stream length
function(err, res) {
try {
console.log(res);
} catch (err) {
console.log(err);
}
}
);
});
实际上,当我在 blob 存储中上传文件并检查我的数据库时,我得到一个里面没有数据的空文件,我想我没有正确发送数据流。
我期望的是在 blob 存储中获取音频文件,其中包含我从get
请求中获取的数据
我还应该指定流长度,但我不知道如何得到它我放了一个随机数,但它应该是正确的流长度。 我已经检查了response
对象,但我没有找到该信息。
我认为你不能直接上传文件,所以首先在你的 blob 存储中创建一个文件夹,然后创建一个文件。 读取选定的文件数据并使用文件流或其他方式将其写入创建的文件。
这是上传文件的代码,
app.post('/upload',function(req,res){
if(req.files.fileInput){
var file = req.files.fileInput,
name = file.name,
type = file.mimetype;
var uploadpath = __dirname + '/uploads/' + name;
file.mv(uploadpath,function(err){
if(err){res.send("Error Occured!")}
else {res.send('Done! Uploading files')}
});
}
else {
res.send("No File selected !");
res.end();
};
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.