Bestanden overbrengen met AzCopy: OAuth en SAS-token

Automatisering is tegenwoordig overal aanwezig in de IT. Van het aanmaken van virtuele machines tot het implementeren van websites, automatisering is essentieel, vooral wanneer je te maken hebt met meerdere items. Zelfs bestandsbeheer tussen Azure-opslag en je lokale machine kan worden geautomatiseerd met een hulpprogramma genaamd AzCopy.

AzCopy is een op zichzelf staand hulpprogramma dat het beheer van Azure-opslag mogelijk maakt. Met AzCopy kunnen verschillende bewerkingen worden uitgevoerd. In dit artikel gaan we ons richten op:

  • Het maken van opslagcontainers
  • Het kopiëren van lokale bestanden naar containers
  • Het kopiëren van bestanden tussen containers

Laten we beginnen!

Als je liever leert via video, kun je ook een TechSnips-video bekijken die nauw verwant is aan wat je in dit artikel zult leren.

Vereisten

In dit artikel wordt een stapsgewijze demonstratie gegeven van verschillende taken. Als je wilt volgen, zorg er dan voor dat je aan de onderstaande lijst met vereisten voldoet voordat je begint.

Het maken van nieuwe opslagcontainers

Als eerste gaan we AzCopy gebruiken om nieuwe opslagcontainers te maken in een bestaande opslagaccount. In het voorbeeld dat je gaat gebruiken, maak je twee nieuwe containers met de namen container1 en container2.

Opmerking: voordat u een nieuwe container maakt, moet u de eindpunt-URL van de container weten. De eindpunt-URL volgt het formaat: https://[storageaccountname].blob.core.windows.net/[container_name].

Definieer eerst de eindpunt-URL. In dit voorbeeld worden de containers gemaakt in een opslagaccount met de naam storageaccount1207, waardoor twee eindpunt-URL’s worden gemaakt:

Nu u de eindpunt-URL’s kent, gebruikt u de azcopy make opdracht waarbij u elke eindpunt-URL doorgeeft als een parameter zoals hieronder weergegeven.

> azcopy make https://storageaccount1207.blob.core.windows.net/container1
> azcopy make https://storageaccount1207.blob.core.windows.net/container2
Creating new containers in the storageaccount1207 storage account

Bestanden kopiëren naar/van Azure-containers

Zodra u een opslagcontainer hebt gemaakt, vraagt u zich waarschijnlijk af: “Hoe upload ik naar Azure Blob Storage?”. U kunt dit voor elkaar krijgen met AzCopy met behulp van de azcopy copy opdracht. U kunt AzCopy gebruiken om PST-bestanden, VHD’s en meer te kopiëren.

Gebruik van OAuth-authenticatie

Bij het gebruik van AzCopy om bestanden naar blobs te kopiëren, heb je een paar opties voor authenticatie. Aangezien ervan wordt uitgegaan dat je al bent geauthenticeerd voor Azure-opslag (aangezien het in de vereisten stond), kun je eenvoudig azcopy copy uitvoeren waarbij je een lokaal bestandspad opgeeft gevolgd door een container eindpunt-URL zoals hieronder wordt getoond.

Door geen enkele andere parameter op te geven, maak je gebruik van de OAuth-authenticatie.

> azcopy copy c:\myDir\file1.txt https://storageaccount1207.blob.core.windows.net/container1
Upload file to Azure Storage using OAuth

Hoe weet je zeker dat het bestand is gekopieerd naar de Azure-blobcontainer? Je kunt de azcopy list [container-url]-opdracht gebruiken. Zie het onderstaande voorbeeld waarin wordt aangetoond dat het bestand file1.txt bestaat.

> azcopy list https://storageaccount1207.blob.core.windows.net/container1
List the contents of the Azure blob container

Om een bestand van de Azure-blob naar de lokale directory te downloaden, hoef je alleen de plaatsen van de bron- en bestemmingsargumenten om te wisselen. Zie het onderstaande voorbeeld.

> azcopy copy https://storageaccount1207.blob.core.windows.net/container1/file1.txt>c:\myDir
Download file from Azure Storage using OAuth authentication

Gebruik van een gedeelde toegangs hand tekening (SAS-token)

Om een SAS-token te gebruiken, moet je er eerst een genereren. Als je niet weet hoe je een SAS-token moet genereren, bekijk dan het artikel Hoe je een Azure SAS-token genereert om toegang te krijgen tot opslagaccounts.

Zodra je een SAS-token beschikbaar hebt, kun je het token toevoegen aan de URL van de doelcontainer als een HTTP-parameter zoals hieronder wordt getoond.

> azcopy copy c:\myDir\file1.txt 'https://storageaccount1207.blob.core.windows.net/container1?sv=2019-02-02&sr=c&sig=LgFsqIRHZovsSjpAVNAyyyy4tnDJ%2BxNh%2B1Cq3rY4Gbk%3D&se=2019-12-09T06%3A34%3A30Z&sp=rw'

Als je PowerShell gebruikt en het token naar een variabele hebt opgeslagen (bijv. $token), kun je die variabele doorgeven in plaats van de volledige tokenreeks zoals in het onderstaande commando.

> azcopy copy c:\myDir\file1.txt "https://storageaccount1207.blob.core.windows.net/container1?$token"
Copy file to Azure Container using SAS Token Authentication

Met dezelfde token (ervan uitgaande dat deze nog binnen de geldigheidsperiode valt), kun je ook bestanden downloaden van de Azure-opslag naar de lokale opslag. Het voorbeeld hieronder kopieert het bestand file1.txt van de Azure-opslag met een SAS-token.

In de onderstaande code kun je zien dat deze keer in plaats van het token toe te voegen na de container naam, eerst de naam van het bestand wordt toegevoegd. Dit instrueert AzCopy om een specifiek bestand te kopiëren met behulp van de SAS-authenticatie.

> azcopy copy ('https://storageaccount1207.blob.core.windows.net/container1/file1.txt'+$token) C:\MyDir\
Copy file from Azure Container with SAS Token

Map kopiëren naar/van Azure-opslag

Als je veel bestanden hebt om over te zetten of te downloaden van Azure, kun je ook hele mappen in één keer kopiëren met behulp van azcopy copy. Het commando hiervoor verschilt niet veel van wat je gebruikt om afzonderlijke bestanden te kopiëren.

Hieronder zie je een commando dat C:\\MyDir recursief kopieert naar de blob-container container1. De --recursive-parameter is hier de sleutel. De --recursive-vlag aan het einde van het commando geeft aan dat alle inhoud van de oudermap en eventuele submappen die kunnen bestaan, worden gekopieerd.

> azcopy copy C:\MyDir\ https://storageaccount1207.blob.core.windows.net/container1/ --recursive

Je kunt hieronder zien dat tien bestanden binnen de map C:\MyDir succesvol zijn gekopieerd op basis van de job samenvatting.

Copying a directory and its contents

Bestanden kopiëren tussen Azure-opslagcontainers

Gedurende dit artikel heb je de azcopy copy opdracht behoorlijk vaak gebruikt. Er is geen reden om nu te stoppen! Niet alleen kun je mappen en bestanden kopiëren van/naar on-prem, je kunt ook blobs kopiëren tussen opslagcontainers.

In plaats van een lokaal bestandspad te gebruiken, zou je de parameters aanpassen om één blob-container-URL als bron en een andere blob-container-URL als bestemming te gebruiken.

Je hebt al twee opslagcontainers gemaakt genaamd container1 en container2. In dit gedeelte gaan we bestanden, mappen en zelfs de hele blob-container kopiëren van container1 naar container2.

Om bestanden van de ene container naar de andere te kopiëren, genereer eerst een nieuwe SAS-token. Aangezien de twee containers toebehoren aan dezelfde opslagaccount, kan dezelfde token worden gebruikt voor zowel de bron als de bestemming.

Als je ervan uitgaat dat je de tokenstring hebt opgeslagen in een variabele genaamd $token (indien je azcopy met PowerShell uitvoert), kun je gemakkelijk alle gegevens van de ene opslagcontainer naar de andere kopiëren zoals hieronder getoond.

Herinnering: Bekijk het artikel Hoe je een Azure SAS-token genereert om toegang te krijgen tot opslagaccounts als je niet weet hoe je een SAS-token moet genereren.

> azcopy copy ('https://storageaccount1207.blob.core.windows.net/container1'+$token) ('https://storageaccount1207.blob.core.windows.net/container2'+$token) --recursive
Copying data between containers using SAS Token authentication

Andere handige AzCopy-operaties

Naast het kopiëren van bestanden en mappen, zijn er andere kopieeroperaties die je kunt uitvoeren met AzCopy. Enkele hiervan zijn:

  • Specifieke bestanden kopiëren (gefilterd).
  • Een map kopiëren naar een andere map in de blob-container.
  • Kopiëren van Amazon AWS naar Azure-opslag.

Als je alles wilt leren over wat AzCopy kan doen, bekijk dan de helpinhoud door azcopy -h uit te voeren. Je vindt veel andere handige commando’s naast het copy-commando waarop je je alleen hebt gericht in dit artikel. Je kunt hieronder een screenshot van deze commando’s zien.

List of AzCopy Commands

Om meer te weten te komen, bezoek je de AzCopy-kopieer pagina. Vervolgens kun je deze zelf proberen met de technieken die je in dit artikel hebt geleerd.

Samenvatting

In dit artikel heb je geleerd hoe je AzCopy kunt gebruiken om bestanden over te zetten tussen de lokale en Azure-opslag. Je hebt ook geleerd hoe je deze taken kunt uitvoeren met behulp van OAuth en Shared Access Signature Token voor authenticatie. Je hebt gezien welke andere AzCopy-commando’s beschikbaar zijn en hoe je ze kunt vinden.

I hope this article has helped you get started with AzCopy and sparked your interest in using it more as part of your administration or development tasks. Thank you!

Source:
https://adamtheautomator.com/azcopy-storage/