【问题标题】:Azure Logic Apps - Get Blob Content - Setting Content typeAzure 逻辑应用 - 获取 Blob 内容 - 设置内容类型
【发布时间】:2017-09-21 17:32:47
【问题描述】:

Azure 逻辑应用操作“获取 Blob 内容”不允许我们设置返回内容类型。

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

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

【问题讨论】:

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


【解决方案1】:

我发现的解决方法是使用逻辑应用表达式 base64ToString。

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

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

输出将是 blob 的文本表示形式。

【讨论】:

  • 感谢正在取得进展。我能够解析它,但无法将解析的内容放入松弛消息中。
  • 我得到的结果是“点击下载”链接,因为它正在将 ftp 读入二进制文件。找不到解决方法
【解决方案2】:

在玩弄了很多逻辑应用程序之后,我终于明白发生了什么。

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

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

所以我们可以解码它,但它真的没用。这是 Logic App 的 XML 对象。我们可以对它应用xml函数,比如xpath。

【讨论】:

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

    【讨论】:

      【解决方案4】:

      所以我在 az storage 中有一个带有 json 的 blob。 获取 blob 让我得到了一个非常无用的八位字节,因为我无法解析它。

      错误请求。属性“内容”必须是 JSON 类型的 'ParseJson' 动作输入,但类型为 'application/octet-stream'。

      所以我设置了一个“初始化变量”,内容类型为字符串,指向 GetBlobContent->File Content。 base64 转换发生在幕后,我现在可以通过变量访问我的 json。

      无需代码。

      JSON 输出...

      流程,无代码...

      享受吧!坦帕的希利...

      【讨论】:

        猜你喜欢
        • 2019-05-09
        • 2019-01-28
        • 2021-09-17
        • 2013-03-27
        • 2018-11-08
        • 2021-02-18
        • 2017-10-12
        • 2021-02-06
        • 2020-06-25
        相关资源
        最近更新 更多