从逻辑应用程序读取Blob内容

时间:2018-08-22 12:09:41

标签: azure-storage-blobs azure-data-factory

我已经使用Azure Data Factory创建了一个Blob文件。 使用Logic Apps读取Blob内容时,由于该内容无法将Blob内容转换为JSON,因此我在内容的前缀中得到77u/。尝试将Blob内容转换为XML,然后转换为JSON,但无法正常工作。

任何人都可以让我知道如何解决该问题吗?

下面是blob内容:

"body": {
        "$content-type": "application/octet-stream",
        "$content": "77u/W3siUHJvcF8wIjoiQUFBIiwiUHJvcF8xIjoiQjAxNTEwMDEiLCJQcm9wXzIiOiJEIiwiUHJvcF8zIjoiMjAxODA3MDQxNzA1MDIiLCJQcm9wXzQiOiJNSSIsIlByb3BfNSI6Ik4yRVhNSURQIiwiUHJvcF82IjoiQk0iLCJQcm9wXzciOiJVS0RDIiwiUHJvcF84IjoiMTI2NjM3IiwiUHJvcF85IjoiT1BFUiIsIlByb3BfMTAiOm51bGx9DQoseyJQcm9wXzAiOiJNSUQiLCJQcm9wXzEiOiJOMkVYTUlEUCIsIlByb3BfMiI6IjIwMTgwNzA0IiwiUHJvcF8zIjpudWxsLCJQcm9wXzQiOm51bGwsIlByb3BfNSI6bnVsbCwiUHJvcF82IjpudWxsLCJQcm9wXzciOm51bGwsIlByb3BfOCI6bnVsbCwiUHJvcF85IjpudWxsLCJQcm9wXzEwIjpudWxsfQ0KLHsiUHJvcF8wIjoiTUlQIiwiUHJvcF8xIjoiMDEiLCJQcm9wXzIiOiIwLjAiLCJQcm9wXzMiOiIwLjAiLCJQcm9wXzQiOiIwLjAiLCJQcm9wXzUiOiIwLjAiLCJQcm9wXzYiOm51bGwsIlByb3BfNyI6bnVsbCwiUHJvcF84IjpudWxsLCJQcm9wXzkiOm51bGwsIlByb3BfMTAiOm51bGx9DQoseyJQcm9wXzAiOiJNSVAiLCJQcm9wXzEiOiIwMiIsIlByb3BfMiI6IjAuMCIsIlByb3BfMyI6IjAuMCIsIlByb3BfNCI6IjAuMCIsIlByb3BfNSI6IjAuMCIsIlByb3BfNiI6bnVsbCwiUHJvcF83IjpudWxsLCJQcm9wXzgiOm51bGwsIlByb3BfOSI6bnVsbCwiUHJvcF8xMCI6bnVsbH0NCix7IlByb3BfMCI6Ik1JUCIsIlByb3BfMSI6IjAzIiwiUHJvcF8yIjoiMC4wIiwiUHJvcF8zIjoiMC4wIiwiUHJvcF80IjoiMC4wIiwiUHJvcF81IjoiMC4wIiwiUHJvcF82IjpudWxsLCJQcm9wXzciOm51bGwsIlByb3BfOCI6bnVsbCwiUHJvcF85IjpudWxsLCJQcm9wXzEwIjpudWxsfQ0KLHsiUHJvcF8wIjoiTUlQIiwiUHJvcF8xIjoiMDQiLCJQcm9wXzIiOiIwLjAiLCJQcm9wXzMiOiIwLjAiLCJQcm9wXzQiOiIwLjAiLCJQcm9wXzUiOiIwLjAiLCJQcm9wXzYiOm51bGwsIlByb3BfNyI6bnVsbCwiUHJvcF84IjpudWxsLCJQcm9wXzkiOm51bGwsIlByb3BfMTAiOm51bGx9DQoseyJQcm9wXzAiOiJaWloiLCJQcm9wXzEiOiI3IiwiUHJvcF8yIjoiMTU5NjUyNDE0NyIsIlByb3BfMyI6bnVsbCwiUHJvcF80IjpudWxsLCJQcm9wXzUiOm51bGwsIlByb3BfNiI6bnVsbCwiUHJvcF83IjpudWxsLCJQcm9wXzgiOm51bGwsIlByb3BfOSI6bnVsbCwiUHJvcF8xMCI6bnVsbH0NCl0="
    }

2 个答案:

答案 0 :(得分:1)

Base64内容中的前缀77u/UTF-8 BOM引起。通过解码Base64内容,您可以看到与开头的UTF-8 BOM字符匹配。

如果您以数据集格式指定encodingName,则ADF将始终生成BOM。因此,您可以删除encodingName中的format,以生成没有BOM的文件。

答案 1 :(得分:0)

我觉得答案对你来说有点晚了,但我希望它可以帮助面临同样问题的其他人。 我通过用空字符串 ('') 替换 BOM 字符 '77u/' 解决了这个问题,例如撰写活动:

json(base64ToString(replace(body('Get_blob_content')?['$content'],'77u/','')))

这可能不是一个完美的解决方案,但对我来说效果很好。 :)

问候, 卢卡斯