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.
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 en dat uw Microsoft Entra-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. Voorbeeld: 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.
Als u Microsoft Entra-autorisatie gebruikt voor zowel de bron als de bestemming, moeten beide accounts deel uitmaken van dezelfde Microsoft Entra-tenant.
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 tefalse
stellen op (bijvoorbeeld:--s2s-preserve-access-tier=false
). Premium blok-blob-opslagaccounts bieden geen ondersteuning voor toegangslagen.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 Indextags kopiëren naar een ander opslagaccount met indextags in dit artikel voor meer 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 or dfs>.core.windows.net/<container-name>/<blob-path>' 'https://<destination-storage-account-name>.<blob or dfs>.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'
Voorbeeld (Data Lake Storage-eindpunten)
azcopy copy 'https://mysourceaccount.dfs.core.windows.net/mycontainer/myTextFile.txt' 'https://mydestinationaccount.dfs.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 or dfs>.core.windows.net/<container-name>/<directory-path>' 'https://<destination-storage-account-name>.<blob or dfs>.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
Voorbeeld (Data Lake Storage-eindpunten)
azcopy copy 'https://mysourceaccount.dfs.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.dfs.core.windows.net/mycontainer' --recursive
De kopieerbewerking is synchroon. Alle bestanden zijn gekopieerd wanneer de opdracht wordt geretourneerd.
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 or dfs>.core.windows.net/<container-name>' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --recursive
Voorbeeld
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive
Voorbeeld (Data Lake Storage-eindpunten)
azcopy copy 'https://mysourceaccount.dfs.core.windows.net/mycontainer' 'https://mydestinationaccount.dfs.core.windows.net/mycontainer' --recursive
De kopieerbewerking is synchroon. Alle bestanden zijn gekopieerd wanneer de opdracht wordt geretourneerd.
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 or dfs>.core.windows.net/' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/' --recursive
Voorbeeld
azcopy copy 'https://mysourceaccount.blob.core.windows.net/' 'https://mydestinationaccount.blob.core.windows.net' --recursive
Voorbeeld (Data Lake Storage-eindpunten)
azcopy copy 'https://mysourceaccount.dfs.core.windows.net/' 'https://mydestinationaccount.dfs.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 toe aan de doel-blob.
Als u Microsoft Entra-autorisatie gebruikt, moet aan uw beveiligingsprincipaal de rol Eigenaar van opslagblobgegevens worden toegewezen of moet deze toestemming krijgen voor de bewerking van de Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
Azure-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 sleutel-waardepaar met URL-codering.
Als u bijvoorbeeld de sleutel my tag
en een waarde my tag value
wilt 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 value
wilt 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 ('').
Voorbeeld van blob
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'
Voorbeeld van map
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'
Voorbeeld van account
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. Alle bestanden zijn gekopieerd wanneer de opdracht wordt geretourneerd.
Notitie
Als u een map, container of account voor de bron opgeeft, 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 |
---|---|
Kopieer blobs als blok-, pagina- of toevoeg-blobs. | --blob-type=[BlockBlob|PageBlob |AppendBlob] |
Kopiëren naar een specifieke toegangslaag (zoals de archieflaag). | --block-blob-tier=[Geen|Hot|Statisch|Archiveren] |
Bestanden automatisch decomprimeren. | --decompress=[gzip|deflate] |
Zie de opties voor een volledige lijst.
Volgende stappen
Bekijk meer voorbeelden in deze artikelen:
- Voorbeelden: Uploaden
- Voorbeelden: Downloaden
- Voorbeelden: Synchroniseren
- 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: