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 vlag trueinstelt 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 op prompt.

  • Als u van plan bent de --delete-destination vlag prompt in te stellen op of false, kunt u overwegen de kopieeropdracht te gebruiken in plaats van de synchronisatieopdracht en de --overwrite parameter in te stellen op ifSourceNewer. 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.

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:

Zie deze artikelen voor het configureren van instellingen, het optimaliseren van de prestaties en het oplossen van problemen: