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

Azure Storage删除目录报EndpointUnsupportedAccountFeatures错误解决

错误产生原因

EndpointUnsupportedAccountFeatures报错的触发逻辑非常明确:你执行的az storage blob directory delete --recursive命令调用的是Azure Data Lake Storage (ADLS) Gen2 专属的目录原子操作接口,该接口存在明确的特性兼容限制,不支持存储账户开启Blob软删除、容器软删除、Blob存储事件订阅三类功能。
结合你贴出的Blob服务属性查询结果,当前存储账户刚好开启了两项不兼容配置:

  • Blob软删除:deleteRetentionPolicy.enabled = true,配置了7天保留期
  • 容器软删除:containerDeleteRetentionPolicy.enabled = true,配置了7天保留期
    配置命中接口限制后,请求会被直接拦截返回报错。
    补充说明:az storage blob directory delete系列命令仅适配开启了分层命名空间(HNS)的ADLS Gen2存储账户,未开启HNS的普通通用v2存储账户只有虚拟目录(基于Blob前缀模拟),本身不支持原生目录原子操作,使用该命令也会出现各类兼容问题。
可行解决方案

根据场景选其中一种即可消除报错:

  • 方案1:临时关闭软删除配置,执行删除后再恢复
    该方案适合必须使用目录原子删除接口的场景,操作步骤如下:
    1. 执行以下命令关闭两项不兼容的软删除配置:
    # 关闭Blob软删除
    az storage account blob-service-properties update --account-name ${my_acc_name[$i]} --enable-delete-retention false
    # 关闭容器软删除
    az storage account blob-service-properties update --account-name ${my_acc_name[$i]} --enable-container-delete-retention false
    
    1. 等待1-2分钟让存储侧配置生效,重新执行原来的递归删除命令即可。
    2. 删除操作完成后,如果需要保留软删除的数据保护能力,重新执行命令把两项配置改回开启状态、保留期设为原有的7天即可。
  • 方案2:不修改现有账户配置,换用兼容软删除的批量删除命令
    如果软删除是合规要求必须保持开启的配置,直接放弃目录删除接口,改用Blob批量删除接口即可,该接口走标准Blob服务API,不受上述特性限制:
    # 替换原有的blob directory delete命令,自动递归删除指定路径下所有Blob
    az storage blob delete-batch -c ${my_container[$i]} --account-name ${my_acc_name[$i]} --source-path ${my_source[$i]}
    
    该命令对开启/未开启HNS的存储账户都兼容,删除逻辑和递归删除目录的效果完全一致。
  • 方案3:未开启HNS的普通存储账户永久替换命令
    如果存储账户没有开启分层命名空间,本身就不存在真实目录结构,后续所有类似“目录删除”的操作都直接使用az storage blob delete-batch命令,不要使用blob directory系列的ADLS Gen2专属命令,从根源避免兼容问题。

内容的提问来源于stack exchange,提问作者Yogendra Singh Rathore

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 11:00:59