Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El script calcula el tamaño de todos los contenedores de Azure Blob Storage en una cuenta de almacenamiento.
Este ejemplo requiere Azure PowerShell. Ejecute Get-Module -ListAvailable Az
para encontrar la versión.
Si necesita instalarla o actualizarla, consulte el artículo sobre cómo instalar el módulo de Azure PowerShell.
Ejecute el cmdlet Connect-AzAccount para conectarse a Azure.
Si no tiene una cuenta de Azure, cree una cuenta gratuita antes de comenzar.
Importante
Este script de PowerShell proporciona un tamaño estimado de los contenedores en una cuenta y no debe utilizarse para realizar cálculos de facturación. Si quiere un script que calcule el tamaño del contenedor de cara a la facturación, consulte Calculate the size of a Blob storage container for billing purposes (Cálculo del tamaño de un contenedor de Blob Storage con fines de facturación).
Script de ejemplo
<#
.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
Limpieza de la implementación
Ejecute el siguiente comando para quitar el grupo de recursos, el contenedor y todos los recursos relacionados.
Remove-AzResourceGroup -Name bloblisttestrg
Explicación del script
Este script usa los siguientes comandos para calcular el tamaño del contenedor de Blob Storage. Cada elemento de la tabla incluye vínculos a la documentación específica del comando.
Comando | Notas |
---|---|
Get-AzStorageAccount | Obtiene una cuenta de almacenamiento especificada o todas las cuentas de almacenamiento de un grupo de recursos o la suscripción. |
Get-AzStorageContainer | Especifica los contenedores de almacenamiento. |
Get-AzStorageBlob | Enumera los blobs en un contenedor. |
Pasos siguientes
Si quiere un script que calcule el tamaño del contenedor de cara a la facturación, consulte Calculate the size of a Blob storage container for billing purposes (Cálculo del tamaño de un contenedor de Blob Storage con fines de facturación).
Para obtener más información sobre el módulo de Azure PowerShell, consulte la documentación de Azure PowerShell.
Encontrará más ejemplos de script de PowerShell en Ejemplos de PowerShell para Azure Storage.