删除"文件夹"在Azure Blob存储中

时间:2018-04-15 16:58:58

标签: azure azure-storage-blobs azure-blob-storage

我想从Azure Blob存储帐户的容器中删除一个文件夹。这个包含3 000 000+个文件并使用Azure Storage Explorer这是一个相当长的过程(1 000个文件/ 5分钟)所以我想知道是否可以一次删除文件夹。

我知道没有"文件夹"在Azure Blob存储中,它更像是一个访问blob的虚拟路径,但对于大量blob的批量删除,这是有问题的。

3 个答案:

答案 0 :(得分:1)

Ben我建议使用这个Powershell脚本,允许删除10,000次:

  

此PowerShell脚本旨在在Azure Automatiom中运行,通过一次处理10,000个blob的块来删除容器中的大量blob。当blob的数量增长超过几千时,一次删除每个blob的常用方法可能会在没有完成任务的情况下暂停。   这可用于删除所有blob(当参数retentionDays提供为0时),或者某些blob尚未针对上一个rententionDays天数进行修改。

脚本可以在这里下载:https://gallery.technet.microsoft.com/Delete-large-number-of-97e04976

$b.iframe(class: "first").locate

答案 1 :(得分:1)

rclone是与云存储进行交互的出色工具。 尝试rclone purge

答案 2 :(得分:0)

正如其他人已经提到的那样,您不能在Azure Blob存储中删除“文件夹”。您必须使用变通办法,例如列出所有带有前缀的文件,然后运行for循环以删除每个文件。

在PowerShell中,可以通过运行以下命令(使用AzureRM模块)来将这两个步骤简化为一行:

Get-AzureStorageBlob -Context $context -Container $container -Blob 'FolderName*' | Remove-AzureStorageBlob -WhatIf

-WhatIf选项将打印出将要执行的确切操作。我观察到的是,它将为“文件夹”中的每个文件打印What if: Performing the operation "Remove blob" on target ...。这可能意味着这实际上是在删除单个文件