【问题标题】:Azure Blob Storage throws exception when creating a new container. Claims it already exists, but it does notAzure Blob 存储在创建新容器时引发异常。声称它已经存在,但它不存在
【发布时间】:2021-04-16 15:35:44
【问题描述】:

我正在尝试使用下面的示例代码在 Azure 存储中创建一个 blob 容器。

        BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
        var fileName = "quickstart" + Guid.NewGuid().ToString() + ".png";

        //Create a unique name for the container
        string containerName = "quickstartblobs" + Guid.NewGuid().ToString();

        BlobContainerClient containerClient = blobServiceClient.CreateBlobContainer(containerName); //Exception occurs here. 
        BlobClient blobClient = containerClient.GetBlobClient(fileName);

        var result = blobClient.Upload(ms);

尽管创建了一个明显不存在的新容器名称,但对 CreateBlobContainer() 的调用始终会在 Azure 中创建容器,然后引发异常,说明它已经存在。

'指定的容器已经存在。

我在我的 Azure 环境中验证在运行此代码之前不存在任何容器。在寻找解决此问题的方法时,我看到了对 CreateIfNotExists() 方法的引用,但是我在 BlobServiceClient 上看不到该方法。

有人可以解释为什么这不能按预期工作以及如何处理吗?

【问题讨论】:

标签: azure azure-blob-storage


【解决方案1】:

您可以使用以下代码来解决您的问题:

        BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
        var fileName = "quickstart" + Guid.NewGuid().ToString() + ".png";

        //Create a unique name for the container
        string containerName = "quickstartblobs" + Guid.NewGuid().ToString();

        BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
        containerClient.CreateIfNotExists(); 
        BlobClient blobClient = containerClient.GetBlobClient(fileName);

        var result = blobClient.Upload(ms);

【讨论】:

    猜你喜欢
    • 2011-06-21
    • 2020-03-28
    • 2017-12-14
    • 2013-02-23
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多