Azure 逻辑应用 - 获取 Blob 内容 - 设置内容类型
Posted
技术标签:
【中文标题】Azure 逻辑应用 - 获取 Blob 内容 - 设置内容类型【英文标题】:Azure Logic Apps - Get Blob Content - Setting Content type 【发布时间】:2017-09-21 17:32:47 【问题描述】:Azure 逻辑应用操作“获取 Blob 内容”不允许我们设置返回内容类型。
默认情况下,它将 blob 作为二进制(八位字节流)返回,这在大多数情况下是无用的。一般来说,有文本(例如 json、xml、csv 等)会很有用。
我知道该操作处于测试阶段。这是短期路线图吗?
【问题讨论】:
您是否尝试将 blob 设置为正确的内容类型? ***.com/questions/10040403/… 是的。该 blob 是 /json。 【参考方案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】:-
您需要知道内容类型。
使用 @body('Get_blob_content')['$content'] 单独获取内容部分。
【讨论】:
【参考方案4】:所以我在 az storage 中有一个带有 json 的 blob。 获取 blob 让我得到了一个非常无用的八位字节,因为我无法解析它。
错误请求。属性“内容”必须是 JSON 类型的 'ParseJson' 动作输入,但类型为 'application/octet-stream'。
所以我设置了一个“初始化变量”,内容类型为字符串,指向 GetBlobContent->File Content。 base64 转换发生在幕后,我现在可以通过变量访问我的 json。
无需代码。
JSON 输出...
流程,无代码...
享受吧!坦帕的希利...
【讨论】:
以上是关于Azure 逻辑应用 - 获取 Blob 内容 - 设置内容类型的主要内容,如果未能解决你的问题,请参考以下文章
使用 Azure 逻辑应用添加或修改 blob 时如何获取上传文件的文件名?
为啥没有使用逻辑应用自动生成 Azure Blob MD5 校验和?
Azure 逻辑应用可以从存储帐户中读取 excel 文件吗?