我正在开发一个 azure 函数,在节点 js 中运行。此函数应从 blob 中获取图像并将其转换为 base64 字符串。问题是当我调用toString('base64')
我的函数时挂起(看起来像一些无限循环)。我该如何解决这个问题以及导致问题的原因是什么?
函数.json
{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": [
"post"
],
"route": "my_func"
},
{
"type": "http",
"direction": "out",
"name": "res"
},
{
"name": "templateImage",
"type": "blob",
"path": "assets/{templateImage}.jpg",
"dataType": "binary",
"connection": "Storage",
"direction": "in"
}
]
}
index.js
module.exports = async function (context, req) {
let templateImage = context.bindings.templateImage; // This is Buffer.
console.log(templateImage); // I can log it. Will see something like this: <Buffer ff d8 ff e0 00...
console.log(templateImage.toString('base64')); // I want to get base64, but after calling it my function is stuck.
...
}
更新: 我认为值得一提的是,该功能仅在本地开发中挂起。在 azure 门户中它会进行转换,但结果看起来很奇怪:����\u0000\u0010JFIF\u0000\u0001\u0002\u0001\u0001,\u0001,\u0000\u0000��\u0000,Photoshop 。虽然它应该是这样的:data:image/jpeg;base64,/9j/4AAQ...