You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何快速删除Azure Blob Storage中含300万+Blob的虚拟文件夹

高效批量删除Azure Blob Storage虚拟文件夹下的海量Blob

这种百万级Blob的批量删除场景我太熟悉了,Storage Explorer的单线程删除完全扛不住,给你分享几个亲测好用的高效方案:

1. 用AzCopy(最快最推荐)

AzCopy是微软官方的高性能数据传输工具,专门针对海量Blob场景做了并行处理优化,速度比Storage Explorer快N个量级。

操作步骤:

  • 先安装AzCopy(官网直接下载即可,无需复杂配置)
  • 打开命令行,运行删除命令:
# 用Azure AD认证(已登录Azure账号时用这个)
azcopy rm "https://<你的存储账户名>.blob.core.windows.net/<容器名>/<虚拟文件夹路径>/*" --recursive=true

# 用SAS Token认证(无AD权限时用这个)
azcopy rm "https://<你的存储账户名>.blob.core.windows.net/<容器名>/<虚拟文件夹路径>/*?<你的SAS Token>" --recursive=true

提示:不确定路径是否正确的话,可以先用azcopy list命令预览要删除的Blob范围,避免误删。

2. PowerShell脚本(适合自定义逻辑)

如果你需要加一些自定义过滤规则(比如只删特定后缀的Blob),PowerShell脚本会更灵活。注意不要一次性加载所有Blob到内存,用分页处理避免内存溢出:

# 替换成你的存储账户、容器和虚拟文件夹路径
$storageAccountName = "your-storage-account"
$containerName = "your-container"
$virtualFolderPrefix = "your-virtual-folder-path/"

# 登录Azure账户(未登录时执行)
Connect-AzAccount

# 获取存储上下文
$ctx = New-AzStorageContext -StorageAccountName $storageAccountName -UseConnectedAccount

# 分页批量删除,每次处理1000个Blob
$continuationToken = $null
do {
    $blobs = Get-AzStorageBlob -Container $containerName -Context $ctx -Prefix $virtualFolderPrefix -MaxCount 1000 -ContinuationToken $continuationToken
    if ($blobs.Count -gt 0) {
        $blobs | Remove-AzStorageBlob -Force
        $continuationToken = $blobs[$blobs.Count - 1].ContinuationToken
    }
} while ($continuationToken -ne $null)

3. Azure CLI(简洁高效)

如果你习惯用CLI命令,Azure CLI的delete-batch命令也能快速搞定:

# 用Azure AD认证
az storage blob delete-batch --account-name <你的存储账户名> --source <容器名> --pattern "<虚拟文件夹路径>/*"

# 用SAS Token认证
az storage blob delete-batch --account-name <你的存储账户名> --source <容器名> --pattern "<虚拟文件夹路径>/*" --sas-token "<你的SAS Token>"

4. Blob生命周期管理(非紧急场景首选)

如果这些Blob不是需要立即删除的,比如可以等1-2天,推荐用生命周期管理规则,让Azure后台自动处理,完全不用手动跑脚本:

  1. 登录Azure门户,找到你的存储账户
  2. 进入「数据管理」下的「生命周期管理」
  3. 点击「添加规则」,设置规则名称
  4. 在「Blob类型」里选择要删除的Blob类型(比如块Blob)
  5. 在「筛选器」里设置「前缀匹配」为你的虚拟文件夹路径(比如your-virtual-folder-path/)
  6. 在「动作」里添加「删除」,设置等待时间(比如1天后删除)
  7. 保存规则,Azure会自动在指定时间后批量删除匹配的Blob

注意事项:

  • 删除前一定要确认前缀路径正确,避免误删其他Blob
  • 如果Blob在归档层,需要先还原到热层/冷层才能删除,生命周期规则也支持自动还原后删除
  • 批量删除操作是不可逆的,建议先备份重要Blob或者小范围测试

内容的提问来源于stack exchange,提问作者user4856537

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:00:28