Получить имена всех 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"
в твоем случае).