如何用az命令行工具获取Azure Blob存储文件列表?新命令失效求助
解决Azure CLI获取Blob存储文件列表的问题
问题根源
az storage fs directory系列命令仅支持启用分层命名空间(Hierarchical Namespace)的ADLS Gen2存储账户。如果你的存储账户未开启该功能,执行这些命令会返回目录不存在或空列表,这是核心原因。
分场景解决方案
场景1:存储账户已启用分层命名空间(ADLS Gen2)
- 检查目录路径格式:
--path参数不要带开头的斜杠,比如目标目录是reports/2024,直接写--path reports/2024,而非/reports/2024 - 正确的列表命令:
若使用SAS令牌认证,追加az storage fs directory list -f <ContainerName> --path <DirectoryName> --recursive --account-name <StorageAccountName>--sas-token <你的SAS令牌>参数;若用Azure AD认证,确保已登录对应账号。
场景2:存储账户未启用分层命名空间(普通Blob存储)
普通Blob存储不存在真实目录,仅通过Blob名称前缀模拟“虚拟目录”,需改用az storage blob list命令替代:
az storage blob list -c <ContainerName> --prefix <DirectoryName>/ --delimiter "/" --output json
--prefix <DirectoryName>/:过滤出以指定虚拟目录为前缀的Blob--delimiter "/":区分虚拟子目录和Blob,结果中prefixes字段对应虚拟子目录列表--output json:输出JSON格式,与原弃用命令的输出格式一致
验证存储账户类型
执行以下命令确认是否启用分层命名空间:
az storage account show -n <StorageAccountName> -g <ResourceGroupName> --query isHnsEnabled
返回true表示是ADLS Gen2存储账户,false则为普通Blob存储账户。
内容的提问来源于stack exchange,提问作者Apollo
相关产品推荐
相关产品推荐

