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