在SFTP文件夹中添加或修改新文件时,我必须将文件名和文件内容传递给Azure功能。我能够传递它们,但文件内容作为复杂类型json传递如下:
{
"fileContent": {
"$content-type": "application/octet-stream",
"$content": "QWxvZnQgQidoYW0gU29obyBTcSAgICAg=="
},
"fileName": "testFile"
}
我只需要将 $ content 传递给Azure功能。我在逻辑应用程序中的当前代码如下
"body": {
"fileContent": "@triggerBody()",
"fileName": "@triggerOutputs()['headers']['x-ms-file-name']"
},
我怎样才能将内容从FileContent传递到Azure功能?
答案 0 :(得分:3)
您应该能够按原样传递内容。逻辑应用程序将解码数据并将其作为二进制文件传递给azure函数(假设函数可以接受二进制内容)。您可以将文件名作为标题传递。
如果要将内容作为属性附加到对象上,则可以使用
"body": {
"fileContent": "@base64(triggerBody())",
"fileName": "@triggerOutputs()['headers']['x-ms-file-name']"
}
答案 1 :(得分:1)
正如您所看到的,您正在获取$ content属性,因此您只需要访问该属性,并且与Base64编码一样,您需要对其进行解码。试试这个
"body": {
"fileContent": "@base64ToString(triggerBody()['$content'])",
"fileName": "@triggerOutputs()['headers']['x-ms-file-name']"
},
HTH