Получить имена всех Uri внутри определенного префикса в моем контейнере Blob

Я пытаюсь получить все в префиксе "10", например так:

https://ideesstorage.blob.core.windows.net/development-fotosproyectos/10/29.jpg

До сих пор я могу получить это только с помощью каталога. Uri:

https://ideesstorage.blob.core.windows.net/development-fotosproyectos/10/

Следующий код получает все каталоги в моем контейнере, а не имена файлов в префиксе, как и ожидалось:

        var query = blobContainer.ListBlobs(null, false, BlobListingDetails.None);
        foreach (IListBlobItem item in query)
        {

            if (item.GetType() == typeof(CloudBlobDirectory))
            {
                CloudBlobDirectory directory = (CloudBlobDirectory)item;

                Console.WriteLine("Directory: {0}-{1}", directory.Uri, directory.Prefix);
            }
        }

Для этого я хочу получить Uri каждого файла в указанном префиксе.

Спасибо заранее за ваше время.

1 ответ

Посмотрите на код ниже:

    static void ListBlobsInFolder()
    {
        var account = new CloudStorageAccount(new StorageCredentials(accountName, accountKey), true);
        var blobClient = account.CreateCloudBlobClient();
        var containerName = "<container-name>";
        var folderName = "<folder-name>";
        var container = blobClient.GetContainerReference(containerName);
        var query = container.ListBlobs(prefix:folderName, useFlatBlobListing:true, blobListingDetails:BlobListingDetails.None);
        foreach (var item in query)
        {
            Console.WriteLine(item.Uri);
        }
    }

В основном вам нужно пройти true за useFlatBlobListing параметр и name of the folder как prefix ("10" в твоем случае).

Другие вопросы по тегам