Blobs kopiëren tussen Azure-opslagaccounts met behulp van AzCopy

U kunt blobs, mappen en containers kopiëren tussen opslagaccounts met behulp van het opdrachtregelprogramma AzCopy v10.

Zie de koppelingen in de sectie Volgende stappen van dit artikel voor voorbeelden van andere typen taken, zoals het uploaden van bestanden, het downloaden van blobs en het synchroniseren met Blob Storage.

AzCopy maakt gebruik van server-naar-server-API's, zodat gegevens rechtstreeks tussen opslagservers worden gekopieerd. Deze kopieerbewerkingen gebruiken niet de netwerkbandbreedte van uw computer.

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 Azure Active Directory (Azure AD) en dat uw Azure AD identiteit de juiste roltoewijzingen heeft voor zowel bron- als doelaccounts.

U kunt ook een SAS-token toevoegen aan de bron- of doel-URL in elke AzCopy-opdracht. Bijvoorbeeld: azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>'.

Richtlijnen

Pas de volgende richtlijnen toe op uw AzCopy-opdrachten.

  • Uw client moet netwerktoegang hebben tot zowel de bron- als doelopslagaccounts. Zie Azure Storage firewalls en virtuele netwerken configureren voor meer informatie over het configureren van de netwerkinstellingen voor elk opslagaccount.

  • Als u kopieert naar een Premium-blok-blob-opslagaccount, laat u de toegangslaag van een blob weg uit de kopieerbewerking door de s2s-preserve-access-tier instelling in te false stellen op (bijvoorbeeld: --s2s-preserve-access-tier=false). Premium blok-blob-opslagaccounts bieden geen ondersteuning voor toegangslagen.

  • Als u kopieert naar of van een account met een hiërarchische naamruimte, gebruikt blob.core.windows.net u deze in plaats van dfs.core.windows.net in de URL-syntaxis. Toegang met meerdere protocollen op Data Lake Storage stelt u in staat om te gebruiken blob.core.windows.neten dit is de enige ondersteunde syntaxis voor accountkopiescenario's.

  • U kunt de doorvoer van kopieerbewerkingen verhogen door de waarde van de AZCOPY_CONCURRENCY_VALUE omgevingsvariabele in te stellen. Zie Gelijktijdigheid verhogen voor meer informatie.

  • Als de bron-blobs indextags hebben en u deze tags wilt behouden, moet u ze opnieuw toepassen op de doel-blobs. Zie de sectie Blobs kopiëren naar een ander opslagaccount met indextags van dit artikel voor informatie over het instellen van indextags.

Een blob kopiëren

Kopieer een blob naar een ander opslagaccount met behulp van de opdracht azcopy copy .

Tip

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 copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path>'

Voorbeeld

azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myTextFile.txt' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myTextFile.txt'

De kopieerbewerking is synchroon, dus wanneer de opdracht wordt geretourneerd, geeft dit aan dat alle bestanden zijn gekopieerd.

Een map kopiëren

Kopieer een map naar een ander opslagaccount met behulp van de opdracht azcopy copy .

Tip

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 copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<directory-path>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>' --recursive

Voorbeeld

azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive

De kopieerbewerking is synchroon, dus wanneer de opdracht wordt geretourneerd, geeft dit aan dat alle bestanden zijn gekopieerd.

Een container kopiëren

Kopieer een container naar een ander opslagaccount met behulp van de opdracht azcopy copy .

Tip

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 copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>' --recursive

Voorbeeld

azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive

De kopieerbewerking is synchroon, dus wanneer de opdracht wordt geretourneerd, geeft dit aan dat alle bestanden zijn gekopieerd.

Containers, mappen en blobs kopiëren

Kopieer alle containers, mappen en blobs naar een ander opslagaccount met behulp van de opdracht azcopy copy .

Tip

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 copy 'https://<source-storage-account-name>.blob.core.windows.net/' 'https://<destination-storage-account-name>.blob.core.windows.net/' --recursive

Voorbeeld

azcopy copy 'https://mysourceaccount.blob.core.windows.net/' 'https://mydestinationaccount.blob.core.windows.net' --recursive

De kopieerbewerking is synchroon, dus wanneer de opdracht wordt geretourneerd, geeft dit aan dat alle bestanden zijn gekopieerd.

Blobs kopiëren en indextags toevoegen

Kopieer blobs naar een ander opslagaccount en voeg blobindextags (preview) toe aan de doel-blob.

Als u Azure AD-autorisatie gebruikt, moet aan uw beveiligingsprincipaal de rol Storage blobgegevenseigenaar worden toegewezen of moet deze worden gemachtigd voor de bewerking van de Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/writeAzure-resourceprovider via een aangepaste Azure-rol. Als u een SAS-token (Shared Access Signature) gebruikt, moet dat token toegang bieden tot de tags van de blob via de t SAS-machtiging.

Als u tags wilt toevoegen, gebruikt u de --blob-tags optie samen met een met URL gecodeerd sleutel-waardepaar.

Als u bijvoorbeeld de sleutel my tag en een waarde my tag valuewilt toevoegen, voegt u deze toe --blob-tags='my%20tag=my%20tag%20value' aan de doelparameter.

Scheid meerdere indextags met behulp van een ampersand (&). Als u bijvoorbeeld een sleutel my second tag en een waarde my second tag valuewilt toevoegen, is --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'de volledige optietekenreeks.

In de volgende voorbeelden ziet u hoe u de --blob-tags optie gebruikt.

Tip

Deze voorbeelden plaatsen padargumenten tussen enkele aanhalingstekens (''). 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 ('').

Blob-voorbeeld


azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myTextFile.txt' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myTextFile.txt' --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

Mapvoorbeeld

azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

Containervoorbeeld

azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

Accountvoorbeeld

azcopy copy 'https://mysourceaccount.blob.core.windows.net/' 'https://mydestinationaccount.blob.core.windows.net' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

De kopieerbewerking is synchroon, dus wanneer de opdracht wordt geretourneerd, geeft dit aan dat alle bestanden zijn gekopieerd.

Notitie

Als u een map, container of account opgeeft voor de bron, hebben alle blobs die naar het doel worden gekopieerd, dezelfde tags die u in de opdracht opgeeft.

Kopiëren met optionele vlaggen

U kunt de kopieerbewerking aanpassen met behulp van optionele vlaggen. Hier volgen enkele voorbeelden.

Scenario Vlag
Blobs kopiëren als blok-, pagina- of toevoeg-blobs. --blob-type=[BlockBlob| PageBlob| AppendBlob]
Kopiëren naar een specifieke toegangslaag (zoals de archieflaag). --block-blob-tier=[Geen| Heet| Cool| Archief]
Bestanden automatisch decomprimeren. --decompress=[gzip|deflate]

Zie opties voor een volledige lijst.

Volgende stappen

In deze artikelen vindt u meer voorbeelden:

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