如何在azure cli命令az storage fs文件列表中获取下一个标记next_marker

如何解决如何在azure cli命令az storage fs文件列表中获取下一个标记next_marker

需要计算 ADLS Gen2 中特定容器和文件夹的大小。 从命令 az storage fs file list 开始。但是不明白如何获取 next_marker ?它作为警告出现在标准输出中,但不在命令输出中:

WARNING: Next Marker:
WARNING: VBbYvMrBhcCCqheySAAAA=

那么如何获得这个 next_marker:

$files=$(az storage fs file list --file-system <container name>\
 --auth-mode login --account-name <account name> \
 --query "[*].[contentLength]" --num-results 1000 -o tsv)

$files.next_marker 为空。

UPDATE1:创建问题 https://github.com/Azure/azure-cli/issues/16893

解决方法

如果您使用这个 azure cli 命令:az storage fs file listnext_marker 不会返回到变量 $files,它总是在控制台中打印出来。您需要复制并粘贴它。

作为一种解决方法,您可以使用此 azure cli 命令:az storage blob list(大多数 azure blob storage cli 命令也可在 ADLS Gen2 中使用)。这个命令有一个参数--show-next-marker,你可以用它把next_marker返回给一个变量。

我编写了一个 azure cli 脚本,它可以很好地用于 ADLS Gen2

 $next_token = ""
 $blobs=""
 $response = & az storage blob list --container-name your_file_system_in_ADLS_Gen2 --account-name your_ADLS_Gen2_account --account-key your_ADLS_Gen2_key --num-results 5 --show-next-marker | ConvertFrom-Json
 $blobs += $response.properties.contentLength
 $next_token = $response.nextMarker 

  while ($next_token -ne $null){
    
  $response = & az storage blob list --container-name your_file_system_in_ADLS_Gen2 --account-name your_ADLS_Gen2_account --account-key your_ADLS_Gen2_key --num-results 5 --marker $next_token --show-next-marker | ConvertFrom-Json
  
  $blobs = $blobs + " " + $response.properties.contentLength

  $next_token = $response.nextMarker 
  }

$blobs

测试结果:

enter image description here

请注意将您的 azure cli 升级到最新版本,根据 this issue--show-next-marker 参数在旧版本中可能不起作用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?