Невозможно получить bloblist из подкаталога в учетной записи хранения - PullRequest
0 голосов
/ 28 января 2020

Я хотел бы перечислить все BLOB-объекты из подкаталога, например images/nature в учетной записи хранения. Я использую этот код c# для достижения своей цели:

string storageConnectionString = Environment.GetEnvironmentVariable("BlobConnection", EnvironmentVariableTarget.Process);
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(storageConnectionString);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference(@"images/nature");

Этот код не работает для меня. У вас есть идеи, как я могу сделать эту работу?

Следующий код работает нормально, если все BLOB-объекты находятся в папке root:

 string storageConnectionString = Environment.GetEnvironmentVariable("BlobConnection", EnvironmentVariableTarget.Process);
 CloudStorageAccount storageAccount = CloudStorageAccount.Parse(storageConnectionString);
 CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
 CloudBlobContainer container = blobClient.GetContainerReference(@"images");

1 Ответ

0 голосов
/ 28 января 2020

Пожалуйста, попробуйте следующий код:

string storageConnectionString = Environment.GetEnvironmentVariable("BlobConnection", EnvironmentVariableTarget.Process);
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(storageConnectionString);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference(@"images");
var blobs = container.ListBlobs("nature", true);

Этот список должен содержать список больших двоичных объектов внутри папки "nature" и всех папок под ней.

По существу проблема заключалась в следующей строке кода:

CloudBlobContainer container = blobClient.GetContainerReference(@"images/nature");

Azure Хранилище BLOB-объектов в основном имеет двухуровневую иерархию - контейнер и BLOB-объекты. Папки там являются виртуальными и по существу префикс, который вы вводите в имя BLOB-объекта.

То, что я сделал в своем коде, это перечисление больших двоичных объектов из контейнера, имя которого начинается с префикса (в вашем примере это «nature»).

...