Dateien mit AzCopy übertragen: OAuth und SAS-Token

Die Automatisierung ist heutzutage überall in der IT vorhanden. Von der Bereitstellung virtueller Maschinen bis hin zur Bereitstellung von Websites ist die Automatisierung besonders wichtig, insbesondere wenn Sie mit mehreren Elementen umgehen müssen. Selbst das Dateimanagement zwischen Azure-Speicher und Ihrem lokalen Rechner kann mithilfe eines Dienstprogramms namens AzCopy automatisiert werden.

AzCopy ist ein eigenständiges Dienstprogramm, das die Verwaltung von Azure-Speicher ermöglicht. Mit AzCopy können mehrere Operationen durchgeführt werden. In diesem Artikel werden wir uns auf folgende Punkte konzentrieren:

  • Erstellen von Speichercontainern
  • Kopieren lokaler Dateien in Container
  • Kopieren von Dateien zwischen Containern

Lassen Sie uns beginnen!

Wenn Sie besser durch Videos lernen, können Sie auch ein TechSnips-Video ansehen, das eng mit dem übereinstimmt, was Sie in diesem Artikel lernen werden.

Voraussetzungen

In diesem Artikel wird eine Schritt-für-Schritt-Anleitung gezeigt, die verschiedene Aufgaben demonstriert. Wenn Sie dem folgen möchten, stellen Sie sicher, dass Sie die unten aufgeführten Anforderungen erfüllt haben, bevor Sie beginnen.

Neue Speichercontainer erstellen

Zunächst verwenden wir AzCopy, um neue Speichercontainer in einem vorhandenen Speicherkonto zu erstellen. In dem Beispiel, das Sie verwenden werden, erstellen Sie zwei neue Container mit den Namen container1 und container2.

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, wobei zwei Endpunkt-URLs erstellt werden:

Jetzt, da Sie die Endpunkt-URLs kennen, verwenden Sie den Befehl azcopy make und übergeben Sie jede Endpunkt-URL als Parameter, wie unten gezeigt.

> 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

Dateien zu/von Azure-Containern kopieren

Wenn Sie einen Speichercontainer erstellt haben, fragen Sie sich wahrscheinlich: „Wie lade ich auf Azure Blob Storage hoch?“. Mit AzCopy können Sie dies mit 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 angemeldet 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.

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

Wie wissen Sie, ob die Datei in den Azure Blob-Container kopiert wurde? Sie können den Befehl azcopy list [Container-URL] verwenden. Im untenstehenden Beispiel sehen Sie, dass die Datei file1.txt existiert.

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

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

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

Verwendung eines Shared Access Signature (SAS)-Tokens

Um ein SAS-Token zu verwenden, müssen Sie zuerst eins generieren. Wenn Sie nicht wissen, wie Sie ein SAS-Token generieren können, lesen Sie den Artikel Wie man ein Azure SAS-Token generiert, um auf Speicherkonten zuzugreifen.

Sobald Sie ein SAS-Token zur Verfügung haben, können Sie das Token an die URL des Zielcontainers als HTTP-Parameter anhängen, wie unten gezeigt.

> 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'

Wenn Sie PowerShell verwenden und das 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.

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

Unter Verwendung desselben Tokens (unter der Annahme, dass es sich immer noch innerhalb seines Gültigkeitszeitraums befindet), können Sie auch Dateien aus dem Azure-Speicher auf dem lokalen Speicherplatz 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 Anhängens des Tokens nach dem Behälternamen zuerst der Name der Datei hinzugefügt wird. Dies weist AzCopy an, eine bestimmte Datei mit der SAS-Authentifizierung zu kopieren.

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

Kopieren eines Verzeichnisses von/zu Azure-Speicher

Wenn Sie viele Dateien zum Übertragen oder Herunterladen von Azure haben, können Sie auch ganze Verzeichnisse auf einmal kopieren mit azcopy copy. 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-Behälter container1 kopiert. Der Parameter --recursive ist hier der Schlüssel. Die Flagge --recursive am Ende des Befehls gibt an, dass alle Inhalte aus dem übergeordneten Verzeichnis und den möglicherweise vorhandenen Unterverzeichnissen kopiert werden.

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

Sie können unten sehen, dass zehn Dateien im Ordner C:\MyDir erfolgreich basierend auf der Zusammenfassung des Jobs kopiert wurden.

Copying a directory and its contents

Kopieren von Dateien zwischen Azure-Speicherbehältern

Im Verlauf dieses Artikels haben Sie den Befehl azcopy copy recht häufig verwendet. Es besteht kein Grund, jetzt 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 sowohl für die Quelle als auch für das Ziel verwendet werden.

Vorausgesetzt, Sie haben den Token-String in einer Variable namens $token gespeichert (wenn Sie azcopy mit PowerShell ausführen), können Sie ganz einfach alle Daten von einem Speichercontainer in den anderen kopieren, wie unten gezeigt.

Erinnerung: Schauen Sie sich den Artikel „So generieren Sie ein Azure SAS-Token zum Zugriff auf Speicherkonten“ an, wenn Sie nicht wissen, wie Sie ein SAS-Token generieren.

> 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

Weitere nützliche AzCopy-Operationen

Abgesehen vom Kopieren von Dateien und Ordnern können Sie mit AzCopy auch andere Kopieroperationen durchführen. 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 das tun möchten, was AzCopy kann, schauen Sie sich den Hilfsinhalt 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 Übersicht über diese Befehle finden Sie unten.

List of AzCopy Commands

Um mehr zu erfahren, besuchen Sie die AzCopy-Kopieren-Seite. Dann können Sie diese selbst ausprobieren, indem Sie die Techniken anwenden, die Sie in diesem Artikel gelernt haben.

Zusammenfassung

In diesem Artikel haben Sie gelernt, wie Sie AzCopy verwenden, um Dateien zwischen dem lokalen Speicher und dem Azure-Speicher zu übertragen. Sie haben auch gelernt, wie Sie diese Aufgaben unter Verwendung von OAuth und Shared Access Signature Token für die Authentifizierung durchführen können. 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!

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