Azure存储blob列表,具有来自特定点的延续令牌

Azure存储blob列表,具有来自特定点的延续令牌,azure,azure-powershell,Azure,Azure Powershell,我正在编写一个脚本来列出容器中的blob,这个容器中的blob数量非常多(超过3000万!) 不管怎样,我用的是 它似乎对每10000个文件使用一个延续标记 $MaxReturn = 10000 $ContainerName = "abc" $Total = 0 $Token = $Null do { $Blobs = Get-AzStorageBlob -Container $ContainerName -MaxCount $MaxReturn -ContinuationToke

我正在编写一个脚本来列出容器中的blob,这个容器中的blob数量非常多(超过3000万!)

不管怎样,我用的是

它似乎对每10000个文件使用一个延续标记

$MaxReturn = 10000
$ContainerName = "abc"
$Total = 0
$Token = $Null
do
 {
     $Blobs = Get-AzStorageBlob -Container $ContainerName -MaxCount $MaxReturn  -ContinuationToken $Token
     $Total += $Blobs.Count
     if($Blobs.Length -le 0) { Break;}
     $Token = $Blobs[$blobs.Count -1].ContinuationToken;
 }
 While ($Token -ne $Null)
Echo "Total $Total blobs in container $ContainerName"
问题是,这总是以挂起或卡住而告终,而且永远不会完成

它通常会进行到一半左右,我必须重新启动它,从而重新启动整个过程

但是,我已经有了第一次运行的数据,有没有办法让它从一个特定的值开始,而不是从一开始

假设我已经有了前300万个斑点所需的记录。我如何告诉它从300万开始,而不是从0开始


还是我不明白这个过程是如何运作的?

只是一个问题的总结,让其他人知道谁有类似的问题

我如何告诉它从300万开始,而不是从0开始

由于容器中的数据是静态的,因此可以存储最新的
ContinuationToken
。然后下次使用
ContinuationToken
运行脚本以获取剩余的blob


有关更多详细信息,请参阅。

2个问题:1)您是否将延续令牌存储在某个位置,2)您的数据是否是静态的,即没有从您的blob容器中添加或删除blob?我没有存储延续令牌,但我可以。您是否建议我使用最后一个令牌(挂起之前)继续?并且容器中的数据是静态的。@amaru96a由于容器中的数据是静态的,所以您可以存储最新的ContinuationToken。然后下次使用ContinuationToken运行脚本以获取剩余的blob。感谢您的建议,我们将尝试并报告。谢谢Jim,这似乎很有效。