ошибка удаления двоичных объектов из хранилища Azure - PullRequest
0 голосов
/ 18 ноября 2018

Я пытаюсь удалить капли из контейнера.DeleteIfExits возвращает true, но ничего не происходит.Я проверяю контейнер с помощью портала Azure и все еще вижу большие двоичные объекты.

Что не так с моим кодом?

   private static void DeleteAllFilesWithSameName(String filePath, String filename, CloudBlobContainer container)
    {

        String filenameWidthoutExtension = Path.GetFileNameWithoutExtension(filename);

        try
        {
            IEnumerable<IListBlobItem> blobs = container.ListBlobs(filenameWidthoutExtension, true);


            if (blobs.Count<IListBlobItem>() > 0)
            {
                List<string> blobNames = blobs.OfType<CloudBlockBlob>().Select(b => b.Name).ToList();

                foreach (String blobName in blobNames)
                {
                    CloudBlockBlob blockBlob = container.GetBlockBlobReference(filename);

                    bool isDeleted = blockBlob.DeleteIfExists();

                }
            }
        }
        catch (Exception e)
        {
            Console.Write(e.Data);
        }


    }

1 Ответ

0 голосов
/ 18 ноября 2018

Я полагаю, что проблема связана с логикой в ​​вашем коде:

CloudBlockBlob blockBlob = container.GetBlockBlobReference(filename);

Разве вышеприведенная строка не должна быть?

CloudBlockBlob blockBlob = container.GetBlockBlobReference(blobName);

Пожалуйста, попробуйте изменить свой код на:

                foreach (String blobName in blobNames)
                {
                    CloudBlockBlob blockBlob = container.GetBlockBlobReference(blobName);

                    bool isDeleted = blockBlob.DeleteIfExists();

                }
...