2016-01-11 6 views
6

Azureのブロブコンテナ内のフォルダを削除する方法(下記のスナップショットを参照してください):私はアズールでブロブコンテナはその中にさまざまなフォルダを持っている<code>pictures</code>と呼ばれてい

enter image description here

を私は削除しようとしていますスナップショットに表示されているusersuploadsというタイトルのフォルダが表示されますが、エラーはそのままです。Failed to delete blob pictures/uploads/. Error: The specified blob does not exist.どうすればこれらの2つのフォルダを削除できますか?私はこの問題をグーグルで調べて意味のあるものを発見することはできませんでした。

注:「フォルダ」が実際には存在しないので、あなたはそれ

+1

このクライアントhttps://azurestorageexplorer.codeplex.com/ –

答えて

10

Windows Azure Blob Storageにはフォルダという概念はありません。階層は非常に単純です:ストレージアカウント>コンテナ> blob。実際、特定のフォルダを削除すると、フォルダ名で始まるすべてのブロブが削除されます。あなたは、フォルダを削除するには、以下のように簡単なコードを書くことができます。

 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(「ユーザー」)ListBlobs(真)の塊が「絵」の容器内に「ユーザー」で始まるリストを、個別に削除することができます。他のフォルダを削除するには、GetDirectoryReference( "あなたのフォルダ名")のように指定する必要があります。

6

そのを必要とする場合の詳細については、私に尋ねます。 Azureストレージアカウントには、ブロブで満たされたコンテナがあります。クライアントが「フォルダ」として視覚化したのは、アカウント「画像/アップロード/」内のブロブのファイル名です。 "フォルダ"を削除する場合は、実際には同じ "パス"で名前が付けられた各ブロブを削除する必要があります。

最も一般的な方法は、これらのブロブのリストを取得して、それを削除ブロブコールに送ることです。

+0

を使用しようとわかりましたが、削除ブロブコールスケールに、たとえば、20Mオブジェクトのでしょうか? –

+0

"scale"は相対的な用語です。 20Mブロブをすべて削除できますか?はい、1秒でやりますか?いいえ。 Storage APIの制限の制限を受けることになります。 – BrentDaCodeMonkey

1

Microsoftのデスクトップストレージエクスプローラもあります。それは、仮想フォルダを選択し、それを削除してすべてのサブブロブを効果的に削除する機能を備えています。

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

+0

このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューより](/レビュー/低品質の投稿/ 18234969) – Ploppy

+0

ありがとう@Ploppy私のコメントを更新しました – stueynet

関連する問題