Réalimenter un objet blob archivé dans un niveau en ligne
Article
Pour lire un blob qui se trouve dans le niveau archive, vous devez d’abord le réhydrater vers un niveau en ligne (chaud, sporadique ou froid). Vous pouvez réhydrater un blob d’une de ces deux manières :
En le copiant dans un nouveau blob dans le niveau chaud, sporadique ou froid avec l’opération Copier le blob.
En passant son niveau archive en niveau chaud, sporadique ou froid avec l’opération Définir un niveau de blob.
Lorsque vous réhydratez un objet blob, vous pouvez spécifier la priorité de l’opération : standard ou élevée. Une opération de réhydratation de priorité standard peut prendre jusqu’à 15 heures. Une opération de priorité élevée est prioritaire par rapport aux demandes de priorité standard. Elle peut être effectuée en moins d’une heure pour les objets de taille inférieure à 10 Go. Vous pouvez remplacer la priorité de réhydratation standard par élevée pendant que l’opération est en attente.
Vous pouvez configurer Azure Event Grid pour déclencher un événement lorsque la réhydratation est terminée et exécuter le code d’application en réponse. Pour savoir comment gérer un événement qui exécute une fonction Azure quand l’opération de réhydratation de blob est terminée, consultez Exécuter une fonction Azure en réponse à un événement de réhydratation de blob.
Réactiver un objet blob à l’aide d’une opération de copie
Pour réhydrater un blob à partir du niveau archive en le copiant sur un niveau en ligne, utilisez le portail Azure, PowerShell, Azure CLI ou l’une des bibliothèques clientes de stockage Azure. Gardez à l’esprit que lorsque vous copiez un blob archivé sur un niveau en ligne, les blob source et de destination doivent avoir des noms différents.
La copie d’un objet blob archivé dans un niveau de destination en ligne est prise en charge au sein du même compte de stockage. À compter de la version de service 2021-02-12, vous pouvez copier un objet blob archivé vers un autre compte de stockage, tant que le compte de destination se trouve dans la même région que le compte source.
Une fois l’opération de copie terminée, le blob de destination s’affiche dans le niveau archive. Le blob de destination est ensuite réhydraté au niveau en ligne que vous avez spécifié dans l’opération de copie. Lorsque le blob de destination est entièrement réhydraté, il devient disponible dans le nouveau niveau en ligne.
Réhydrater un objet blob sur le même compte de stockage
Les exemples suivants montrent comment copier un objet blob archivé dans un objet blob dans le niveau chaud du même compte de stockage.
Accédez au compte de stockage source dans le portail Azure.
Dans le volet de navigation du compte de stockage, sélectionnez Navigateur de stockage.
Dans le navigateur de stockage, accédez à l’emplacement de l’objet blob archivé, cochez la case qui s’affiche en regard de l’objet blob, puis sélectionnez le bouton Copier.
Accédez au conteneur dans lequel vous souhaitez placer l’objet blob réhydraté, puis sélectionnez le bouton Coller.
La boîte de dialogue Coller un objet blob d’archive s’affiche.
Remarque
Si vous sélectionnez le bouton Coller au même emplacement que l’objet blob source, le nom par défaut qui apparaît dans le champ Nom de l’objet blob de destination contient un suffixe numérique. Cela garantit que les objets blob source et de destination utilisent des noms différents. Vous pouvez modifier ce nom si vous le souhaitez tant que le nom est différent de celui de l’objet blob source.
Dans la boîte de dialogue Coller un objet blob d’archive, choisissez un niveau d’accès et une priorité de réhydratation. Sélectionnez ensuite Coller pour réhydrater l’objet blob.
Important
Ne supprimez pas l’objet blob source pendant qu’il est en cours de réhydratation.
Pour copier un blob archivé sur un niveau en ligne avec PowerShell, appelez la commande Start-AzStorageBlobCopy et spécifiez le niveau cible et la priorité de réhydratation. 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 with Standard priority.
Start-AzStorageBlobCopy -SrcContainer $srcContainerName `
-SrcBlob $srcBlobName `
-DestContainer $destContainerName `
-DestBlob $destBlobName `
-StandardBlobTier Hot `
-RehydratePriority Standard `
-Context $ctx
Pour copier un blob archivé sur un niveau en ligne avec Azure CLI, appelez la commande az storage blob copy start et spécifiez le niveau cible et la priorité de réhydratation. N’oubliez pas de remplacer les espaces réservés entre crochets par vos propres valeurs :
az storage blob copy start \
--source-container <source-container> \
--source-blob <source-blob> \
--destination-container <dest-container> \
--destination-blob <dest-blob> \
--account-name <storage-account> \
--tier hot \
--rehydrate-priority standard \
--auth-mode login
N/A
Réhydrater un objet blob vers un autre compte de stockage dans la même région
Les exemples suivants montrent comment copier un objet blob archivé dans un objet blob dans un autre niveau chaud du même compte de stockage.
Notes
Le compte de destination et le compte source doivent se trouver dans la même région.
Accédez au compte de stockage source dans le portail Azure.
Dans le volet de navigation du compte de stockage, sélectionnez Navigateur de stockage.
Dans le navigateur de stockage, accédez à l’emplacement de l’objet blob archivé, cochez la case qui s’affiche en regard de l’objet blob, puis sélectionnez le bouton Copier.
Accédez au compte de stockage de destination, puis, dans le volet de navigation, sélectionnez Navigateur de stockage.
Accédez au conteneur dans lequel vous souhaitez placer l’objet blob réhydraté, puis sélectionnez le bouton Coller.
La boîte de dialogue Coller un objet blob d’archive s’affiche.
Dans la boîte de dialogue Coller un objet blob d’archive, choisissez un niveau d’accès et une priorité de réhydratation. Sélectionnez ensuite Coller pour réhydrater l’objet blob.
Important
Ne supprimez pas l’objet blob source pendant qu’il est en cours de réhydratation.
Pour copier un objet blob archivé dans un objet blob situé dans un niveau en ligne d’un autre compte de stockage avec PowerShell, vérifiez que vous avez installé le module Az.Storage version 4.4.0 ou ultérieure. Appelez ensuite la commande Start-AzStorageBlobCopy et spécifiez le niveau cible en ligne et la priorité de réhydratation. Vous devez spécifier une signature d’accès partagé (SAP) avec des autorisations de lecture pour l’objet blob source archivé.
L’exemple suivant montre comment copier un objet blob archivé dans le niveau d’accès chaud dans un autre compte de stockage. N’oubliez pas de remplacer les espaces réservés entre crochets par vos propres valeurs :
$rgName = "<resource-group>"
$srcAccount = "<source-account>"
$destAccount = "<dest-account>"
$srcContainer = "<source-container>"
$destContainer = "<dest-container>"
$srcBlob = "<source-blob>"
$destBlob = "<destination-blob>"
# Get the destination account context
$destCtx = New-AzStorageContext -StorageAccountName $destAccount -UseConnectedAccount
# Get the source account context
$srcCtx = New-AzStorageContext -StorageAccountName $srcAccount -UseConnectedAccount
# Get the SAS URI for the source blob
$srcBlobUri = New-AzStorageBlobSASToken -Container $srcContainer `
-Blob $srcBlob `
-Permission rwd `
-ExpiryTime (Get-Date).AddDays(1) `
-FullUri `
-Context $srcCtx
# Start the cross-account copy operation
Start-AzStorageBlobCopy -AbsoluteUri $srcBlobUri `
-DestContainer $destContainer `
-DestBlob $destBlob `
-DestContext $destCtx `
-StandardBlobTier Hot `
-RehydratePriority Standard
Pour copier un objet blob archivé dans un objet blob dans un niveau en ligne dans un autre compte de stockage avec Azure CLI, vérifiez que vous avez installé la version 2.35.0 ou ultérieure. Appelez ensuite la commande az storage blob copy start et spécifiez le niveau cible en ligne et la priorité de réhydratation. Vous devez spécifier une signature d’accès partagé (SAP) avec des autorisations de lecture pour l’objet blob source archivé.
L’exemple suivant montre comment copier un objet blob archivé dans le niveau d’accès chaud dans un autre compte de stockage. N’oubliez pas de remplacer les espaces réservés entre crochets par vos propres valeurs :
# Specify the expiry interval
end=`date -u -d "1 day" '+%Y-%m-%dT%H:%MZ'`
# Get a SAS for the source blob
srcBlobUri=$(az storage blob generate-sas \
--account-name <source-account> \
--container <source-container> \
--name <archived-source-blob> \
--permissions rwd \
--expiry $end \
--https-only \
--full-uri \
--as-user \
--auth-mode login | tr -d '"')
# Copy to the destination blob in the hot tier
az storage blob copy start \
--source-uri $srcBlobUri \
--account-name <dest-account> \
--destination-container <dest-container> \
--destination-blob <dest-blob> \
--tier Hot \
--rehydrate-priority Standard \
--auth-mode login
N/A
Réhydrater à partir d’une région secondaire
Si vous avez configuré votre compte de stockage pour utiliser le stockage géographiquement redondant avec accès en lecture (RA-GRS), vous pouvez copier un objet blob archivé situé dans une région secondaire vers un niveau en ligne d’un autre compte de stockage situé dans cette même région secondaire.
Pour réhydrater à partir d’une région secondaire, utilisez les conseils présentés dans la section précédente (Réhydrater un objet blob vers un autre compte de stockage dans la même région). Ajoutez le suffixe -secondary au nom de compte du point de terminaison source. Par exemple, si votre point de terminaison primaire pour le stockage d’objets blob est myaccount.blob.core.windows.net, le point de terminaison secondaire est myaccount-secondary.blob.core.windows.net. Les clés d’accès pour votre compte de stockage sont les mêmes pour les points de terminaison primaire et secondaire.
Pour modifier le niveau d’un blob de l’archive à chaud ou froid dans le portail Azure, procédez comme suit :
Localisez le blob à réhydrater dans le portail Azure.
Sélectionnez le bouton Plus à droite de la page.
Sélectionnez Modifier le niveau.
Sélectionnez le niveau d'accès cible à partir de la liste déroulante Niveau d'accès.
À partir de la liste déroulante Priorité de réactivation, sélectionnez la priorité de réhydratation souhaitée. Gardez à l’esprit que la définition de la priorité de réhydratation sur Élevée entraîne généralement une réhydratation plus rapide, mais également un coût plus élevé.
Sélectionnez le bouton Enregistrer.
Pour remplacer le niveau archive d’un objet blob par chaud ou froid avec PowerShell, utilisez la propriété BlobClient de l’objet blob pour retourner une référence .NET à l’objet 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 = "<archived-blob>"
# Get the storage account context
$ctx = (Get-AzStorageAccount `
-ResourceGroupName $rgName `
-Name $accountName).Context
# Change the blob's access tier to hot with Standard priority.
$blob = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx
$blob.BlobClient.SetAccessTier("Hot", $null, "Standard")
Pour changer le niveau d’un blob d’archive à chaud ou 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 :
az storage blob set-tier \
--account-name <storage-account> \
--container-name <container> \
--name <archived-blob> \
--tier Hot \
--rehydrate-priority Standard \
--auth-mode login
Pour faire passer un objet blob du niveau Archive au niveau Chaud ou Sporadique avec AzCopy, utilisez la commande azcopy set-properties et définissez le paramètre -block-blob-tier sur le niveau souhaité, ainsi que --rehydrate-priority sur standard ou high. Par défaut, ce paramètre a la valeur standard. Pour en savoir plus sur les désavantages de chaque option, consultez Priorité de réhydratation.
Important
La possibilité de modifier le niveau d’un objet blob à l’aide d’AzCopy 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 ne contient également aucun 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 réhydrater les objets blob archivés dans un conteneur ou un dossier au niveau chaud ou sporadique, é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 :
Pour réhydrater un grand nombre d’objets BLOB à la fois, appelez l’opération Blob Batch pour appeler Set Blob Tier en tant qu’opération en bloc.
Pour obtenir un exemple de code qui montre comment effectuer l’opération de traitement par lots, consultez AzBulkSetBlobTier.
Vérifier l’état d’une opération de réhydratation
Lorsque le blob est en cours de réhydratation, vous pouvez vérifier son état et sa priorité de réhydratation à l’aide du portail Azure, de PowerShell ou d’Azure CLI. La propriété de l’état peut renvoyer rehydrate-pending-to-hot ou rehydrate-pending-to-cool, selon le niveau cible pour l’opération de réhydratation. La propriété de la priorité de réhydratation renvoie Standard ou Élevé.
N’oubliez pas que la réhydratation d’un blob archivé peut prendre jusqu’à 15 heures, et interroger de manière répétée l’état du blob pour déterminer si la réhydratation est terminée est inefficace. L’utilisation d’Azure Event Grid pour capturer l’événement qui se déclenche lorsque la réhydratation est terminée offre de meilleures performances et une optimisation des coûts. Pour savoir comment exécuter une fonction Azure quand un événement se déclenche sur la réhydratation de blob, consultez Exécuter une fonction Azure en réponse à un événement de réhydratation de blob.
Pour vérifier l’état et la priorité d’une opération de réhydratation en attente dans le portail Azure, affichez la boîte de dialogue Modifier le niveau pour le blob :
Lorsque la réhydratation est terminée, vous pouvez voir dans le portail Azure que le blob entièrement réhydraté apparaît maintenant dans le niveau en ligne ciblé.
Pour vérifier l’état et la priorité d’une opération de réhydratation en attente avec PowerShell, appelez la commande Get-AzStorageBlob et vérifiez les propriétés ArchiveStatus et RehydratePriority du blob. Si la réhydratation est une opération de copie, vérifiez ces propriétés sur le blob de destination. N’oubliez pas de remplacer les espaces réservés entre crochets par vos propres valeurs :
Pour vérifier l’état et la priorité d’une opération de réhydratation en attente avec Azure CLI, appelez la commande az storage blob show et vérifiez les propriétés rehydrationStatus et rehydratePriority du blob de destination. N’oubliez pas de remplacer les espaces réservés entre crochets par vos propres valeurs :
Modifier la priorité de réhydratation d’une opération en attente
Lorsqu’une opération de réhydratation de priorité standard est en attente, vous pouvez remplacer le paramètre de priorité de réhydratation standard d’un objet blob par élevée pour réhydrater cet objet blob plus rapidement.
Le paramètre de priorité de réhydratation ne peut pas être abaissé d’Élevée à Standard pour une opération en attente. Gardez également à l’esprit que la modification de la priorité de réhydratation peut avoir un impact sur la facturation. Pour plus d’informations, consultez Réhydratation d’objets blob à partir du niveau archive.
Modifier la priorité de réhydratation pour une opération Définir le niveau d’objet blob en attente
Pour modifier la priorité de réhydratation pendant qu’une opération Définir le niveau d’objet blob de priorité standard est en attente, utilisez le portail Azure, PowerShell, Azure CLI ou l’une des bibliothèques clientes de Stockage Azure.
Pour modifier la priorité de réhydratation pour une opération en attente avec le portail Azure, procédez comme suit :
Accédez à l’objet blob dont vous souhaitez modifier la priorité de réhydratation, puis sélectionnez l’objet blob.
Sélectionnez le bouton Modifier le niveau.
Dans la boîte de dialogue Modifier le niveau, définissez le niveau d’accès sur le niveau d’accès en ligne cible pour l’objet blob de réhydratation (chaud ou froid). Le champ État de l’archive affiche le niveau en ligne cible.
Dans la liste déroulante Priorité de réhydratation, définissez la priorité sur Élevée.
Cliquez sur Enregistrer.
Si vous souhaitez modifier la priorité de réhydratation pour une opération en attente avec PowerShell, vérifiez que vous avez installé le module Az.Storage version 3.12.0 ou ultérieure. Ensuite, récupérez les propriétés de l’objet blob à partir du service. Cette étape est nécessaire pour s’assurer que vous disposez d’un objet avec les paramètres de propriété les plus récents. Enfin, utilisez la propriété BlobClient de l’objet blob pour retourner une référence .NET à l’objet blob, puis appelez la méthode SetAccessTier sur cette référence.
# Get the blob from the service.
$rehydratingBlob = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx
# Verify that the current rehydration priority is Standard.
if ($rehydratingBlob.BlobProperties.RehydratePriority -eq "Standard")
{
# Change rehydration priority to High, using the same target tier.
if ($rehydratingBlob.BlobProperties.ArchiveStatus -eq "rehydrate-pending-to-hot")
{
$rehydratingBlob.BlobClient.SetAccessTier("Hot", $null, "High")
"Changing rehydration priority to High for blob moving to hot tier."
}
if ($rehydratingBlob.BlobProperties.ArchiveStatus -eq "rehydrate-pending-to-cool")
{
$rehydratingBlob.BlobClient.SetAccessTier("Cool", $null, "High")
"Changing rehydration priority to High for blob moving to cool tier."
}
}
Si vous souhaitez modifier la priorité de réhydratation pour une opération en attente avec Azure CLI, vérifiez d’abord que vous avez installé Azure CLI version 2.29.2 ou ultérieure. Pour plus d’informations sur l'installation d’Azure CLI, consultez Comment installer Azure CLI.
Ensuite, appelez la commande az storage blob set-tier avec le paramètre --rehydrate-priority défini sur High. Le niveau cible (chaud ou froid) doit être le même que celui spécifié à l’origine pour l’opération de réhydratation. N’oubliez pas de remplacer les espaces réservés entre crochets par vos propres valeurs :
# Update the rehydration priority for a blob moving to the hot tier.
az storage blob set-tier \
--account-name <storage-account> \
--container-name <container> \
--name <blob> \
--tier Hot \
--rehydrate-priority High \
--auth-mode login
# Show the updated property values.
az storage blob show \
--account-name <storage-account> \
--container-name <container> \
--name <blob> \
--query '[rehydratePriority, properties.rehydrationStatus]' \
--output tsv \
--auth-mode login
N/A
Modifier la priorité de réhydratation d’une opération Copier l’objet blob en attente
Lorsque vous réhydratez un objet blob en copiant l’objet blob archivé sur un niveau en ligne, Stockage Azure crée immédiatement l’objet blob de destination dans le niveau archive. L’objet blob de destination est ensuite réhydraté dans le niveau cible avec la priorité spécifiée sur l’opération de copie. Pour plus d’informations sur la réhydratation d’un objet blob archivé à l’aide d’une opération de copie, consultez Copier un objet blob archivé sur un niveau en ligne.
Pour exécuter l’opération de copie du niveau archive vers un niveau en ligne avec une priorité Standard, utilisez PowerShell, Azure CLI ou l’une des bibliothèques clientes Stockage Azure. Pour plus d’informations, consultez Réhydrater un objet blob à l’aide d’une opération de copie. Ensuite, pour remplacer la priorité standard de la réhydratation en attente par élevée, appelez Définir le niveau d’objet blob sur l’objet blob de destination et spécifiez le niveau cible.
Après avoir lancé l’opération de copie, vous verrez dans le portail Azure que l’objet blob source et l’objet blob de destination se trouvent dans le niveau Archive. L’objet blob de destination est en cours de réhydratation avec une priorité standard.
Pour modifier la priorité de réhydratation de l’objet blob de destination, procédez comme suit :
Sélectionnez l’objet blob de destination.
Sélectionnez le bouton Modifier le niveau.
Dans la boîte de dialogue Modifier le niveau, définissez le niveau d’accès sur le niveau d’accès en ligne cible pour l’objet blob de réhydratation (chaud ou froid). Le champ État de l’archive affiche le niveau en ligne cible.
Dans la liste déroulante Priorité de réhydratation, définissez la priorité sur Élevée.
Sélectionnez Enregistrer.
La page de propriétés de l’objet blob de destination indique à présent qu’il est en cours de réhydratation avec une priorité élevée.
Une fois l’opération de copie lancée, vérifiez les propriétés de l’objet blob de destination. Vous verrez que l’objet blob de destination se trouve dans le niveau archive et qu’il est en cours de réhydratation avec une priorité standard.
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$destContainerName = "<container>"
$destBlobName = "<destination-blob>"
# Get the storage account context
$ctx = (Get-AzStorageAccount `
-ResourceGroupName $rgName `
-Name $accountName).Context
# Get properties for the destination blob.
$destinationBlob = Get-AzStorageBlob -Container $destContainerName `
-Blob $destBlobName `
-Context $ctx
$destinationBlob.BlobProperties.AccessTier
$destinationBlob.BlobProperties.ArchiveStatus
$destinationBlob.BlobProperties.RehydratePriority
Ensuite, appelez la méthode SetAccessTier via PowerShell pour remplacer la priorité de réhydratation de l’objet blob de destination par élevée, comme décrit dans Modifier la priorité de réhydratation d’une opération Définir le niveau d’objet blob en attente. Le niveau cible (chaud ou froid) doit être le même que celui spécifié à l’origine pour l’opération de réhydratation. Consultez à nouveau les propriétés pour vérifier que l’objet blob est maintenant en cours de réhydratation avec une priorité élevée.
Une fois l’opération de copie lancée, vérifiez les propriétés de l’objet blob de destination. Vous verrez que l’objet blob de destination se trouve dans le niveau archive et qu’il est en cours de réhydratation avec une priorité standard.