Bestanden overdragen met AzCopy: OAuth en SAS-token

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

AzCopy is een op zichzelf staand hulpprogramma waarmee het beheer van Azure-opslag mogelijk is. Met AzCopy kunnen verschillende handelingen worden uitgevoerd. In dit artikel richten we ons 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 beter 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 van verschillende taken gegeven. Zorg ervoor dat je aan de onderstaande lijst met vereisten voldoet voordat je begint.

Nieuwe opslagcontainers maken

Allereerst 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 naam container1 en container2.

Let op: 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 met twee eindpunt-URL’s:

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

Als u eenmaal een opslagcontainer heeft gemaakt, vraagt u zich waarschijnlijk af: “Hoe kan ik uploaden naar Azure Blob-opslag?”. Met AzCopy kunt u dit doen met behulp van de azcopy copy-opdracht. U kunt AzCopy gebruiken om PST’s, VHD’s en meer te kopiëren.

OAuth-authenticatie gebruiken

Bij het gebruik van AzCopy om bestanden naar blobs te kopiëren, heb je een paar opties voor authenticatie. Aangezien wordt verondersteld dat je al geauthenticeerd bent bij 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 te specificeren, gebruik je 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 of het bestand naar de Azure-blobcontainer is gekopieerd? Je kunt het azcopy list [container-url] commando gebruiken. Zie het voorbeeld hieronder 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 maar de plaatsen van de bron- en bestemmingsargumenten om te wisselen. Zie het voorbeeld hieronder.

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

Het gebruik van een gedeelde toegangs-handtekening (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 bestemmingscontainer 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 hebt opgeslagen in een variabele (bijv. $token), kun je die variabele doorgeven in plaats van de volledige tokenstring 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

Gebruikmakend van hetzelfde token (onder voorbehoud dat het nog binnen zijn geldigheidsperiode valt), kunt u ook bestanden downloaden van de Azure-opslag naar de lokale opslag. Het voorbeeld hieronder kopieert het bestand file1.txt vanuit de Azure-opslag met een SAS-token.

In de onderstaande code kunt u 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 geeft AzCopy de instructie 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 u veel bestanden hebt om over te zetten of te downloaden van Azure, kunt u ook hele mappen in één keer kopiëren met azcopy copy. Het commando hiervoor verschilt niet veel van wat u gebruikt om enkele bestanden te kopiëren.

Hieronder ziet u een commando dat de map 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 bovenliggende map en eventuele submappen die kunnen bestaan, worden gekopieerd.

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

Hieronder kunt u zien dat tien bestanden binnen de map C:\MyDir succesvol zijn gekopieerd op basis van de samenvatting van de taak.

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 de bron en een andere blob-container-URL als de bestemming te gebruiken.

Je hebt al twee opslagcontainers gemaakt genaamd container1 en container2. In deze sectie, laten 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 tokenreeks 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 wordt 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 kopieerbewerkingen 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 weten over wat AzCopy kan doen, bekijk dan de helpinhoud door azcopy -h uit te voeren. Je zult veel andere handige commando’s vinden naast het copy commando waarop je je in dit artikel uitsluitend hebt gericht. Hieronder zie je een screenshot van deze commando’s.

List of AzCopy Commands

Om meer te leren, bezoek de AzCopy Kopie 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 tussen lokale opslag en Azure-opslag over te zetten. 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/