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

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

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

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

以下是从 Azure 搜索发送的示例 base64 路径:

1. aHR0cHM6Ly9qbG9jYWxnZW5lcmFsLmJsb2IuY29yZS53aW5kb3dzLm5ldC9kaWFyaW9zLzEvMTAtdGV4dG8uemlw0 -> 当我尝试在 C# 中对其进行解码时,出现以下异常:“Base-64 字符数组或字符串的长度无效”。使用的代码如下

2.
aHR0chHM6Ly9qbG9jYWxnZW5lcmFsLmJsb2IuY29yZS53aW5kb3dzLm5ldC9kaWFyaW9zLzEvMi10ZXh0by56aXA1 -> 在末尾添加 5,该值不在原始路径中

3. aHR0chHM6Ly9qbG9jYWxnZW5lcmFsLmJsb2IuY29yZS53aW5kb3dzLm5ldC9kaWFyaW9zLzEvMy10ZXh0by56aXA1 -> 在末尾添加 5,该值不在原始路径中

这是我用来解码它的代码:

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

c# azure base64 blob azure-cognitive-search
2个回答
3
投票

请参阅文档。具体来说,您需要使用 UrlTokenDecode 方法 或等效方法。


0
投票

私有字符串DecodeBase64String(字符串编码字符串) { varcodedStringWithoutTrailingCharacter =encodedString.Substring(0,encodedString.Length - 1); var编码字节 = WebEncoders.Base64UrlDecode(encodedStringWithoutTrailingCharacter); 返回 HttpUtility.UrlDecode(encodedBytes, Encoding.UTF8); }

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