Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können lokalen Speicher mit Azure Blob Storage synchronisieren, indem Sie das Befehlszeilenprogramm AzCopy v10 verwenden.
Sie können den Inhalt eines lokalen Dateisystems mit einem BLOB-Container synchronisieren. Sie können container und virtuelle Verzeichnisse auch miteinander synchronisieren. Die Synchronisierung erfolgt unidirektional. Anders gesagt: Sie wählen aus, welcher der beiden Endpunkte die Quelle und welcher das Ziel ist. Bei der Synchronisierung werden auch Server-zu-Server-APIs verwendet. Die in diesem Abschnitt vorgestellten Beispiele funktionieren auch mit Konten mit einem hierarchischen Namespace.
Hinweis
Die aktuelle Version von AzCopy synchronisiert nicht zwischen anderen Quellen und Zielen (z. B. Dateispeicher oder Amazon Web Services (AWS) S3 Buckets).
Beispiele für andere Aufgabentypen wie das Hochladen von Dateien, das Herunterladen von Blobs oder das Kopieren von Blobs zwischen Konten finden Sie in den Links im Abschnitt "Nächste Schritte " dieses Artikels.
Loslegen
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>'
.
Leitlinien
Standardmäßig vergleicht der Befehl sync Dateinamen und Zeitstempel der letzten Änderung. Sie können dieses Verhalten außer Kraft setzen, um MD5-Hashes anstelle von Zeitstempeln der letzten Änderung zu verwenden, indem Sie das Flag --compare-hash
verwenden. Legen Sie das optionale Flag --delete-destination
auf den Wert true
oder prompt
fest, um Dateien im Zielverzeichnis zu löschen, wenn diese im Quellverzeichnis nicht mehr vorhanden sind.
Wenn Sie das Flag
--delete-destination
auftrue
festlegen, löscht AzCopy Dateien, ohne zur Bestätigung aufzufordern. Wenn eine Bestätigungsaufforderung angezeigt werden soll, bevor AzCopy eine Datei löscht, legen Sie das--delete-destination
-Flag aufprompt
fest.Wenn Sie das Flag
--delete-destination
aufprompt
oderfalse
festlegen möchten, sollten Sie den Befehl copy anstelle des Befehls sync verwenden und den Parameter--overwrite
aufifSourceNewer
festlegen. Der Befehl copy verbraucht weniger Arbeitsspeicher und verursacht weniger Abrechnungskosten, weil die Quelle oder das Ziel bei einem Kopiervorgang vor dem Verschieben von Dateien nicht indiziert werden muss.Wenn Sie nicht planen, das Flag
--compare-hash
zu verwenden, sollte der Computer, auf dem Sie den Synchronisierungsbefehl ausführen, über eine genaue Systemuhr verfügen, da die Uhrzeiten der letzten Änderung bei der Entscheidung über die Übertragung einer Datei maßgeblich sind. Wenn die Zeit Ihres Systems erheblich abweicht, sollten Sie Dateien am Ziel nicht zu nahe an dem Zeitpunkt ändern, zu dem Sie einen Synchronisierungsbefehl ausführen möchten.AzCopy verwendet Server-zu-Server-APIs, um Daten zwischen Speicherkonten zu synchronisieren. Das bedeutet, dass Daten zwischen Speicherservern direkt kopiert werden. Allerdings wird jede Übertragung von AzCopy eingerichtet und überwacht, und bei umfangreicheren Speicherkonten (z. B. Konten, die Millionen von Blobs umfassen) benötigt AzCopy u. U. eine erhebliche Menge an Computeressourcen, um diese Aufgaben zu bewältigen. Wenn Sie AzCopy auf einer VM ausführen, stellen Sie daher sicher, dass der VM genügend Kerne/Arbeitsspeicher zur Verfügung stehen, um die Last zu bewältigen.
- Um versehentliche Löschungen zu verhindern, stellen Sie sicher, dass Sie die Funktion zum vorläufigen Löschen aktivieren, bevor Sie das
--delete-destination=prompt|true
Kennzeichen verwenden.
Aktualisieren eines Containers mit Änderungen an einem lokalen Dateisystem
In diesem Fall ist der Container das Ziel und das lokale Dateisystem die Quelle.
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 sync '<local-directory-path>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>' --recursive
Beispiel
azcopy sync 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive
Aktualisieren eines lokalen Dateisystems mit Änderungen an einem Container
In diesem Fall ist das lokale Dateisystem das Ziel, und der Container ist die Quelle.
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 sync 'https://<storage-account-name>.blob.core.windows.net/<container-name>' 'C:\myDirectory' --recursive
Beispiel
azcopy sync 'https://mystorageaccount.blob.core.windows.net/mycontainer' 'C:\myDirectory' --recursive
Aktualisieren eines Containers mit Änderungen in einem anderen Container
Der erste Container, der in diesem Befehl angezeigt wird, ist die Quelle. Das zweite ist das Ziel.
Wenn Sie Autorisierungsanmeldeinformationen mithilfe der Microsoft Entra-ID angeben, stellen Sie sicher, dass Sie die richtigen Rollen in Ihrem Quell- und Zielkonto eingerichtet haben. Siehe Option 1: Verwenden der Microsoft Entra-ID.
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 sync 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>' --recursive
Beispiel
azcopy sync 'https://mysourceaccount.blob.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive
Aktualisieren eines Verzeichnisses mit Änderungen an einem Verzeichnis in einem anderen Container
Das erste Verzeichnis in diesem Befehl ist die Quelle. Das zweite ist das Ziel.
Wenn Sie Autorisierungsanmeldeinformationen mithilfe der Microsoft Entra-ID angeben, stellen Sie sicher, dass Sie die richtigen Rollen in Ihrem Quell- und Zielkonto eingerichtet haben. Siehe Option 1: Verwenden der Microsoft Entra-ID.
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 sync 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>/<SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive
Beispiel
azcopy sync 'https://mysourceaccount.blob.core.windows.net/<container-name>/myDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myDirectory' --recursive
Aktualisieren eines Containers mit Änderungen in einem anderen Container mithilfe eines SAS-Tokens
Der erste Container, der in diesem Befehl angezeigt wird, ist die Quelle. Das zweite ist das Ziel.
Wenn Sie ein SAS-Token bereitstellen, stellen Sie sicher, dass Sie ein SAS-Token verwenden, das dem Quell- und Zielspeicherkonto entspricht, während Sie azcopy-Synchronisierung verwenden.
Syntax
azcopy sync 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<destination-SAS-token>' --recursive
Beispiel
azcopy sync 'https://mysourceaccount.blob.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/?sv=2018-03-28&ss=qrdu&dst=mco&kp=rwdlapuc&se=2019-07-04T05:30:08Z&st=2019-07-03T21:31:10Z&spr=https&sig=CAfhgnc9gdGktvB=yzx9CAjMKeeN678yiyFwdNU092JC8%6D' --recursive
Tipp
Wenn Sie eine größere Datengröße kopieren, können Sie den :Azure Storage-Explorer verwenden.
Überprüfen Sie die Größendetails, die Sie kopiert haben. Wählen Sie im Menü der oberen Leiste "Weitere>Ordnerstatistiken" aus, damit Sie die Details des Verzeichnisses einschließlich der Größe in Bytes abrufen können.
Synchronisieren mit optionalen Flags
Sie können den Synchronisierungsvorgang mit optionalen Flags optimieren. Hier sind einige Beispiele angegeben.
Szenario | Flagge |
---|---|
Geben Sie an, wie streng MD5-Hashes beim Herunterladen überprüft werden sollen. | --check-md5=[NoCheck|LogOnly|FailIfDifferent|FailIfDifferentOrMissing] |
Ausschließen von Dateien basierend auf einem Muster | --exclude-path |
Angeben, wie detailliert die synchronisierungsbezogenen Protokolleinträge sein sollen | --log-level=[WARNING|FEHLER|INFORMATIONEN|NONE] |
Geben Sie an, wie eine vhd-Datei kopiert werden soll. | --blob-type=BlockBlob --include-pattern "*.vhd" oder --blob-type=BlockBlob |
Eine vollständige Liste der Flags finden Sie unter "Optionen".
Hinweis
Die --recursive
Kennzeichnung wird standardmäßig auf true
festgelegt. Die --exclude-pattern
Kennzeichen --include-pattern
gelten nur für Dateinamen und nicht für andere Teile des Dateipfads.
Nächste Schritte
Weitere Beispiele finden Sie in diesen Artikeln:
- Beispiele: Hochladen
- Beispiele: Herunterladen
- Beispiele: Kopieren zwischen Konten
- 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: