Synchroniseren met Azure Blob Storage met behulp van AzCopy
U kunt lokale opslag synchroniseren met Azure Blob Storage met behulp van het opdrachtregelprogramma AzCopy v10.
U kunt de inhoud van een lokaal bestandssysteem synchroniseren met een blobcontainer. U kunt containers en virtuele mappen ook met elkaar synchroniseren. Synchronisatie is één manier. Met andere woorden, u kiest welke van deze twee eindpunten de bron is en welke de bestemming is. Synchronisatie maakt ook gebruik van server-naar-server-API's. De voorbeelden in deze sectie werken ook met accounts met een hiërarchische naamruimte.
Notitie
De huidige release van AzCopy synchroniseert niet tussen andere bronnen en bestemmingen (bijvoorbeeld: File Storage of Amazon Web Services (AWS) S3-buckets.
Zie de koppelingen in de sectie Volgende stappen van dit artikel voor voorbeelden voor andere typen taken, zoals het uploaden van bestanden, het downloaden van blobs of het kopiëren van blobs tussen accounts.
Aan de slag
Zie het artikel Aan de slag met AzCopy om AzCopy te downloaden en meer te weten te komen over de manieren waarop u autorisatiereferenties kunt opgeven voor de opslagservice.
Notitie
In de voorbeelden in dit artikel wordt ervan uitgegaan dat u autorisatiereferenties hebt opgegeven met behulp van Microsoft Entra-id.
Als u liever een SAS-token gebruikt om toegang tot blobgegevens te autoriseren, kunt u dat token toevoegen aan de resource-URL in elke AzCopy-opdracht. Bijvoorbeeld: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'
.
Richtlijnen
De synchronisatieopdracht vergelijkt standaard bestandsnamen en laatst gewijzigde tijdstempels. U kunt dit gedrag overschrijven om MD5-hashes te gebruiken in plaats van de tijdstempels van de laatste wijziging door de --compare-hash
vlag te gebruiken. Stel de --delete-destination
optionele vlag in op een waarde van true
of prompt
om bestanden in de doelmap te verwijderen als deze bestanden niet meer in de bronmap voorkomen.
Als u de
--delete-destination
vlagtrue
instelt op , verwijdert AzCopy bestanden zonder een prompt op te geven. Als u een prompt wilt weergeven voordat AzCopy een bestand verwijdert, stelt u de--delete-destination
vlag in opprompt
.Als u van plan bent de
--delete-destination
vlagprompt
in te stellen op offalse
, kunt u overwegen de kopieeropdracht te gebruiken in plaats van de synchronisatieopdracht en de--overwrite
parameter in te stellen opifSourceNewer
. De kopieeropdracht verbruikt minder geheugen en kost minder factureringskosten omdat een kopieerbewerking de bron of het doel niet hoeft te indexeren voordat u bestanden verplaatst.Als u niet van plan bent om de
--compare-hash
vlag te gebruiken, moet de computer waarop u de synchronisatieopdracht uitvoert een nauwkeurige systeemklok hebben omdat de laatst gewijzigde tijden essentieel zijn om te bepalen of een bestand moet worden overgedragen. Als uw systeem aanzienlijke scheeftrekken van de klok heeft, vermijdt u het wijzigen van bestanden op de bestemming te dicht bij het tijdstip waarop u een synchronisatieopdracht wilt uitvoeren.AzCopy maakt gebruik van server-naar-server-API's om gegevens tussen opslagaccounts te synchroniseren. Dat betekent dat gegevens rechtstreeks tussen opslagservers worden gekopieerd. AzCopy stelt echter elke overdracht in en controleert deze, en voor grotere opslagaccounts (bijvoorbeeld accounts die miljoenen blobs bevatten), kan AzCopy een aanzienlijke hoeveelheid rekenresources vereisen om deze taken uit te voeren. Als u AzCopy uitvoert vanaf een virtuele machine (VM), moet u ervoor zorgen dat de VIRTUELE machine voldoende kernen/geheugen heeft om de belasting te verwerken.
- Als u onbedoelde verwijderingen wilt voorkomen, moet u de functie voor voorlopig verwijderen inschakelen voordat u de
--delete-destination=prompt|true
vlag gebruikt.
Een container bijwerken met wijzigingen in een lokaal bestandssysteem
In dit geval is de container het doel, en is het lokale bestandssysteem de bron.
Fooi
In dit voorbeeld worden padargumenten tussen enkele aanhalingstekens (''' ) geplaatst. Gebruik enkele aanhalingstekens in alle opdrachtshells, met uitzondering van de Windows Command Shell (cmd.exe). Als u een Windows Command Shell (cmd.exe) gebruikt, plaatst u padargumenten tussen dubbele aanhalingstekens ("") in plaats van enkele aanhalingstekens ('').
Syntaxis
azcopy sync '<local-directory-path>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>' --recursive
Voorbeeld
azcopy sync 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive
Een lokaal bestandssysteem bijwerken met wijzigingen in een container
In dit geval is het lokale bestandssysteem de bestemming en is de container de bron.
Fooi
In dit voorbeeld worden padargumenten tussen enkele aanhalingstekens (''' ) geplaatst. Gebruik enkele aanhalingstekens in alle opdrachtshells, met uitzondering van de Windows Command Shell (cmd.exe). Als u een Windows Command Shell (cmd.exe) gebruikt, plaatst u padargumenten tussen dubbele aanhalingstekens ("") in plaats van enkele aanhalingstekens ('').
Syntaxis
azcopy sync 'https://<storage-account-name>.blob.core.windows.net/<container-name>' 'C:\myDirectory' --recursive
Voorbeeld
azcopy sync 'https://mystorageaccount.blob.core.windows.net/mycontainer' 'C:\myDirectory' --recursive
Een container bijwerken met wijzigingen in een andere container
De eerste container die in deze opdracht wordt weergegeven, is de bron. De tweede is de bestemming.
Als u autorisatiereferenties opgeeft met behulp van Microsoft Entra-id, moet u ervoor zorgen dat u de juiste rollen hebt ingesteld in uw bron- en doelaccount. Zie optie 1: Microsoft Entra-id gebruiken.
Fooi
In dit voorbeeld worden padargumenten tussen enkele aanhalingstekens (''' ) geplaatst. Gebruik enkele aanhalingstekens in alle opdrachtshells, met uitzondering van de Windows Command Shell (cmd.exe). Als u een Windows Command Shell (cmd.exe) gebruikt, plaatst u padargumenten tussen dubbele aanhalingstekens ("") in plaats van enkele aanhalingstekens ('').
Syntaxis
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
Voorbeeld
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
Een map bijwerken met wijzigingen in een map in een andere container
De eerste map die in deze opdracht wordt weergegeven, is de bron. De tweede is de bestemming.
Als u autorisatiereferenties opgeeft met behulp van Microsoft Entra-id, moet u ervoor zorgen dat u de juiste rollen hebt ingesteld in uw bron- en doelaccount. Zie optie 1: Microsoft Entra-id gebruiken.
Fooi
In dit voorbeeld worden padargumenten tussen enkele aanhalingstekens (''' ) geplaatst. Gebruik enkele aanhalingstekens in alle opdrachtshells, met uitzondering van de Windows Command Shell (cmd.exe). Als u een Windows Command Shell (cmd.exe) gebruikt, plaatst u padargumenten tussen dubbele aanhalingstekens ("") in plaats van enkele aanhalingstekens ('').
Syntaxis
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
Voorbeeld
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
Synchroniseren met optionele vlaggen
U kunt de synchronisatiebewerking aanpassen met behulp van optionele vlaggen. Hier volgen enkele voorbeelden.
Scenario | Vlag |
---|---|
Geef op hoe strikt MD5-hashes moeten worden gevalideerd bij het downloaden. | --check-md5=[NoCheck|LogOnly|FailIfDifferent |FailIfDifferentOrMissing] |
Sluit bestanden uit op basis van een patroon. | --exclude-path |
Geef op hoe gedetailleerd uw synchronisatiegerelateerde logboekvermeldingen moeten zijn. | --log-level=[WAARSCHUWING|FOUT|INFO|GEEN] |
Zie de opties voor een volledige lijst met vlaggen.
Notitie
De --recursive
vlag is standaard ingesteld true
op. De --exclude-pattern
en --include-pattern
vlaggen zijn alleen van toepassing op bestandsnamen en niet op andere delen van het bestandspad.
Volgende stappen
Bekijk meer voorbeelden in deze artikelen:
- Voorbeelden: Uploaden
- Voorbeelden: Downloaden
- Voorbeelden: Kopiëren tussen accounts
- Voorbeelden: Amazon S3-buckets
- Voorbeelden: Google Cloud Storage
- Voorbeelden: Azure Files
- Zelfstudie: On-premises gegevens migreren naar cloudopslag met behulp van AzCopy
Zie deze artikelen voor het configureren van instellingen, het optimaliseren van de prestaties en het oplossen van problemen: