我正在尝试获取一个如果存在的容器,如果不存在,则创建它。
我的困惑是因为GetBlobContainersAsync
返回BlobContainerItem
,CreateBlobContainerAsync
返回BlobContainerClient
。
找到容器后,如何从BlobContainerClient
中获取BlobContainerItem
?
这是我到目前为止的内容:
var blobServiceClient = new BlobServiceClient(this.ConnectionString);
BlobContainerItem archiveContainer = null;
await foreach (var container in blobServiceClient.GetBlobContainersAsync(prefix: Uploader.ContainerName))
{
if (String.Compare(container.Name, Uploader.ContainerName,
CultureInfo.CurrentCulture, CompareOptions.Ordinal) == 0)
{
archiveContainer = ???
break;
}
}
if (archiveContainer == null)
{
archiveContainer = await blobServiceClient.CreateBlobContainerAsync(Uploader.ContainerName);
}
您实际上不必做所有这些事情。
仅使用连接字符串和容器名称创建BlobContainerClient
的实例,然后在其上调用BlobContainerClient
。如果该容器不存在,则此方法将创建该容器。
从文档中:
CreateIfNotExistsAsync
操作在指定的帐户下创建一个新的容器。如果已经存在相同名称的容器,则不会更改。
类似:
CreateIfNotExistsAsync