Automatisierung ist heutzutage überall in der IT präsent. Von der Bereitstellung virtueller Maschinen bis zur Bereitstellung von Websites ist Automatisierung besonders wichtig, insbesondere wenn Sie mit mehreren Elementen umgehen müssen. Selbst das Dateimanagement zwischen Azure Storage und Ihrem lokalen Rechner kann mithilfe eines Dienstprogramms namens \textit{AzCopy} automatisiert werden.
\textit{AzCopy} ist ein eigenständiges Dienstprogramm, das das Management von Azure Storage ermöglicht. Mit \textit{AzCopy} können mehrere Operationen durchgeführt werden. In diesem Artikel werden wir uns auf folgende Punkte konzentrieren:
- Erstellung von \textit{Storage Containers}
- Kopieren lokaler Dateien in Container
- Kopieren von Dateien zwischen Containern
Beginnen wir!
Wenn Sie lieber durch Videos lernen, können Sie auch ein TechSnips-Video ansehen, das eng mit dem zusammenhängt, was Sie in diesem Artikel lernen werden.
Voraussetzungen
Dieser Artikel wird eine schrittweise Demonstration verschiedener Aufgaben durchführen. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie die folgende Liste von Anforderungen erfüllen, bevor Sie beginnen.
- Eine Azure-Abonnement. Wenn Sie dies noch nicht haben, können Sie eine Testversion anfordern.
- Azure Storage Account. Bitte beziehen Sie sich auf \textit{Erstellen Sie ein Speicherkonto}, um mehr zu erfahren.
- AzCopy wurde heruntergeladen und authentifiziert (lesen Sie den Artikel Wie man das AZCopy-Tool herunterlädt und installiert, um zu erfahren, wie Sie dies einrichten können).
Erstellen neuer Speichercontainer
Zunächst verwenden wir AzCopy, um neue Speichercontainer in einem vorhandenen Speicherkonto zu erstellen. Im Beispiel werden Sie zwei neue Container mit den Namen container1 und container2 erstellen.
Hinweis: Bevor Sie einen neuen Container erstellen, müssen Sie die Endpunkt-URL des Containers kennen. Die Endpunkt-URL folgt dem Format: https://[storageaccountname].blob.core.windows.net/[container_name].
Zuerst definieren Sie die Endpunkt-URL. In diesem Beispiel werden die Container in einem Speicherkonto mit dem Namen storageaccount1207 erstellt und es werden zwei Endpunkt-URLs erstellt:
- https://storageaccount1207.blob.core.windows.net/container1
- https://storageaccount1207.blob.core.windows.net/container2
Jetzt, da Sie die Endpunkt-URLs kennen, verwenden Sie den Befehl azcopy make
und übergeben Sie jede Endpunkt-URL als Parameter, wie unten gezeigt.

Kopieren von Dateien zu/von Azure-Containern
Wenn Sie einen Speichercontainer erstellt haben, fragen Sie sich wahrscheinlich: „Wie lade ich in Azure Blob Storage hoch?“. Sie können dies mit AzCopy und dem Befehl azcopy copy
durchführen. Sie können AzCopy verwenden, um PSTs, VHDs und mehr zu kopieren.
Verwendung der OAuth-Authentifizierung
Beim Verwenden von AzCopy zum Kopieren von Dateien in Blobs haben Sie einige Optionen für die Authentifizierung. Da davon ausgegangen wird, dass Sie sich bereits bei Azure Storage authentifiziert haben (da dies in den Voraussetzungen enthalten war), können Sie einfach azcopy copy
ausführen und einen lokalen Dateipfad gefolgt von einer Container-Endpunkt-URL wie unten gezeigt angeben.
Indem Sie keinen anderen Parameter angeben, verwenden Sie die OAuth-Authentifizierung.

Wie wissen Sie, ob die Datei in den Azure-Blob-Container kopiert wurde? Sie können den Befehl azcopy list [Container-URL]
verwenden. Sehen Sie sich das untenstehende Beispiel an, das zeigt, dass die Datei file1.txt
existiert.

Um eine Datei aus dem Azure-Blob in das lokale Verzeichnis herunterzuladen, müssen Sie nur die Plätze der Quell- und Zielargumente vertauschen. Sehen Sie sich das untenstehende Beispiel an.

Verwendung eines Shared Access Signature (SAS) Token
Um einen SAS-Token zu verwenden, müssen Sie zuerst einen generieren. Wenn Sie nicht wissen, wie Sie einen SAS-Token generieren können, schauen Sie sich den Artikel Wie man ein Azure SAS-Token generiert, um auf Speicherkonten zuzugreifen an.
Wenn Sie einen SAS-Token haben, können Sie ihn als HTTP-Parameter an die URL des Zielcontainers anhängen, wie unten gezeigt.
Wenn Sie PowerShell verwenden und den Token in einer Variablen gespeichert haben (z.B. $token
), können Sie diese Variable anstelle des vollständigen Token-Strings wie im folgenden Befehl übergeben.

Unter Verwendung des gleichen Tokens (sofern es sich noch innerhalb seines Gültigkeitszeitraums befindet) können Sie auch Dateien aus dem Azure-Speicher in den lokalen Speicher herunterladen. Das folgende Beispiel kopiert die Datei file1.txt
aus dem Azure-Speicher mit einem SAS-Token.
Im folgenden Code sehen Sie, dass dieses Mal anstelle des Anfügens des Tokens nach dem Containernamen zuerst der Dateiname hinzugefügt wird. Dies weist AzCopy an, eine bestimmte Datei mit der SAS-Authentifizierung zu kopieren.

Kopieren eines Verzeichnisses von/nach Azure Storage
Wenn Sie viele Dateien von Azure übertragen oder herunterladen müssen, können Sie auch ganze Verzeichnisse auf einmal mit azcopy copy
kopieren. Der Befehl dafür unterscheidet sich nicht so sehr von dem, den Sie zum Kopieren einzelner Dateien verwenden.
Unten sehen Sie einen Befehl, der das Verzeichnis C:\\MyDir
rekursiv in den Blob-Container container1 kopiert. Der Parameter --recursive
ist hier entscheidend. Die --recursive
-Flag am Ende des Befehls zeigt an, dass alle Inhalte aus dem übergeordneten Verzeichnis und allen darin möglicherweise vorhandenen Unterverzeichnissen kopiert werden.
Sie können unten sehen, dass zehn Dateien im Ordner C:\MyDir erfolgreich basierend auf der Zusammenfassung des Jobs kopiert wurden.

Kopieren von Dateien zwischen Azure-Speichercontainern
Im Verlauf dieses Artikels haben Sie ziemlich oft den Befehl azcopy copy
verwendet. Es besteht kein Grund, jetzt damit aufzuhören! Sie können nicht nur Verzeichnisse und Dateien von/von On-Prem kopieren, sondern auch Blobs zwischen Speichercontainern kopieren.
Anstatt einen lokalen Dateipfad zu verwenden, ändern Sie die Parameter, um eine Blob-Container-URL als Quelle und eine andere Blob-Container-URL als Ziel zu verwenden.
Sie haben bereits zwei Speichercontainer namens container1 und container2 erstellt. In diesem Abschnitt kopieren wir Dateien, Verzeichnisse und sogar den gesamten Blob-Container von container1 nach container2.
Um Dateien von einem Container in einen anderen zu kopieren, generieren Sie zunächst ein neues SAS-Token. Da die beiden Container demselben Speicherkonto gehören, kann dasselbe Token für Quelle und Ziel verwendet werden.
Angenommen, Sie haben den Token-String in einer Variable namens $token
gespeichert (wenn Sie azcopy mit PowerShell ausführen), können Sie alle Daten von einem Speichercontainer in den anderen kopieren, wie unten gezeigt.
Erinnerung: Werfen Sie einen Blick auf den Artikel „So generieren Sie ein Azure SAS-Token, um auf Speicherkonten zuzugreifen“, wenn Sie nicht wissen, wie Sie ein SAS-Token generieren.

Weitere nützliche AzCopy-Operationen
Neben dem Kopieren von Dateien und Ordnern gibt es andere Kopieroperationen, die Sie mit AzCopy durchführen können. Einige davon sind:
- Kopieren bestimmter Dateien (gefiltert).
- Kopieren eines Verzeichnisses in ein anderes Verzeichnis im Blob-Container.
- Kopieren von Amazon AWS zu Azure Storage.
Wenn Sie alles über die Funktionen von AzCopy erfahren möchten, sehen Sie sich den Hilfetext an, indem Sie azcopy -h
ausführen. Neben dem copy
-Befehl, auf den Sie sich in diesem Artikel ausschließlich konzentriert haben, finden Sie viele andere nützliche Befehle. Eine Abbildung dieser Befehle sehen Sie unten.

Um mehr zu erfahren, besuchen Sie die Seite AzCopy Copy. Anschließend können Sie diese mit den in diesem Artikel gelernten Techniken selbst ausprobieren.
Zusammenfassung
In diesem Artikel haben Sie gelernt, wie Sie AzCopy zum Übertragen von Dateien zwischen lokalem Speicher und Azure-Speicher verwenden. Sie haben auch gelernt, diese Aufgaben unter Verwendung von OAuth und Shared Access Signature Token für die Authentifizierung durchzuführen. Sie haben gesehen, welche anderen AzCopy-Befehle verfügbar sind und wie Sie sie finden können.
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!