Calculer la taille d’un conteneur blob avec PowerShell
Ce script calcule la taille de tous les conteneurs Stockage Blob Azure dans un compte de stockage.
Cet exemple nécessite Azure PowerShell. Exécutez Get-Module -ListAvailable Az
pour trouver la version.
Si vous devez installer ou mettre à niveau, consultez Installer le module Azure PowerShell.
Exécutez l’applet de commande Connect-AzAccount pour vous connecter à Azure.
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.
Important
Ce script PowerShell fournit une estimation de taille pour les conteneurs d’un compte et ne doit pas être utilisé pour les calculs de facturation. Pour un script qui calcule la taille du conteneur pour la facturation, consultez Calculer la taille totale d’un conteneur de stockage d’objets blob.
Exemple de script
<#
.SYNOPSIS
Calculates the total size of blobs in all containers in a specified Azure storage account.
.DESCRIPTION
Before running this script, ensure you have:
- A storage account created
- At least one container in the storage account
- Uploaded some blobs into the container
.EXAMPLE
.\Get-AzureStorageAccountBlobSize.ps1 -StorageAccountName mystorageaccount -ResourceGroupName myResourceGroup
.NOTES
This script incurs transactional costs for Azure requests.
#>
[CmdletBinding()]
param (
[ValidateNotNullOrEmpty()]
[string]$ResourceGroupName = '<name-of-your-resource-group>',
[ValidateNotNullOrEmpty()]
[string]$StorageAccountName = '<name-of-your-storage-account>'
)
$containerstats = @()
# Get a reference to the storage account and the context.
$storageAccount = Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName
$Ctx = $storageAccount.Context
$container_continuation_token = $null
do {
$containers = Get-AzStorageContainer -Context $Ctx -MaxCount 5000 -ContinuationToken $container_continuation_token
$container_continuation_token = $null
if ($containers -ne $null) {
$container_continuation_token = $containers[$containers.Count - 1].ContinuationToken
for ([int] $c = 0; $c -lt $containers.Count; $c++) {
$container = $containers[$c].Name
Write-Verbose "Processing container : $container"
$total_usage = 0
$total_blob_count = 0
$soft_delete_usage = 0
$soft_delete_count = 0
$version_usage = 0
$version_count =
$snapshot_count = 0
$snapshot_usage = 0
$blob_continuation_token = $null
do {
$blobs = Get-AzStorageBlob -Context $Ctx -IncludeDeleted -IncludeVersion -Container $container -ConcurrentTaskCount 100 -MaxCount 5000 -ContinuationToken $blob_continuation_token
$blob_continuation_token = $null
if ($blobs -ne $null) {
$blob_continuation_token = $blobs[$blobs.Count - 1].ContinuationToken
for ([int] $b = 0; $b -lt $blobs.Count; $b++) {
$total_blob_count++
$total_usage += $blobs[$b].Length
if ($blobs[$b].IsDeleted) {
$soft_delete_count++
$soft_delete_usage += $blobs[$b].Length
}
if ($blobs[$b].SnapshotTime -ne $null) {
$snapshot_count++
$snapshot_usage+= $blobs[$b].Length
}
if ($blobs[$b].VersionId -ne $null) {
$version_count++
$version_usage += $blobs[$b].Length
}
}
if ($blob_continuation_token -ne $null) {
Write-Verbose "Blob listing continuation token = {0}".Replace("{0}",$blob_continuation_token.NextMarker)
}
}
} while ($blob_continuation_token -ne $null)
Write-Verbose "Calculated size of $container = $total_usage with soft_delete usage of $soft_delete_usage"
$containerstats += [PSCustomObject] @{
Name = $container
TotalBlobCount = $total_blob_count
TotalBlobUsageinGB = $total_usage/1GB
SoftDeletedBlobCount = $soft_delete_count
SoftDeletedBlobUsageinGB = $soft_delete_usage/1GB
SnapshotCount = $snapshot_count
SnapshotUsageinGB = $snapshot_usage/1GB
VersionCount = $version_count
VersionUsageinGB = $version_usage/1GB
}
}
}
if ($container_continuation_token -ne $null) {
Write-Verbose "Container listing continuation token = {0}".Replace("{0}",$container_continuation_token.NextMarker)
}
} while ($container_continuation_token -ne $null)
Write-Host "Total container stats"
$containerstats | Format-Table -AutoSize
Nettoyer le déploiement
Exécutez la commande suivante pour supprimer le groupe de ressources, le conteneur et toutes les ressources associées.
Remove-AzResourceGroup -Name bloblisttestrg
Explication du script
Ce script utilise les commandes suivantes pour calculer la taille du conteneur de stockage d’objets blob. Chaque élément du tableau renvoie à une documentation spécifique de la commande.
Commande | Notes |
---|---|
Get-AzStorageAccount | Obtient un compte de stockage spécifié ou tous les comptes de stockage dans un groupe de ressources ou l’abonnement. |
Get-AzStorageContainer | Liste les conteneurs de stockage. |
Get-AzStorageBlob | Répertorie les objets blob inclus dans un conteneur. |
Étapes suivantes
Pour un script qui calcule la taille du conteneur pour la facturation, consultez Calculer la taille totale d’un conteneur de stockage d’objets blob.
Pour plus d’informations sur le module Azure PowerShell, consultez Documentation Azure PowerShell.
Vous trouverez d'autres exemples de scripts PowerShell dans Exemples PowerShell pour Stockage Azure.