Vous pouvez définir le niveau d’accès d’un blob de l’une des manières suivantes :
En définissant le niveau d’accès en ligne par défaut pour le compte de stockage. Les blobs du compte héritent de ce niveau d’accès, sauf si vous remplacez explicitement le paramètre pour un blob individuel.
En définissant explicitement le niveau d’un blob lors du chargement. Vous pouvez créer un objet blob au niveau chaud, sporadique, froid ou archive.
En changeant le niveau d’un blob existant avec l’opération Définir le niveau de l’objet blob. En règle générale, vous utilisez cette opération pour passer d’un niveau plus chaud à un niveau plus froid.
En copiant un objet blob avec une opération Copier l’objet blob. En règle générale, vous utilisez cette opération pour passer d’un niveau plus froid à un niveau plus chaud.
Cet article explique comment gérer un objet blob dans un niveau d’accès en ligne. Pour plus d’informations sur la façon de déplacer un blob vers le niveau Archive, consultez Archiver un blob. Pour plus d’informations sur la façon de réhydrater un blob à partir du niveau Archive, consultez Réhydrater un blob archivé sur un niveau en ligne.
Définir le niveau d’accès par défaut d’un compte de stockage
Le paramètre de niveau d’accès par défaut pour un compte de stockage v2 universel détermine dans quel niveau en ligne un nouveau blob est créé par défaut. Vous pouvez définir le niveau d’accès par défaut pour un compte de stockage v2 universel au moment où vous créez le compte ou en mettant à jour la configuration d’un compte existant.
Lorsque vous changez le paramètre de niveau d’accès par défaut pour un compte de stockage v2 universel existant, le changement s’applique à tous les objets blob du compte pour lesquels un niveau d’accès n’a pas été défini explicitement. Le changement du niveau d’accès par défaut peut avoir un impact sur la facturation. Pour obtenir des détails, consultez Paramètre de niveau d’accès du compte par défaut.
Pour définir le niveau d’accès par défaut pour un compte de stockage au moment de sa création dans le portail Azure, suivez ces étapes :
Accédez à la page Comptes de stockage et sélectionnez le bouton Créer.
Renseignez l’onglet Informations de base.
Sous l’onglet Avancé, sous Stockage Blob, définissez le Niveau d’accès sur Chaud, Sporadique ou Froid. Le paramètre par défaut est Chaud.
Sélectionnez Vérifier + créer pour valider vos paramètres et créer votre compte de stockage.
Pour mettre à jour le niveau d’accès par défaut pour un compte de stockage existant dans le portail Azure, suivez ces étapes :
Accédez au compte de stockage dans le portail Azure.
Sous Paramètres, sélectionnez Configuration.
Recherchez le paramètre Niveau d’accès aux blobs (par défaut), puis sélectionnez Chaud, Sporadique ou Froid. Le paramètre par défaut est Chaud, si vous n’avez pas déjà défini cette propriété.
Enregistrez vos modifications.
Pour changer le paramètre de niveau d’accès par défaut pour un compte de stockage avec PowerShell, appelez la commande Set-AzStorageAccount, en spécifiant le nouveau niveau d’accès par défaut.
Pour changer le paramètre de niveau d’accès par défaut pour un compte de stockage avec PowerShell, appelez la commande Set-AzStorageAccount, en spécifiant le nouveau niveau d’accès par défaut.
# Change the storage account tier to cool
az storage account update \
--resource-group <resource-group> \
--name <storage-account> \
--access-tier Cool
N/A
Définir le niveau d’un blob lors du chargement
Lorsque vous chargez un blob dans le Stockage Azure, vous avez le choix entre deux options pour définir le niveau du blob lors du chargement :
Vous pouvez spécifier explicitement le niveau dans lequel le blob sera créé. Ce paramètre remplace le niveau d’accès par défaut pour le compte de stockage. Vous pouvez définir le niveau d’un blob ou d’un ensemble de blobs lors du chargement sur chaud, froid ou archive.
Vous pouvez charger un blob sans spécifier de niveau. Dans ce cas, le blob sera créé dans le niveau d’accès par défaut spécifié pour le compte de stockage (Chaud ou Froid).
Si vous chargez un nouvel objet blob qui utilise une étendue de chiffrement, vous ne pouvez pas changer son niveau d’accès.
Les sections suivantes décrivent comment spécifier qu’un blob est chargé sur le niveau Chaud ou Froid. Pour plus d’informations sur l’archivage d’un blob lors du chargement, consultez Archiver des blobs lors du chargement.
Charger un blob sur un niveau en ligne spécifique
Pour créer un objet blob dans le niveau chaud, sporadique ou froid, spécifiez ce niveau lorsque vous créez l’objet blob. Le niveau d’accès spécifié lors du chargement remplace le niveau d’accès par défaut pour le compte de stockage.
Pour charger un blob ou un ensemble de blobs sur un niveau spécifique à partir du portail Azure, suivez ces étapes :
Accédez au conteneur cible.
Cliquez sur le bouton Charger.
Sélectionnez le ou les fichiers à charger.
Développez la section Avancé et définissez le Niveau d’accès sur Chaud ou Froid.
Cliquez sur le bouton Charger.
Pour charger un blob ou un ensemble de blobs sur un niveau spécifique avec PowerShell, appelez la commande Set-AzStorageBlobContent, comme montré dans l’exemple suivant. N’oubliez pas de remplacer les valeurs d’espace réservé entre crochets par vos propres valeurs :
$rgName = <resource-group>
$storageAccount = <storage-account>
$containerName = <container>
# tier can be hot, cool, cold, or archive
$tier = <tier>
# Get context object
$ctx = New-AzStorageContext -StorageAccountName $storageAccount -UseConnectedAccount
# Create new container.
New-AzStorageContainer -Name $containerName -Context $ctx
# Upload a single file named blob1.txt to the cool tier.
Set-AzStorageBlobContent -Container $containerName `
-File "blob1.txt" `
-Blob "blob1.txt" `
-Context $ctx `
-StandardBlobTier Cool
# Upload the contents of a sample-blobs directory to the cool tier, recursively.
Get-ChildItem -Path "C:\sample-blobs" -File -Recurse |
Set-AzStorageBlobContent -Container $containerName `
-Context $ctx `
-StandardBlobTier $tier
Pour charger un blob sur un niveau spécifique avec Azure CLI, appelez la commande az storage blob upload, comme montré dans l’exemple suivant. N’oubliez pas de remplacer les valeurs d’espace réservé entre crochets par vos propres valeurs. Remplacez l’espace réservé <tier> par hot, cool, cold ou archive.
Pour charger un ensemble de blobs sur un niveau spécifique avec Azure CLI, appelez la commande az storage blob upload-batch, comme montré dans l’exemple suivant. N’oubliez pas de remplacer les valeurs d’espace réservé entre crochets par vos propres valeurs. Remplacez l’espace réservé <tier> par hot, cool, cold ou archive.
Pour charger un objet blob vers un niveau à l’aide d’AzCopy, utilisez la commande azcopy copy et définissez le paramètre --block-blob-tier sur hot, cool ou archive.
Notes
Cet exemple englobe les arguments de chemin d’accès avec des guillemets simples (' '). Utilisez des guillemets simples dans tous les interpréteurs de commandes, à l’exception de l’interface de commande Windows (cmd. exe). Si vous utilisez une interface de commande Windows (cmd. exe), placez les arguments de chemin d’accès entre guillemets doubles (" ") au lieu de guillemets simples (' '). Cet exemple exclut le jeton SAS car il suppose que vous avez fourni des informations d’identification d’autorisation à l’aide de Microsoft Entra ID. Consultez l’article Bien démarrer avec AzCopy pour savoir comment vous pouvez fournir des informations d’identification au service de stockage.
Pour charger un ensemble d’objets blob vers un niveau à l’aide d’AzCopy, reportez-vous au répertoire local ou au contenu du répertoire local, puis ajoutez --recursive=true à la commande.
Les comptes de stockage disposent d’un paramètre de niveau d’accès par défaut qui indique le niveau en ligne dans lequel un nouveau blob est créé. Le paramètre de niveau d’accès par défaut peut être défini sur chaud ou froid. Le comportement de ce paramètre est légèrement différent selon le type de compte de stockage :
Par défaut, le niveau d’accès pour un nouveau compte de stockage universel v2 est défini sur le niveau chaud. Vous pouvez modifier le paramètre de niveau d’accès par défaut lorsque vous créez un compte de stockage ou après sa création.
Quand vous créez un compte de stockage Blob hérité, vous devez spécifier le paramètre du niveau d’accès par défaut sur Chaud ou Froid. Vous pouvez changer le paramètre du niveau d’accès par défaut pour le compte de stockage après sa création.
Tout objet blob ne disposant pas d’un niveau explicitement attribué déduit le niveau à partir du paramètre de niveau d’accès du compte par défaut. Vous pouvez déterminer si le niveau d’accès d’un blob est déduit en utilisant le portail Azure, PowerShell ou Azure CLI.
Si le niveau d’accès d’un blob est déduit du paramètre de niveau d’accès du compte par défaut, le portail Azure affiche le niveau d’accès comme Chaud (déduit), Sporadique (déduit)ou Froid (déduit).
Pour déterminer le niveau d’accès d’un objet blob, et si celui-ci est déduit à partir d’Azure PowerShell, récupérez l’objet blob, puis vérifiez ses propriétés AccessTier et AccessTierInferred.
$rgName = "<resource-group>"
$storageAccount = "<storage-account>"
$containerName = "<container>"
$blobName = "<blob>"
# Get the storage account context.
$ctx = New-AzStorageContext -StorageAccountName $storageAccount -UseConnectedAccount
# Get the blob from the service.
$blob = Get-AzStorageBlob -Context $ctx -Container $containerName -Blob $blobName
# Check the AccessTier and AccessTierInferred properties.
# If the access tier is inferred, that property returns true.
$blob.BlobProperties.AccessTier
$blob.BlobProperties.AccessTierInferred
Pour déterminer le niveau d’accès d’un objet blob, et si celui-ci est déduit à partir d’Azure CLI, récupérez l’objet blob, puis vérifiez ses propriétés blobTier et blobTierInferred.
Utilisez PowerShell, Azure CLI, AzCopy v10 ou l’une des bibliothèques de client Stockage Azure pour déplacer un objet blob vers un autre niveau.
Changer le niveau d’un blob
Lorsque vous modifiez le niveau d’un objet blob, vous déplacez cet objet et toutes ses données vers le niveau cible en appelant l’opération Définir le niveau du blob (directement ou via une stratégie de gestion du cycle de vie) ou en utilisant la commande azcopy set-properties avec AzCopy. Il s’agit généralement de la meilleure option pour changer le niveau d’un objet blob dans le but de passer d’un niveau plus chaud à un niveau plus sporadique.
Conseil
Vous pouvez utiliser une tâche de stockage pour modifier le niveau d'accès des blobs à grande échelle sur plusieurs comptes de stockage en fonction d'un ensemble de conditions que vous définissez. Une tâche de stockage est une ressource disponible dans Azure Storage Actions; infrastructure serverless que vous pouvez utiliser pour effectuer des opérations de données courantes sur des millions d’objets sur plusieurs comptes de stockage. Pour plus d’informations, consultez Qu’est-ce qu’Azure Storage Actions ?.
Pour changer le niveau d’un blob afin de passer à un niveau plus froid dans le portail Azure, suivez ces étapes :
Accédez au blob pour lequel vous souhaitez changer le niveau.
Sélectionnez le blob, puis le bouton Changer de niveau.
Dans la boîte de dialogue Changer de niveau, sélectionnez le niveau cible.
Sélectionnez le bouton Enregistrer.
Pour changer le niveau d’un blob afin de passer à un niveau plus froid avec PowerShell, utilisez la propriété BlobClient du blob pour retourner une référence .NET au blob, puis appelez la méthode SetAccessTier sur cette référence. N’oubliez pas de remplacer les espaces réservés entre crochets par vos propres valeurs :
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$containerName = "<container>"
$blobName = "<blob>"
$tier = "<tier>"
# Get the storage account context
$ctx = (Get-AzStorageAccount `
-ResourceGroupName $rgName `
-Name $accountName).Context
# Change the blob's access tier.
$blob = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx
$blob.BlobClient.SetAccessTier($tier, $null, "Standard")
Pour changer le niveau d’un blob afin de passer à un niveau plus froid avec Azure CLI, appelez la commande az storage blob set-tier. N’oubliez pas de remplacer les espaces réservés entre crochets par vos propres valeurs :
Pour faire passer un objet blob à un niveau plus froid, utilisez la commande azcopy set-properties et définissez le paramètre -block-blob-tier.
Important
L’utilisation d’AzCopy pour modifier le niveau d’accès d’un objet blob est actuellement en préversion.
Pour connaître les conditions juridiques qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou plus généralement non encore en disponibilité générale, consultez l’Avenant aux conditions d’utilisation des préversions de Microsoft Azure.
Notes
Cet exemple englobe les arguments de chemin d’accès avec des guillemets simples (' '). Utilisez des guillemets simples dans tous les interpréteurs de commandes, à l’exception de l’interface de commande Windows (cmd. exe). Si vous utilisez une interface de commande Windows (cmd. exe), placez les arguments de chemin d’accès entre guillemets doubles (" ") au lieu de guillemets simples (' '). Cet exemple exclut le jeton SAS car il suppose que vous avez fourni des informations d’identification d’autorisation à l’aide de Microsoft Entra ID. Consultez l’article Bien démarrer avec AzCopy pour savoir comment vous pouvez fournir des informations d’identification au service de stockage.
Pour modifier le niveau d’accès de tous les objets blob d’un répertoire virtuel, référez-vous au nom du répertoire virtuel plutôt qu’au nom de l’objet blob, puis ajoutez --recursive=true à la commande.
Pour copier un objet blob d’un niveau vers un autre, appelez l’opération Copier l’objet blob. Lorsque vous copiez un blob dans un autre niveau, vous déplacez ce blob et toutes ses données dans le niveau cible. L’objet blob source reste dans le niveau d’origine et un nouvel objet blob est créé dans le niveau cible. L’appel de Copier l’objet blob est recommandé pour la plupart des scénarios dans lesquels vous déplacez un objet blob vers un niveau plus chaud, ou réhydratez un objet blob à partir du niveau Archive.
Pour copier un blob d’un niveau Froid vers un niveau Chaud avec PowerShell, appelez la commande Start-AzStorageBlobCopy et spécifiez le niveau cible. N’oubliez pas de remplacer les espaces réservés entre crochets par vos propres valeurs :
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$srcContainerName = "<source-container>"
$destContainerName = "<dest-container>"
$srcBlobName = "<source-blob>"
$destBlobName = "<dest-blob>"
# Get the storage account context
$ctx = (Get-AzStorageAccount `
-ResourceGroupName $rgName `
-Name $accountName).Context
# Copy the source blob to a new destination blob in hot tier.
Start-AzStorageBlobCopy -SrcContainer $srcContainerName `
-SrcBlob $srcBlobName `
-DestContainer $destContainerName `
-DestBlob $destBlobName `
-StandardBlobTier Hot `
-Context $ctx
Pour copier un blob vers un niveau plus chaud avec Azure CLI, appelez la commande az storage blob copy start et spécifiez le niveau cible. N’oubliez pas de remplacer les espaces réservés entre crochets par vos propres valeurs :
Pour copier un objet blob du niveau Sporadique vers le niveau Chaud avec AzCopy, utilisez la commande azcopy copy et définissez le paramètre --block-blob-tier sur hot.
Notes
Cet exemple englobe les arguments de chemin d’accès avec des guillemets simples (' '). Utilisez des guillemets simples dans tous les interpréteurs de commandes, à l’exception de l’interface de commande Windows (cmd. exe). Si vous utilisez une interface de commande Windows (cmd. exe), placez les arguments de chemin d’accès entre guillemets doubles (" ") au lieu de guillemets simples (' ').
Cet exemple exclut le jeton SAS car il suppose que vous avez fourni des informations d’identification d’autorisation à l’aide de Microsoft Entra ID. Consultez l’article Bien démarrer avec AzCopy pour savoir comment vous pouvez fournir des informations d’identification au service de stockage.
AzCopy ne prend pas en charge la copie depuis un blob source dans le niveau archive.
L’opération de copie est synchrone de sorte que tous les fichiers soient copiés lorsque la commande retourne.
Hiérarchisation en bloc
Pour déplacer des objets blob vers un autre niveau dans un conteneur ou un dossier, énumérez les objets blob et appelez l’opération Définir le niveau de l’objet blob sur chacun d’eux. L’exemple suivant montre comment effectuer cette opération :
Lorsque vous déplacez un grand nombre d’objets blob vers un autre niveau, utilisez une opération par lots pour des performances optimales. Une opération de traitement par lots envoie plusieurs appels d’API au service avec une seule requête. Les sous-opérations prises en charge par l’opération Traitement par lot des objets blob incluent Supprimer l’objet blob et Définir le niveau du blob.
Pour changer le niveau d’accès des objets blob avec une opération de traitement par lots, utilisez l’une des bibliothèques clientes Stockage Azure. L’exemple de code suivant montre comment effectuer une opération de traitement par lots de base avec la bibliothèque cliente .NET :
static async Task BulkArchiveContainerContents(string accountName, string containerName)
{
string containerUri = string.Format("https://{0}.blob.core.windows.net/{1}",
accountName,
containerName);
// Get container client, using Azure AD credentials.
BlobUriBuilder containerUriBuilder = new BlobUriBuilder(new Uri(containerUri));
BlobContainerClient blobContainerClient = new BlobContainerClient(containerUriBuilder.ToUri(),
new DefaultAzureCredential());
// Get URIs for blobs in this container and add to stack.
var uris = new Stack<Uri>();
await foreach (var item in blobContainerClient.GetBlobsAsync())
{
uris.Push(blobContainerClient.GetBlobClient(item.Name).Uri);
}
// Get the blob batch client.
BlobBatchClient blobBatchClient = blobContainerClient.GetBlobBatchClient();
try
{
// Perform the bulk operation to archive blobs.
await blobBatchClient.SetBlobsAccessTierAsync(blobUris: uris, accessTier: AccessTier.Archive);
}
catch (RequestFailedException e)
{
Console.WriteLine(e.Message);
}
}
Pour voir un exemple d’application détaillé qui montre comment modifier des niveaux à l’aide d’une opération de traitement par lots, consultez AzBulkSetBlobTier.