Kopieren von Blobs zwischen Azure-Speicherkonten mithilfe von AzCopy
Sie können Blobs, Verzeichnisse und Container mithilfe des Befehlszeilenprogramms AzCopy v10 zwischen Speicherkonten kopieren.
Beispiele für andere Arten von Aufgaben, z. B. das Hochladen von Dateien, das Herunterladen von Blobs und das Synchronisieren mit Blob Storage finden Sie unter den Links im Abschnitt Nächste Schritte dieses Artikels.
AzCopy verwendet die Server-zu-Server-APIs, sodass Daten direkt zwischen Speicherservern kopiert werden. Für diese Kopiervorgänge wird nicht die Netzwerkbandbreite Ihres Computers genutzt.
Erste Schritte
Lesen Sie den Artikel Erste Schritte mit AzCopy, um AzCopy herunterzuladen und zu erfahren, wie Sie dem Speicherdienst Autorisierungsanmeldeinformationen bereitstellen können.
Hinweis
Die Beispiele in diesem Artikel setzen voraus, dass Sie die Autorisierungsanmeldeinformationen mithilfe von Azure Active Directory (Azure AD) bereitgestellt haben und Ihre Azure AD-Identität über die richtigen Rollenzuweisungen für Quell- und Zielkonten verfügt.
Alternativ können Sie entweder der Quell- oder Ziel-URL in jedem AzCopy-Befehl ein SAS-Token anfügen. Beispiel: azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>'
.
Richtlinien
Wenden Sie die folgenden Richtlinien auf Ihre AzCopy-Befehle an.
Ihr Client muss über Netzwerkzugriff auf die Quell- und Zielspeicherkonten verfügen. Weitere Informationen zum Konfigurieren der Netzwerkeinstellungen für die einzelnen Speicherkonten finden Sie unter Konfigurieren von Azure Storage-Firewalls und virtuellen Netzwerken.
Wenn Sie in ein Premium-Blockblob-Speicherkonto kopieren, lassen Sie die Zugriffsebene für ein Blob beim Kopiervorgang weg, indem Sie den Wert für
s2s-preserve-access-tier
auffalse
festlegen (Beispiel:--s2s-preserve-access-tier=false
). Premium-Blockblob-Speicherkonten unterstützen keine Zugriffsebenen.Wenn Sie in ein Konto oder aus einem Konto mit einem hierarchischen Namespace kopieren, verwenden Sie in der URL-Syntax
blob.core.windows.net
stattdfs.core.windows.net
. Der Multiprotokollzugriff für Data Lake Storage ermöglicht Ihnen die Verwendung vonblob.core.windows.net
. Er ist die einzige unterstützte Syntax für Kopierszenarien zwischen Konten (Konto-zu-Konto).Sie können den Durchsatz von Kopiervorgängen erhöhen, indem Sie den Wert der Umgebungsvariablen
AZCOPY_CONCURRENCY_VALUE
festlegen. Weitere Informationen finden Sie unter Erhöhen der Parallelität.Wenn die Quellblobs Indextags haben und Sie diese Tags beibehalten möchten, müssen Sie sie auf die Zielblobs erneut anwenden. Informationen zum Festlegen von Indextags finden Sie im Abschnitt Kopieren von Blobs und Hinzufügen von Indextags dieses Artikels.
Kopieren eines Blobs
Kopieren Sie ein Blob mit dem Befehl azcopy copy in ein anderes Speicherkonto.
Tipp
In diesem Beispiel werden Pfadargumente in einfache Anführungszeichen ('') eingeschlossen. Verwenden Sie in allen Befehlsshells außer der Windows-Befehlszeile (cmd.exe) einfache Anführungszeichen. Wenn Sie eine Windows-Befehlszeile (cmd.exe) verwenden, müssen Sie Pfadargumente in doppelte Anführungszeichen ("") anstelle von einfachen Anführungszeichen ('') einschließen.
Syntax
azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path>'
Beispiel
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myTextFile.txt' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myTextFile.txt'
Der Kopiervorgang verläuft synchron – wenn also der Befehl zurückgegeben wird, bedeutet dies, dass alle Dateien kopiert wurden.
Kopieren eines Verzeichnisses
Kopieren Sie ein Verzeichnis mit dem Befehl azcopy copy in ein anderes Speicherkonto.
Tipp
In diesem Beispiel werden Pfadargumente in einfache Anführungszeichen ('') eingeschlossen. Verwenden Sie in allen Befehlsshells außer der Windows-Befehlszeile (cmd.exe) einfache Anführungszeichen. Wenn Sie eine Windows-Befehlszeile (cmd.exe) verwenden, müssen Sie Pfadargumente in doppelte Anführungszeichen ("") anstelle von einfachen Anführungszeichen ('') einschließen.
Syntax
azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<directory-path>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>' --recursive
Beispiel
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive
Der Kopiervorgang verläuft synchron – wenn also der Befehl zurückgegeben wird, bedeutet dies, dass alle Dateien kopiert wurden.
Kopieren eines Containers
Kopieren Sie einen Container mit dem Befehl azcopy copy in ein anderes Speicherkonto.
Tipp
In diesem Beispiel werden Pfadargumente in einfache Anführungszeichen ('') eingeschlossen. Verwenden Sie in allen Befehlsshells außer der Windows-Befehlszeile (cmd.exe) einfache Anführungszeichen. Wenn Sie eine Windows-Befehlszeile (cmd.exe) verwenden, müssen Sie Pfadargumente in doppelte Anführungszeichen ("") anstelle von einfachen Anführungszeichen ('') einschließen.
Syntax
azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>' --recursive
Beispiel
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive
Der Kopiervorgang verläuft synchron – wenn also der Befehl zurückgegeben wird, bedeutet dies, dass alle Dateien kopiert wurden.
Kopieren von Containern, Verzeichnissen und Blobs
Kopieren Sie alle Container, Verzeichnisse und Blobs mit dem Befehl azcopy copy in ein anderes Speicherkonto.
Tipp
In diesem Beispiel werden Pfadargumente in einfache Anführungszeichen ('') eingeschlossen. Verwenden Sie in allen Befehlsshells außer der Windows-Befehlszeile (cmd.exe) einfache Anführungszeichen. Wenn Sie eine Windows-Befehlszeile (cmd.exe) verwenden, müssen Sie Pfadargumente in doppelte Anführungszeichen ("") anstelle von einfachen Anführungszeichen ('') einschließen.
Syntax
azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/' 'https://<destination-storage-account-name>.blob.core.windows.net/' --recursive
Beispiel
azcopy copy 'https://mysourceaccount.blob.core.windows.net/' 'https://mydestinationaccount.blob.core.windows.net' --recursive
Der Kopiervorgang verläuft synchron – wenn also der Befehl zurückgegeben wird, bedeutet dies, dass alle Dateien kopiert wurden.
Kopieren von Blobs und Hinzufügen von Indextags
Kopieren Sie Blobs in ein anderes Speicherkonto, und fügen Sie dem Zielblob Blobindextags (Vorschau) hinzu.
Wenn Sie die Azure AD-Autorisierung verwenden, muss Ihrem Sicherheitsprinzipal die Rolle Besitzer von Speicherblobdaten zugewiesen werden, oder ihm muss über eine benutzerdefinierte Azure-Rolle die Berechtigung für den Azure-RessourcenanbietervorgangMicrosoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
erteilt werden. Wenn Sie ein SAS-Token (Shared Access Signature) verwenden, muss es über die SAS-Berechtigung t
den Zugriff auf die Blobtags ermöglichen.
Verwenden Sie zum Hinzufügen von Tags die Option --blob-tags
zusammen mit einem URL-codierten Schlüssel-Wert-Paar.
Wenn Sie beispielsweise den Schlüssel my tag
und den Wert my tag value
hinzufügen möchten, würden Sie dem Zielparameter --blob-tags='my%20tag=my%20tag%20value'
hinzufügen.
Trennen Sie mehrere Indextags durch ein kaufmännisches Und-Zeichen (&
). Wenn Sie beispielsweise den Schlüssel my second tag
und den Wert my second tag value
hinzufügen möchten, würde die gesamte Optionszeichenfolge wie folgt lauten: --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
.
In den folgenden Beispielen wird die Verwendung der Option --blob-tags
gezeigt.
Tipp
In diesen Beispielen werden Pfadargumente in einfache Anführungszeichen ('') eingeschlossen. Verwenden Sie in allen Befehlsshells außer der Windows-Befehlszeile (cmd.exe) einfache Anführungszeichen. Wenn Sie eine Windows-Befehlszeile (cmd.exe) verwenden, müssen Sie Pfadargumente in doppelte Anführungszeichen ("") anstelle von einfachen Anführungszeichen ('') einschließen.
Blobbeispiel
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myTextFile.txt' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myTextFile.txt' --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
Verzeichnisbeispiel
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
Containerbeispiel
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
Kontobeispiel
azcopy copy 'https://mysourceaccount.blob.core.windows.net/' 'https://mydestinationaccount.blob.core.windows.net' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
Der Kopiervorgang verläuft synchron – wenn also der Befehl zurückgegeben wird, bedeutet dies, dass alle Dateien kopiert wurden.
Hinweis
Wenn Sie ein Verzeichnis, einen Container oder ein Konto für die Quelle angeben, haben alle in das Ziel kopierten Blobs dieselben Tags, die Sie im Befehl angeben.
Kopieren mit optionalen Flags
Sie können den Kopiervorgang mit optionalen Flags optimieren. Hier sind einige Beispiele angegeben.
Szenario | Flag |
---|---|
Kopieren Sie Blobs als Block-, Seiten- oder Anfügeblobs. | --blob-type=[BlockBlob|PageBlob|AppendBlob] |
Kopieren auf eine bestimmte Zugriffsebene (z. B. die Archivebene) | --block-blob-tier=[None|Hot|Cool|Archive] |
Automatisches Dekomprimieren von Dateien | --decompress=[gzip|deflate] |
Eine vollständige Liste finden Sie unter Optionen.
Nächste Schritte
Weitere Beispiele finden Sie in diesen Artikeln:
- Beispiele: Hochladen
- Beispiele: Herunterladen
- Beispiele: Synchronisieren
- Beispiele: Amazon S3-Buckets
- Beispiele: Google Cloud Storage
- Beispiele: Azure Files
- Tutorial: Migrieren von lokalen Daten zum Cloudspeicher mithilfe von AzCopy
Lesen Sie diese Artikel, um Einstellungen zu konfigurieren, die Leistung zu optimieren und Probleme zu beheben: