我想从Azure Blob存储帐户的容器中删除一个文件夹。这个包含3 000 000+个文件并使用Azure Storage Explorer这是一个相当长的过程(1 000个文件/ 5分钟)所以我想知道是否可以一次删除文件夹。
我知道没有"文件夹"在Azure Blob存储中,它更像是一个访问blob的虚拟路径,但对于大量blob的批量删除,这是有问题的。
答案 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 ...
。这可能意味着这实际上是在删除单个文件。