[英]Delete folder(s) inside Azure Blob storage container
我有一個名為“pictures”的容器,里面有一些名為“Folder1”、“Folder2”的文件夾。 所以我的 blob 文件將像這樣處理“ http://optimus.blob.core.windows.net/pictures/Folder1/IMG123.png ” 。 使用下面的 C# 代碼刪除文件夾中的文件,
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(*AzureConnectionString*);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("pictures");
var blobs = container.ListBlobs("Folder1", true);
foreach (var blob in blobs)
{
container.GetBlockBlobReference(((CloudBlockBlob)blob).Name).DeleteIfExists();
}
刪除“Folder1”中的所有文件后,它將為空。 我正在嘗試刪除空文件夾,但無法找到方法。 是否可以刪除文件夾? 任何幫助都感激不盡。 提前致謝。
對於 Azure Blob 存儲,實際上並沒有“文件夾”對象。 “文件夾”實際上只是 blob 名稱前綴 - 用於分隔“文件夾”的“/”字符是 blob 命名中的約定,而不是要求。 因此,您不必擔心 - 只要沒有帶有“Folder1”前綴的 blob,就可以了。
在任何 blob 容器下,都不存在真正的文件夾或目錄。 它們是虛擬目錄,用於管理容器下 blob 的文件夾結構,如果刪除了具有任何虛擬目錄或文件夾的所有 blob,則不存在此類文件夾。 它是文件夾結構的所有邏輯表示,您可以忽略任何容器下的文件夾。
但是對於容器,如果要清理整個容器,則需要在刪除其 blob 后手動刪除容器。
嘗試使用適用於 .NET 的 Azure Blob 存儲客戶端庫 v12。
BlobBatchClient batch = service.GetBlobBatchClient();
await batch.DeleteBlobsAsync(new Uri[] { valid.Uri, invalid.Uri });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.