2016-01-11 15 views
6

ich einen Blob Container genannt pictures in Azure habe zu löschen, die verschiedenen Ordner in ihn (siehe Schnappschuss unten) hat:Wie ein Ordner innerhalb eines Azure Blob Container

enter image description here

die ich versuche zu löschen Ordner mit dem Titel users und uploads im Snapshot gezeigt, aber ich behalte den Fehler: Failed to delete blob pictures/uploads/. Error: The specified blob does not exist. Könnte jemand Licht auf, wie ich diese zwei Ordner löschen? Ich war nicht in der Lage, etwas Bedeutungsvolles über Googeln dieses Problem zu entdecken.

Hinweis: fragen Sie mich für weitere Informationen, falls Sie es brauchen

+1

Versuchen Sie diesen Client verwenden https://azurestorageexplorer.codeplex.com/ –

Antwort

10

Windows Azure Blob Storage hat nicht das Konzept von Ordnern. Die Hierarchie ist sehr einfach: Speicherkonto> Container> Blob. Wenn Sie einen bestimmten Ordner entfernen, werden alle Blobs entfernt, die mit dem Ordnernamen beginnen. Sie können die einfachen Code schreiben, wie unten Ihre Ordner zu löschen:

 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 ("Benutzer") ListBlobs (true) listet die Blobs beginnen mit "Benutzer" in der "Bild" Container. Sie können sie dann einzeln löschen. Um andere Ordner zu löschen, müssen Sie nur GetDirectoryReference ("Ihr Ordnername") angeben.

6

Sein, weil die „Ordner“ existiert eigentlich gar nicht. In einem Azure-Speicherkonto haben Sie Container, die mit Blobs gefüllt sind. Was Sie von Clients als "Ordner" visualisiert sehen, sind die Dateinamen der Blobs im Account "Bilder/Uploads /". Wenn Sie den "Ordner" entfernen möchten, müssen Sie eigentlich alle Blobs entfernen, die mit dem gleichen "Pfad" benannt sind.

Der gebräuchlichste Ansatz besteht darin, eine Liste dieser Blobs zu erhalten und diese dann dem Lösch-Blob-Aufruf zuzuführen.

+0

Okay, aber funktioniert das Löschen blob Anruf Skala auf, sagen wir, 20M Objekte? –

+0

"Maßstab" ist ein relativer Begriff. Können Sie alle 20M Blobs löschen? ja, Kannst du es in 1 sec machen? Nein. Sie unterliegen den Einschränkungen der Speicher-API-Drosselung. – BrentDaCodeMonkey

1

Es gibt auch einen Desktop-Speicher-Explorer von Microsoft. Es verfügt über eine Funktion, mit der Sie den virtuellen Ordner auswählen und anschließend löschen können, indem Sie alle Sub-Blobs löschen.

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

+0

Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz zur Verfügung zu stellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. - [Aus Bewertung] (/ review/low-quality-posts/18234969) – Ploppy

+0

Danke @Ploppy Ich habe meinen Kommentar aktualisiert – stueynet

Verwandte Themen