Démarrage rapide : Charger, télécharger et lister des blobs avec PowerShell

Utilisez le module Azure PowerShell pour créer et gérer les ressources Azure. Vous pouvez créer ou gérer des ressources Azure à partir de la ligne de commande de PowerShell ou dans des scripts. Ce guide décrit l’utilisation de PowerShell pour transférer des fichiers entre un disque local et le Stockage Blob Azure.

Prérequis

Pour accéder à Stockage Azure, vous avez besoin d’un abonnement Azure. Si vous n’avez pas d’abonnement, vous pouvez créer un compte gratuit avant de commencer.

Vous aurez également besoin du rôle Contributeur aux données d’Azure Storage Blob pour lire, écrire et supprimer des conteneurs et des blobs de Stockage Azure.

Notes

Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour commencer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.

Ce démarrage rapide requiert le module Azure PowerShell Az version 0.7 ou ultérieure. Exécutez Get-InstalledModule -Name Az -AllVersions | select Name,Version pour trouver la version. Si vous devez installer ou mettre à niveau, consultez Installer le module Azure PowerShell.

Connexion à Azure

Connectez-vous à votre abonnement Azure avec la commande Connect-AzAccount et suivez les instructions à l’écran.

Connect-AzAccount

Si vous ne savez pas quelle localisation utiliser, affichez la liste des localisations disponibles. Affichez la liste des localisations avec l’exemple de code suivant et trouvez celui que vous souhaitez utiliser. Cet exemple utilise eastus. Stockez la localisation dans une variable et utilisez cette variable pour changer son contenu dans un seul emplacement.

Get-AzLocation | Select-Object -Property Location
$Location = 'eastus'

Créer un groupe de ressources

Créez un groupe de ressources Azure avec New-AzResourceGroup. Un groupe de ressources est un conteneur logique dans lequel les ressources Azure sont déployées et gérées.

$ResourceGroup = 'MyResourceGroup'
New-AzResourceGroup -Name $ResourceGroup -Location $Location

Créez un compte de stockage.

Créez un compte de stockage universel standard avec réplication LRS à l’aide de l’applet de commande New-AzStorageAccount. Ensuite, obtenez le contexte du compte de stockage qui définit le compte de stockage à utiliser. Si un compte de stockage est utilisé, référencez le contexte au lieu d’entrer les informations d’identification à plusieurs reprises. Utilisez l’exemple suivant pour créer un compte de stockage nommé mystorageaccount avec les options de stockage localement redondant (LRS) et de chiffrement des objets blob (activées par défaut).

$StorageHT = @{
  ResourceGroupName = $ResourceGroup
  Name              = 'mystorageaccount'
  SkuName           = 'Standard_LRS'
  Location          =  $Location
}
$StorageAccount = New-AzStorageAccount @StorageHT
$Context = $StorageAccount.Context

Créez un conteneur.

Les objets blob sont toujours chargés dans un conteneur. Vous pouvez organiser des groupes d’objets blob de la même façon que vous organisez vos fichiers dans les dossiers de l’ordinateur.

Définissez le nom du conteneur, puis créez le conteneur à l’aide de la commande New-AzStorageContainer. Le nom du conteneur dans cet exemple est quickstartblobs.

$ContainerName = 'quickstartblobs'
New-AzStorageContainer -Name $ContainerName -Context $Context

Charger des objets blob dans le conteneur

Stockage Blob prend en charge les objets blob de blocs, d’ajout et de pages. Les fichiers de disque dur virtuel utilisés pour appuyer les machines virtuelles IaaS sont des objets blob de pages. Utilisez des objets blob d’ajout pour la journalisation, par exemple, quand vous voulez écrire dans un fichier et continuer à ajouter d’autres informations. La plupart des fichiers stockés dans Stockage Blob sont des objets blob de blocs.

Pour charger un fichier sur un objet blob de blocs, obtenez une référence de conteneur, puis obtenez une référence à l’objet blob de blocs dans ce conteneur. Une fois que vous avez la référence à l’objet blob, vous pouvez y charger des données à l’aide de Set-AzStorageBlobContent. Si l’objet blob n’existe pas, cette opération le crée. S’il existe, il est remplacé.

Les exemples suivants chargent Image001.jpg et Image002.png à partir du dossier D:\Images sur le disque local, dans le conteneur que vous avez créé.

# upload a file to the default account (inferred) access tier
$Blob1HT = @{
  File             = 'D:\Images\Image001.jpg'
  Container        = $ContainerName
  Blob             = "Image001.jpg"
  Context          = $Context
  StandardBlobTier = 'Hot'
}
Set-AzStorageBlobContent @Blob1HT
  
 # upload another file to the Cool access tier
 $Blob2HT = @{
  File             = 'D:\Images\Image002.jpg'
  Container        = $ContainerName
  Blob             = 'Image002.png'
  Context          = $Context
  StandardBlobTier = 'Cool'
 }
 Set-AzStorageBlobContent @Blob2HT
  
# upload a file to a folder to the Archive access tier
$Blob3HT = @{
  File             = 'D:\Images\FolderName\Image003.jpg'
  Container        = $ContainerName
  Blob             = 'FolderName/Image003.jpg'
  Context          = $Context
  StandardBlobTier = 'Archive'
}
Set-AzStorageBlobContent @Blob3HT


Chargez autant de fichiers que vous le souhaitez avant de continuer.

Créer la liste des objets blob d’un conteneur

Obtenez la liste des objets blob dans le conteneur à l’aide de la commande Get-AzStorageBlob. Cet exemple montre uniquement les noms des objets blob chargés.

Get-AzStorageBlob -Container $ContainerName -Context $Context |
  Select-Object -Property Name

Télécharger des objets blob

Téléchargez les objets blob sur votre disque local. Pour chaque objet blob à télécharger, définissez le nom et appelez la commande Get-AzStorageBlobContent pour télécharger l’objet blob.

Cet exemple télécharge les objets blob dans D:\Images\Downloads sur le disque local.

# Download first blob
$DLBlob1HT = @{
  Blob        = 'Image001.jpg'
  Container   = $ContainerName
  Destination = 'D:\Images\Downloads\'
  Context     = $Context
}
Get-AzStorageBlobContent @DLBlob1HT

# Download another blob
$DLBlob2HT = @{
  Blob        = 'Image002.png'
  Container   = $ContainerName
  Destination = 'D:\Images\Downloads\'
  Context     = $Context  
}
Get-AzStorageBlobContent @DLBlob2HT

Transfert de données avec AzCopy

L’utilitaire en ligne de commande AzCopy assure un transfert de données hautement performant et scriptable pour Stockage Azure. Vous pouvez utiliser AzCopy pour transférer des données depuis et vers le stockage Blob et Azure Files. Pour plus d’informations sur AzCopy v10, la dernière version d’AzCopy, consultez Bien démarrer avec AzCopy. Pour plus d’informations sur l’utilisation d’AzCopy v10 avec le stockage Blob, consultez Transférer des données avec AzCopy et le stockage Blob.

L’exemple suivant utilise AzCopy pour charger un fichier local dans un objet blob. Pensez à remplacer les valeurs de l’exemple par vos propres valeurs :

azcopy login
azcopy copy 'D:\Images\Image001.jpg' "https://$StorageAccountName.blob.core.windows.net/$ContainerName/NewGaphic.jpg"

Nettoyer les ressources

Supprimez toutes les ressources que vous avez créées. Pour ce faire, le plus simple consiste à supprimer le groupe de ressources. La suppression du groupe de ressources supprime aussi toutes les ressources qu’il contient. Dans l’exemple suivant, la suppression du groupe de ressources supprime aussi le compte de stockage et le groupe de ressources.

Remove-AzResourceGroup -Name $ResourceGroup 

Étapes suivantes

Dans ce guide de démarrage rapide, vous avez transféré des fichiers entre un système de fichiers local et le Stockage Blob Azure. Pour en savoir plus sur l’utilisation d’un stockage blob en utilisant PowerShell, sélectionnez une option ci-dessous.

Référence des applets de commande de stockage Microsoft Azure PowerShell

Explorateur Stockage Microsoft Azure

  • Microsoft Azure Storage Explorer est une application autonome et gratuite de Microsoft qui vous permet d’exploiter visuellement les données de Stockage Azure sur Windows, macOS et Linux.