Как я получаю все BLOB-объекты, а не только BLOB-объекты в корневом каталоге - PullRequest
0 голосов
/ 05 февраля 2019

Как я получаю все BLOB-объекты из своего хранилища Azure, а не только BLOB-объекты в корневом каталоге?

private CloudBlobContainer GetCloudBlobContainer()
        {

            CloudStorageAccount storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=*;AccountKey=*;EndpointSuffix=core.windows.net");
            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
            CloudBlobContainer container = blobClient.GetContainerReference("test123");

            return container;
        }

        public ActionResult ListBlobs()
        {
            CloudBlobContainer container = GetCloudBlobContainer();
            List<string> blobs = new List<string>();
            BlobResultSegment resultSegment = container.ListBlobsSegmentedAsync(null).Result;
            foreach (IListBlobItem item in resultSegment.Results)
            {
                if (item.GetType() == typeof(CloudBlockBlob))
                {
                    CloudBlockBlob blob = (CloudBlockBlob)item;
                    blobs.Add(blob.Name);
                }
                else if (item.GetType() == typeof(CloudPageBlob))
                {
                    CloudPageBlob blob = (CloudPageBlob)item;
                    blobs.Add(blob.Name);
                }
                //Directory
                else if (item.GetType() == typeof(CloudBlobDirectory))
                {
                    CloudBlobDirectory dir = (CloudBlobDirectory)item;
                    blobs.Add(dir.Uri.ToString());
                }
            }

            return View(blobs);
        }

Код возвращает только BLOB-объекты в корневом каталоге.Но я хочу также получить капли в каталоге.

Спасибо

1 Ответ

0 голосов
/ 06 февраля 2019

Пожалуйста, укажите useFlatBlobListing в true при вызове ListBlobsSegmentedAsync метода.

...