如何从带有Azure存储Blob的Blob中获取容器名称列表



我发现一些使用WindowsAzure.Storage.Blob的应答器,但此软件包已折旧。

因此,我需要使用.net核心从Azure获得Blob存储中的容器列表。

添加'Azure.Storage.Blobs'NuGet包。

使用BlobServiceClient类

string connectionString = "";
BlobServiceClient client = new BlobServiceClient(connectionString);

使用GetBlobContainers或GetBlobContentsAsync检索容器:

//-------------------------------------------------
// List containers
//-------------------------------------------------
async static Task ListContainers(BlobServiceClient blobServiceClient, 
string prefix, 
int? segmentSize)
{
string continuationToken = string.Empty;
try
{
do
{
// Call the listing operation and enumerate the result segment.
// When the continuation token is empty, the last segment has been returned
// and execution can exit the loop.
var resultSegment = 
blobServiceClient.GetBlobContainersAsync(BlobContainerTraits.Metadata, prefix, default)
.AsPages(continuationToken, segmentSize);
await foreach (Azure.Page<BlobContainerItem> containerPage in resultSegment)
{
foreach (BlobContainerItem containerItem in containerPage.Values)
{
Console.WriteLine("Container name: {0}", containerItem.Name);
}
// Get the continuation token and loop until it is empty.
continuationToken = containerPage.ContinuationToken;
Console.WriteLine();
}
} while (continuationToken != string.Empty);
}
catch (RequestFailedException e)
{
Console.WriteLine(e.Message);
Console.ReadLine();
throw;
}
}

prefix param是可选的,如果您想搜索以某个前缀开头的容器。

代码来自文档:

最新更新