在 Azure 逻辑应用中使用 SFTP 文件内容

Using SFTP File Content in Azure Logic Apps

在 SFTP 文件夹中添加或修改新文件时,我必须将文件名和文件内容传递给 Azure 函数。我能够传递它们,但文件内容正在作为复杂类型 json 传递,如下所示:

{
  "fileContent": {
    "$content-type": "application/octet-stream",
    "$content": "QWxvZnQgQidoYW0gU29obyBTcSAgICAg=="
  },
  "fileName": "testFile"
}

我只需要将 $content 传递给 Azure Function。我目前的代码在logic app

中如下
"body": {
                            "fileContent": "@triggerBody()",
                            "fileName": "@triggerOutputs()['headers']['x-ms-file-name']"
                        },

我如何才能将 FileContent 中的内容仅传递给 Azure 函数?

如您所见,您正在获取一个 $content 属性,因此您只需要访问该 属性,因为 Base64 编码,您需要对其进行解码。试试这个

"body": {
          "fileContent": "@base64ToString(triggerBody()['$content'])",
          "fileName": "@triggerOutputs()['headers']['x-ms-file-name']"
},

HTH

您应该可以只传递内容 as-is。逻辑应用程序将解码数据并将其作为二进制传递给 azure 函数(假设该函数可以接受二进制内容)。您可以将文件名作为 header.

传递

如果要将内容作为 属性 附加到 object,则可以使用

"body": {
  "fileContent": "@base64(triggerBody())",
  "fileName": "@triggerOutputs()['headers']['x-ms-file-name']"
}