Как проверить, что контейнер существует в Azure Blob Storage V12? - PullRequest
0 голосов
/ 09 апреля 2020

Ранее при использовании Azure Blob Storage SDK V11, если вы хотели создать контейнер, но не были уверены, что контейнер существует, вы можете использовать CreateIfNotExists.

Однако в версии V12 CreateIfNotExists больше не доступен и Единственный пример, который я могу найти в Microsoft, - это просто создать Контейнер, не проверяя, существует ли он.

Итак, кто-нибудь знает лучшую практику в V12, чтобы проверить, существует ли контейнер, прежде чем пытаться его создать.

Кстати, я разрабатываю для ASP. Net Core 3.1.

Ответы [ 3 ]

1 голос
/ 10 апреля 2020

В v12 есть 2 способа проверить, существует ли контейнер.

1.

        BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);

        //get a BlobContainerClient
        var container = blobServiceClient.GetBlobContainerClient("the container name");

        //you can check if the container exists or not, then determine to create it or not
        bool isExist = container.Exists();
        if (!isExist)
        {
            container.Create();
        }

        //or you can directly use this method to create a container if it does not exist.
        container.CreateIfNotExists();

2.

Вы можете напрямую создать BlobContainerClient, затем используйте код ниже:

            //create a BlobContainerClient 
            BlobContainerClient blobContainer = new BlobContainerClient("storage connection string", "the container name");

            //use code below to check if the container exists, then determine to create it or not
            bool isExists = blobContainer.Exists();
            if (!isExist)
            {
               blobContainer .Create();
            }

            //or use this code to create the container directly, if it does not exist.
            blobContainer.CreateIfNotExists();
0 голосов
/ 18 апреля 2020

Принятый ответ в порядке. Но я обычно использую его asyn c версию.

var _blobServiceClient = new BlobServiceClient(YOURCONNECTIONSTRING);
var containerClient = _blobServiceClient.GetBlobContainerClient(YOURCONTAINERNAME);
await containerClient.CreateIfNotExistsAsync(Azure.Storage.Blobs.Models.PublicAccessType.BlobContainer);

Я использую версию Azure .Storage.Blobs v12.4.1

0 голосов
/ 10 апреля 2020

Однако в версии V12 CreateIfNotExists больше не доступен, и единственный пример, который я могу найти в Microsoft, - это просто создать контейнер без проверки, если он уже существует.

Я не являюсь конечно, почему вы говорите CreateIfNotExists is no longer available in version 12 of storage client library. Это, безусловно, есть в классе BlobContainerClient. Вот прямая ссылка: CreateIfNotExists.

    var connectionString = "UseDevelopmentStorage=true";            
    var containerClient = new BlobContainerClient(connectionString, containerName);
    containerClient.CreateIfNotExists();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...