如何查找 Azure Blob 容器中的对象数 - 存档层



我们正在尝试将一些压缩备份文件从 Azure 存档层重新冻结到冷层。我们不关心数据大小本身(10TB(的价格。我们担心的是移动单个文件层的潜在 I/O 费用。备份过程将每个作业保存在"块"(即文件夹(中,其中包含大小不同的单个压缩块的文件树。我们不知道,在整个 10TB 中可能有 10 万个或 1000 亿个这样的单个块。

是否有任何 PowerShell 脚本/命令可以提供整个 10TB blob 容器中单个对象的计数?如果我们可以确定对象的计数,那么我们就可以计算 I/O 成本。我们有命令行访问权限,并且知道某些 API 调用仅返回 5000 个项目块的结果。我们也知道,任何递归搜索都可能需要很多时间。

$storageAccount = Get-AzStorageAccount `
-ResourceGroupName $resourceGroup `
-Name $storageAccountName
$blobCount = 0
$token = $null
$MaxReturn = 5000
do {
$Blobs = Get-AzStorageBlob -Context $storageAccount.Context -Container $containerName `
-MaxCount $MaxReturn -ContinuationToken $token
if ( -not $Blobs ) { break } # not sure if this is needed
$blobCount = $blobCount + $Blobs.Count
$token = $Blobs[$Blobs.Count - 1].ContinuationToken;
} while ( $token )

这就是我想出的"剧本"。 基于此

最新更新