Azure Logic应用程序 - 获取Blob内容 - 设置内容类型

时间:2017-04-24 21:41:58

标签: azure azure-storage-blobs content-type azure-logic-apps

Azure Logic Apps操作"获取Blob内容"不允许我们设置返回内容类型。

默认情况下,它将blob作为二进制(八位字节流)返回,这在大多数情况下是无用的。一般来说,拥有文本(例如json,xml,csv等)会很有用。

我知道该动作正处于测试阶段。这是短期路线图吗?

4 个答案:

答案 0 :(得分:6)

我找到的解决方法是使用Logic App表达式base64ToString。

例如,使用以下代码创建“Compose”类型的操作(数据操作组):

        "ComposeToString": {
            "inputs": "@base64ToString(body('Get_blob_content').$content)",
            "runAfter": {
                "Get_blob_content": [
                    "Succeeded"
                ]
            },
            "type": "Compose"
        }

输出将是blob的文本表示。

答案 1 :(得分:2)

所以我有一个blob坐在z存储中,里面有json。 提取blob后,我得到了一个八位位组,这很没用,因为我无法解析它。

BadRequest。 “ content”属性在以下位置必须为JSON类型: “ ParseJson”操作输入,但类型为“ application / octet-stream”。

因此,我设置了字符串的内容类型“ Initialize variable”,指向GetBlobContent-> File Content。 base64转换发生在后台,现在我可以通过变量访问json了。

不需要代码。

JSON输出...

enter image description here

流量,没有代码...

enter image description here

享受!坦帕市的Healy ...

答案 2 :(得分:1)

在摆弄Logic Apps之后,我终于明白了发生了什么。

HTTP请求的JSON输出是XML有效负载的JSON表示:

{
  "$content-type": "application/xml",
  "$content": "77u/PD94bWwgdm..."
}

所以我们可以解码它,但实际上它没用。这是Logic App的XML对象。我们可以将xml函数应用于它,例如xpath。

答案 3 :(得分:0)

  1. 您需要知道内容类型。
  2. 使用@ {body('Get_blob_content')['$ content']}单独获取内容部分。