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 Autorisierungsanmeldeinformationen mithilfe der Microsoft Entra-ID angeben.
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-destinationauftruefestlegen, löscht AzCopy Dateien, ohne eine Bestätigung anzufordern. Wenn eine Bestätigungsaufforderung angezeigt werden soll, bevor AzCopy eine Datei löscht, legen Sie das--delete-destination-Flag aufpromptfest.Wenn Sie das Flag
--delete-destinationaufpromptoderfalsefestlegen möchten, sollten Sie den Befehl copy anstelle des Befehls sync verwenden und den Parameter--overwriteaufifSourceNewerfestlegen. 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-hashzu 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|trueKennzeichen 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. Der zweite Container 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 einrichten. 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 Verzeichnis ist das Zielverzeichnis.
Wenn Sie Autorisierungsanmeldeinformationen mithilfe der Microsoft Entra-ID angeben, stellen Sie sicher, dass Sie die richtigen Rollen in Ihrem Quell- und Zielkonto einrichten. 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. Der zweite Container ist das Ziel.
Wenn Sie ein SAS-Token bereitstellen, stellen Sie sicher, dass Sie ein SAS-Token verwenden, das den Quell- und Zielspeicherkonten entspricht, wenn 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 große Datenmenge kopieren, können Sie den Azure Storage-Explorer verwenden.
Um die Größe der kopierten Daten zu überprüfen, wählen Sie im menü der oberen Leiste "Weitere>Ordnerstatistiken" aus, um die Details des Verzeichnisses abzurufen, einschließlich der Größe in Bytes.
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|ERROR|INFO|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
- Herunterladen von Blobs aus Azure Blob Storage mithilfe von AzCopy
- Beispiele: Kopieren zwischen Konten
- Beispiele: Amazon S3-Buckets
- Beispiele: Google Cloud Storage
- Beispiele: Azure Files
Lesen Sie diese Artikel, um Einstellungen zu konfigurieren, die Leistung zu optimieren und Probleme zu beheben: