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

问题描述 投票:0回答:3

我已使用 Azure 数据工厂创建了一个 blob 文件。 使用逻辑应用读取 blob 内容时,我在内容的前缀中收到

77u/
,因为无法将 blob 内容转换为 JSON。尝试将 blob 内容转换为 XML,然后转换为 JSON,但它不起作用。

有人可以告诉我如何解决这个问题吗?

以下是斑点内容:

"body": {
        "$content-type": "application/octet-stream",
        "$content": "77u/W3siUHJvcF8wIjoiQUFBIiwiUHJvcF8xIjoiQjAxNTEwMDEiLCJQcm9wXzIiOiJEIiwiUHJvcF8zIjoiMjAxODA3MDQxNzA1MDIiLCJQcm9wXzQiOiJNSSIsIlByb3BfNSI6Ik4yRVhNSURQIiwiUHJvcF82IjoiQk0iLCJQcm9wXzciOiJVS0RDIiwiUHJvcF84IjoiMTI2NjM3IiwiUHJvcF85IjoiT1BFUiIsIlByb3BfMTAiOm51bGx9DQoseyJQcm9wXzAiOiJNSUQiLCJQcm9wXzEiOiJOMkVYTUlEUCIsIlByb3BfMiI6IjIwMTgwNzA0IiwiUHJvcF8zIjpudWxsLCJQcm9wXzQiOm51bGwsIlByb3BfNSI6bnVsbCwiUHJvcF82IjpudWxsLCJQcm9wXzciOm51bGwsIlByb3BfOCI6bnVsbCwiUHJvcF85IjpudWxsLCJQcm9wXzEwIjpudWxsfQ0KLHsiUHJvcF8wIjoiTUlQIiwiUHJvcF8xIjoiMDEiLCJQcm9wXzIiOiIwLjAiLCJQcm9wXzMiOiIwLjAiLCJQcm9wXzQiOiIwLjAiLCJQcm9wXzUiOiIwLjAiLCJQcm9wXzYiOm51bGwsIlByb3BfNyI6bnVsbCwiUHJvcF84IjpudWxsLCJQcm9wXzkiOm51bGwsIlByb3BfMTAiOm51bGx9DQoseyJQcm9wXzAiOiJNSVAiLCJQcm9wXzEiOiIwMiIsIlByb3BfMiI6IjAuMCIsIlByb3BfMyI6IjAuMCIsIlByb3BfNCI6IjAuMCIsIlByb3BfNSI6IjAuMCIsIlByb3BfNiI6bnVsbCwiUHJvcF83IjpudWxsLCJQcm9wXzgiOm51bGwsIlByb3BfOSI6bnVsbCwiUHJvcF8xMCI6bnVsbH0NCix7IlByb3BfMCI6Ik1JUCIsIlByb3BfMSI6IjAzIiwiUHJvcF8yIjoiMC4wIiwiUHJvcF8zIjoiMC4wIiwiUHJvcF80IjoiMC4wIiwiUHJvcF81IjoiMC4wIiwiUHJvcF82IjpudWxsLCJQcm9wXzciOm51bGwsIlByb3BfOCI6bnVsbCwiUHJvcF85IjpudWxsLCJQcm9wXzEwIjpudWxsfQ0KLHsiUHJvcF8wIjoiTUlQIiwiUHJvcF8xIjoiMDQiLCJQcm9wXzIiOiIwLjAiLCJQcm9wXzMiOiIwLjAiLCJQcm9wXzQiOiIwLjAiLCJQcm9wXzUiOiIwLjAiLCJQcm9wXzYiOm51bGwsIlByb3BfNyI6bnVsbCwiUHJvcF84IjpudWxsLCJQcm9wXzkiOm51bGwsIlByb3BfMTAiOm51bGx9DQoseyJQcm9wXzAiOiJaWloiLCJQcm9wXzEiOiI3IiwiUHJvcF8yIjoiMTU5NjUyNDE0NyIsIlByb3BfMyI6bnVsbCwiUHJvcF80IjpudWxsLCJQcm9wXzUiOm51bGwsIlByb3BfNiI6bnVsbCwiUHJvcF83IjpudWxsLCJQcm9wXzgiOm51bGwsIlByb3BfOSI6bnVsbCwiUHJvcF8xMCI6bnVsbH0NCl0="
    }
azure-blob-storage azure-data-factory
3个回答
3
投票

Base64内容中的前缀

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


如果您在数据集格式中指定了

encodingName

,则 ADF 将始终生成 BOM。所以你可以去掉
encodingName
中的
format
来生成无BOM文件。


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

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

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

问候, 卢卡斯


0
投票
将 ADF 上接收器/目标数据集的“编码”更改为“US-ASCII”以解决此问题。

© www.soinside.com 2019 - 2024. All rights reserved.