2016-01-11 15 views
6

mam pojemnik kropelka w Azure nazywa pictures że ma różne foldery w nim (patrz zrzut poniżej):Jak usunąć folder w obrębie Azure blob pojemnika

enter image description here

Próbuję usunąć foldery pod tytułem users i uploads pokazane w migawce, ale utrzymuję błąd: Failed to delete blob pictures/uploads/. Error: The specified blob does not exist. Czy ktoś mógłby rzucić światło na to, jak mogę usunąć te dwa foldery? Nie udało mi się odkryć nic sensownego, korzystając z Googling w tym wydaniu.

Uwaga: pytają mnie, aby uzyskać więcej informacji w przypadku, gdy jest to potrzebne

+1

spróbuje użyć tego klienta https://azurestorageexplorer.codeplex.com/ –

Odpowiedz

10

Usługa Windows Azure Blob Storage nie ma koncepcji folderów. Hierarchia jest bardzo prosta: konto przechowywania> kontener> blob. W rzeczywistości usunięcie określonego folderu powoduje usunięcie wszystkich obiektów typu blob, które zaczynają się od nazwy folderu. Można napisać prosty kod jak poniżej, aby usunąć foldery:

 CloudStorageAccount storageAccount = CloudStorageAccount.Parse("your storage account"); 
     CloudBlobContainer container = storageAccount.CreateCloudBlobClient().GetContainerReference("pictures"); 
     foreach (IListBlobItem blob in container.GetDirectoryReference("users").ListBlobs(true)) 
     { 
      if (blob.GetType() == typeof(CloudBlob) || blob.GetType().BaseType == typeof(CloudBlob)) 
      { 
       ((CloudBlob)blob).DeleteIfExists(); 
      } 
     } 

container.GetDirectoryReference („Użytkownicy”) ListBlobs (true) wymienia plamy zaczynają się „użytkowników” w „obraz” pojemnika. możesz je potem skasować pojedynczo. Aby usunąć inne foldery, po prostu określ tak: GetDirectoryReference ("nazwa twojego folderu").

6

Its ponieważ „foldery” w rzeczywistości nie istnieje. Na koncie magazynu Azure masz pojemniki wypełnione obiektami typu blob. To, co widzisz zwizualizowane przez klientów jako "foldery", to nazwy plików obiektów blob na koncie "pictures/uploads /". Jeśli chcesz usunąć "folder", musisz usunąć wszystkie bloby o nazwach o tej samej "ścieżce".

Najbardziej powszechnym podejściem jest uzyskanie listy tych obiektów blob, a następnie przekazanie ich do wywołania blob usunąć.

+0

Ok, ale robi kasowania skala kropelka wezwanie do, powiedzmy, obiekty 20M? –

+0

"skala" jest pojęciem względnym. Czy możesz usunąć wszystkie bloby 20M? tak, możesz zrobić to za 1 sekundę? Nie. będziesz podlegać ograniczeniom dławienia w interfejsie Storage API. – BrentDaCodeMonkey

1

Istnieje także przeglądarka pamięci biurowej firmy Microsoft. Posiada funkcję, w której można wybrać folder wirtualny, a następnie usunąć go skutecznie usuwając wszystkie sub blobs.

https://azure.microsoft.com/en-us/features/storage-explorer/

+0

Podczas gdy ten link może odpowiedzieć na pytanie, lepiej umieścić tutaj istotne części odpowiedzi i podać odnośnik. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. - [Z recenzji] (/ opinia/niskiej jakości-posts/18234969) – Ploppy

+0

Dzięki @Ploppy Zaktualizowałem mój komentarz – stueynet

Powiązane problemy