Azure 搜索:blob metadata_storage_path,当用作键时,是否被 base64 编码了两次?

Azure Search: Is the blob metadata_storage_path, when used as a key, being base64 encoded twice?

如果我将一些 pdf 文档上传到容器 blob 存储并配置 Azure 搜索以使用 metadata_storage_path 作为键(默认值)对它们进行索引。来自 REST API 的内容似乎经过了两次 base64 编码。

例如,我从 REST API 中获取此文件的路径: https://videoblobstorage.blob.core.windows.net/yatesfiles/Books/ANGULAR_2_COOKBOOK.pdf

这是: YQBIAFIAMABjAEgATQA2AEwAeQA5ADIAYQBXAFIAbABiADIASgBzAGIAMgBKAHoAZABHADkAeQBZAFcAZABsAEwAbQBKAHMAYgAyAEkAdQBZADIAOQB5AFoAUwA1ADMAYQBXADUAawBiADMAZAB6AEwAbQA1AGwAZABDADkANQBZAFgAUgBsAGMAMgBaAHAAYgBHAFYAegBMADAASgB2AGIAMgB0AHoATAAwAEYATwBSADEAVgBNAFEAVgBKAGYATQBsADkARABUADAAOQBMAFEAawA5AFAAUwB5ADUAdwBaAEcAWQAxAA2

如果我尝试对其进行 base64 解码,我会得到另一个 base64 字符串,其中包含很多我必须删除的 \0: aHR0cHM6Ly92aWRlb2Jsb2JzdG9yYWdlLmJsb2IuY29yZS53aW5kb3dzLm5ldC95YXRlc2ZpbGVzL0Jvb2tzL0FOR1VMQVJfMl9DT09LQk9PSy5wZGY1

然后如果我再次进行 base64 解码,我会得到我期望的路径: https://videoblobstorage.blob.core.windows.net/yatesfiles/Books/ANGULAR_2_COOKBOOK.pdf

我也试过将密钥更改为 metadata_storage_name,它也进行了两次 base64 编码。所以,它似乎与密钥本身有关。

这是怎么回事?这是一个错误吗?

是的,这是 UI 中的一个错误,我们有一个修复程序,应该不晚于 2019 年 11 月 14:00 PDT 部署。

不幸的是,如果双重编码有问题,您将需要重新创建索引和索引器。您可以等到 UI 更新结束并使用它重新创建,或者您可以使用 Postman 等工具手动重新创建索引器,使用 REST documentation 作为指南。