Как параметр префикса используется в CloudBlobContainer.ListBlobs () для получения файлов из виртуальной папки в хранилище BLOB-объектов Azure - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь получить список в одной виртуальной папке в хранилище BLOB-объектов Azure. Файлы организованы в структуру папок / {container} / {классификация} / {title}, а все файлы находятся в виртуальных папках «title».

Я использую эту функцию, которая работает без префикса, но не возвращает никаких результатов при вводе префикса.

public static List<string> List(string classification, string title, StorageAccount sa)
{
    List<string> fileList = new List<string>();
    CloudBlobContainer container = GetBlobContainer(sa);
    var prefix = $"/{container.Name}/{classification}/{title}/";
    Console.WriteLine(prefix);

    var list = container.ListBlobs(prefix, useFlatBlobListing: true);

    foreach (var blob in list)
    {
        var blobFileName = blob.Uri.AbsolutePath;
        fileList.Add(blobFileName);
    }

    return fileList;
}

1 Ответ

0 голосов
/ 22 января 2019

Вам не нужно включать имя контейнера в префикс. Пожалуйста, измените следующую строку кода:

var prefix = $"/{container.Name}/{classification}/{title}/";

до:

var prefix = $"{classification}/{title}/";

И в этом списке будут перечислены все капли, имена которых начинаются с этого префикса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...