3

在 Azure App-Service Logic App 中,我有一个 AzureStorageBlobConnector,它从存储中检索文件。该文件以二进制形式检索,并且未设置任何 ContentTransferEncoding。我的连接器定义(订阅详细信息替换为“x”)如下所示:

"azurestorageblobconnector": {
            "type": "ApiApp",
            "inputs": {
                "apiVersion": "2015-01-14",
                "host": {
                    "id": "/subscriptions/x/providers/Microsoft.AppService/apiapps/azurestorageblobconnector",
                    "gateway": "https://x.azurewebsites.net"
                },
                "operation": "GetBlob",
                "parameters": {
                    "BlobPath": "@triggers().outputs.body.Properties['FilePath']",
                    "FileType": "Binary"
                },
                "authentication": {
                    "type": "Raw",
                    "scheme": "Zumo",
                    "parameter": "@parameters('/subscriptions/x/resourcegroups/x/providers/Microsoft.AppService/apiapps/azurestorageblobconnector/token')"
                }
            },
            "repeat": null,
            "conditions": []
        },

我想编写一个自定义 Api 连接器来接收此文件,对其进行一些更改,然后将其返回以用于工作流的下一步。

当存储 blob 连接器将文件传递给下一个连接器时,文件将采用什么形式@body('azurestorageblobconnector').Content?它会是 HttpPostedFile 还是正文中的 Stream 或 Multipart 内容,还是其他内容?

4

1 回答 1

2

这取决于您如何配置连接器,如果您选择“二进制”,那么它将以 Base64 编码的字符串形式出现。如果您选择文本,那么它将是“原始文本”。

解决这个问题的一种方法是在您的 API 应用程序中尝试 Convert.FromBase64String ,如果成功,那么您将获得一个包含实际字节的字节数组。如果它不成功,那么您可以假设这是文件的原始文本内容。

于 2015-05-07T18:30:15.163 回答