Hochladen von Dateien in Azure Blob Storage mithilfe von AzCopy
Mit dem Befehlszeilenprogramm AzCopy v10 können Sie Dateien und Verzeichnisse in Blob Storage hochladen.
Beispiele für andere Arten von Aufgaben, z. B. das Herunterladen von Dateien, das Synchronisieren mit Blob Storage oder das Kopieren von Blobs zwischen Konten, finden Sie unter den Links im Abschnitt Nächste Schritte dieses Artikels.
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
In den Beispielen in diesem Artikel wird davon ausgegangen, dass Sie Anmeldeinformationen für die Autorisierung mithilfe von Microsoft Entra ID bereitgestellt haben.
Wenn Sie lieber ein SAS-Token für die Autorisierung des Zugriffs auf Blobdaten verwenden möchten, können Sie dieses Token in jedem AzCopy-Befehl an die Ressourcen-URL anfügen. Beispiel: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'
.
Erstellen eines Containers
Sie können den Befehl azcopy make verwenden, um einen Container zu erstellen.
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 make 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>'
Beispiel
azcopy make 'https://mystorageaccount.blob.core.windows.net/mycontainer'
Beispiel (Data Lake Storage-Endpunkt)
azcopy make 'https://mystorageaccount.dfs.core.windows.net/mycontainer'
Ausführliche Referenzdokumente finden Sie unter azcopy make.
Hochladen einer Datei
Laden Sie eine Datei mithilfe des Befehls azcopy copy hoch.
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 '<local-file-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-name>'
Beispiel
azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt'
Beispiel (Data Lake Storage-Endpunkt)
azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myTextFile.txt'
Sie können eine Datei auch mit einem Platzhaltersymbol (*) an einer beliebigen Stelle im Dateipfad oder Dateinamen hochladen. Beispiel: 'C:\myDirectory\*.txt'
oder C:\my*\*.txt
Hochladen eines Verzeichnisses
Laden Sie ein Verzeichnis mithilfe des Befehls azcopy copy hoch.
Dieses Beispiel kopiert ein Verzeichnis (sowie alle in diesem Verzeichnis enthaltenen Dateien) in einen Blobcontainer. Das Resultat ist ein gleichnamiges Verzeichnis im Container.
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 '<local-directory-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --recursive
Beispiel
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive
Beispiel (Data Lake Storage-Endpunkt)
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer' --recursive
Um ein Verzeichnis innerhalb des Containers zu kopieren, geben Sie einfach den Namen des Verzeichnisses in Ihrer Befehlszeichenfolge an.
Beispiel
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory' --recursive
Beispiel (Data Lake Storage-Endpunkt)
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myBlobDirectory' --recursive
Wenn Sie den Namen eines Verzeichnisses angeben, das im Container nicht vorhanden ist, erstellt AzCopy ein neues Verzeichnis dieses Namens.
Hochladen von Verzeichnisinhalten
Laden Sie den Inhalt eines Verzeichnisses mithilfe des Befehls azcopy copy hoch. Verwenden Sie das Platzhaltersymbol (*) zum Hochladen des Inhalts, ohne das enthaltende Verzeichnis selbst zu kopieren.
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 '<local-directory-path>\*' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<directory-path>'
Beispiel
azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory'
Beispiel (Data Lake Storage-Endpunkt)
azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myBlobDirectory'
Fügen Sie das Flag --recursive
an, um Dateien in allen Unterverzeichnissen hochzuladen.
Hochladen bestimmter Dateien
Sie können bestimmte Dateien mithilfe von vollständigen Dateinamen, partiellen Namen mit Platzhalterzeichen (*) oder mithilfe von Datums- und Uhrzeitwerten hochladen.
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.
Angeben mehrerer vollständiger Dateinamen
Verwenden Sie den Befehl azcopy copy mit der Option --include-path
. Trennen Sie einzelne Dateinamen durch ein Semikolon (;
).
Syntax
azcopy copy '<local-directory-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --include-path <semicolon-separated-file-list>
Beispiel
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --include-path 'photos;documents\myFile.txt' --recursive'
Beispiel (Data Lake Storage-Endpunkt)
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer' --include-path 'photos;documents\myFile.txt' --recursive'
In diesem Beispiel überträgt AzCopy das Verzeichnis C:\myDirectory\photos
und die Datei C:\myDirectory\documents\myFile.txt
. Fügen Sie die Option --recursive
ein, um alle Dateien im Verzeichnis C:\myDirectory\photos
zu übertragen.
Mit der Option --exclude-path
können Sie auch Dateien ausschließen. Weitere Informationen finden Sie in den Referenzdokumenten zu azcopy copy.
Verwenden von Platzhalterzeichen
Verwenden Sie den Befehl azcopy copy mit der Option --include-pattern
. Geben Sie Namen mithilfe von Platzhalterzeichen teilweise an. Trennen Sie die Namen durch Semikolons (;
).
Syntax
azcopy copy '<local-directory-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --include-pattern <semicolon-separated-file-list-with-wildcard-characters>
Beispiel
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --include-pattern 'myFile*.txt;*.pdf*'
Beispiel (Data Lake Storage-Endpunkt)
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer' --include-pattern 'myFile*.txt;*.pdf*'
Mit der Option --exclude-pattern
können Sie auch Dateien ausschließen. Weitere Informationen finden Sie in den Referenzdokumenten zu azcopy copy.
Die Optionen --include-pattern
und --exclude-pattern
gelten nur für Dateinamen und nicht für den Pfad. Wenn Sie alle Textdateien in einer Verzeichnisstruktur kopieren möchten, verwenden Sie die Option -recursive
, um die gesamte Verzeichnisstruktur abzurufen. Verwenden Sie dann -include-pattern
, und geben Sie *.txt
an, um alle Textdateien abzurufen.
Hochladen von Dateien, die vor oder nach einem bestimmten Datum und einer bestimmten Uhrzeit geändert wurden
Verwenden Sie den Befehl azcopy copy mit der Option --include-before
oder --include-after
. Geben Sie ein Datum und eine Uhrzeit im ISO 8601-Format an (z. B. 2020-08-19T15:04:00Z
).
In den folgenden Beispielen werden Dateien hochgeladen, die am oder nach dem angegebenen Datum geändert wurden.
Syntax
azcopy copy '<local-directory-path>\*' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-or-directory-name>' --include-after <Date-Time-in-ISO-8601-format>
Beispiel
azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory' --include-after '2020-08-19T15:04:00Z'
Beispiel (Data Lake Storage-Endpunkt)
azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/FileDirectory' --include-after '2020-08-19T15:04:00Z'
Ausführliche Informationen finden Sie in den azcopy copy-Referenzdokumenten.
Hochladen mit Indextags
Sie können eine Datei hochladen und dem Zielblob Blobindextags hinzufügen.
Wenn Sie die Microsoft Entra-Autorisierung verwenden, muss Ihrem Sicherheitsprinzipal die Rolle Besitzer von Speicherblobdaten zugewiesen sein, oder der Prinzipal muss über eine benutzerdefinierte Azure-Rolle die Berechtigung für den Azure-Ressourcenanbietervorgang Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
erhalten. 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 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.
Hochladen einer Datei
azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt' --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
Hochladen eines Verzeichnisses
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
Hochladen von Verzeichnisinhalten
azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory' --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
Hinweis
Wenn Sie ein Verzeichnis für die Quelle angeben, haben alle in das Ziel kopierten Blobs dieselben Tags, die Sie im Befehl angeben.
Hochladen mit optionalen Flags
Sie können den Uploadvorgang mit optionalen Flags optimieren. Hier sind einige Beispiele angegeben.
Szenario | Flag |
---|---|
Dateien sollen als Anfügeblobs oder Seitenblobs hochgeladen werden. | --blob-type=[BlockBlob|PageBlob|AppendBlob] |
Hochladen auf eine bestimmte Zugriffsebene (z. B. die Archivebene) | --block-blob-tier=[None|Hot|Cool|Archive] |
Eine vollständige Liste finden Sie unter Optionen.
Nächste Schritte
Weitere Beispiele finden Sie in diesen Artikeln:
- Beispiele: Herunterladen
- Beispiele: Kopieren zwischen Konten
- 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: