代码之家  ›  专栏  ›  技术社区  ›  Fernando Silva

Azure使用Blob存储索引器在元数据中搜索无效的base64路径

  •  1
  • Fernando Silva  · 技术社区  · 8 年前

    我使用Blob存储索引器在Azure搜索中索引我的文件。

    执行搜索后,我应该能够通过解码base64元数据字符串来确定blob的路径。据我所知,C#无法解码返回的base64。

    以下是Azure Search发送的base64路径示例:

    1. AHR0CHM6LY9QBG9JYWXNZW5LCMFSLMJSB2UY29YZS53AW5KB3DZLM5LDC9KAWFYAW9ZLZEVMTATDGV4DG8UEMLW0->当我尝试在C#中解码它时,我得到了以下异常:“Base-64字符数组或字符串的长度无效。”

    2.
    AHR0CHM6LY9QBG9JYWXNZW5LCMFSLMJSB2UY29YZS53AW5KB3DZLM5LDC9KAWFYAW9ZLZEVMI10ZXH0BY56AXA1->在不在原始路径中的末尾添加5

    3. AHR0CHM6LY9QBG9JYWXNZW5LCMFSLMJSB2UY29YZS53AW5KB3DZLM5LDC9KAWFYAW9ZLZEVMY10ZXH0BY56AXA1->在不在原始路径中的末尾添加5

    下面是我用来解码它的代码:

        public static string DecodeBase64(this string base64)
        {
            // I have also tried with ASCII
            return System.Text.Encoding.UTF8.GetString(System.Convert.FromBase64String(base64));
        }
    

    enter image description here

    1 回复  |  直到 8 年前
        1
  •  3
  •   Eugene Shvets    8 年前

    请参阅 documenation 具体而言,您需要使用 UrlTokenDecode method 或等效物。