在Azure Logic Apps中使用SFTP文件内容

时间:2017-05-17 21:32:17

标签: azure-logic-apps

在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功能?

2 个答案:

答案 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