带有来自特定点的延续令牌的 Azure 存储 blob 列表
Azure storage blob list with continuation token from specific point
我正在编写一个脚本来列出容器中的 blob,该容器中的 blob 数量多得离谱(超过 3000 万!)。
无论如何,我正在使用 https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageblob?view=azps-3.8.0
中的代码
似乎每 10,000 个文件使用一个延续令牌。
$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 万个 blob 所需的记录。如何让它从 300 万开始,而不是从 0 开始?
还是我不明白这个过程是如何运作的?
只是对问题的总结,让其他人知道谁有类似的问题。
How do I tell it to start from 3 million instead of 0?
由于容器中的数据是静态的,可以存放最新的ContinuationToken
。然后 运行 下一次使用 ContinuationToken
的脚本来获取剩余的 blob。
更多细节你可以参考这个article。
我正在编写一个脚本来列出容器中的 blob,该容器中的 blob 数量多得离谱(超过 3000 万!)。
无论如何,我正在使用 https://docs.microsoft.com/en-us/powershell/module/az.storage/get-azstorageblob?view=azps-3.8.0
中的代码似乎每 10,000 个文件使用一个延续令牌。
$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 万个 blob 所需的记录。如何让它从 300 万开始,而不是从 0 开始?
还是我不明白这个过程是如何运作的?
只是对问题的总结,让其他人知道谁有类似的问题。
How do I tell it to start from 3 million instead of 0?
由于容器中的数据是静态的,可以存放最新的ContinuationToken
。然后 运行 下一次使用 ContinuationToken
的脚本来获取剩余的 blob。
更多细节你可以参考这个article。