Copiare BLOB tra account di Archiviazione di Azure usando AzCopy

È possibile copiare BLOB, directory e contenitori tra account di archiviazione usando l'utilità della riga di comando AzCopy v10.

Per visualizzare esempi per altri tipi di attività, ad esempio il caricamento di file, il download di BLOB e la sincronizzazione con l'archiviazione BLOB, vedere i collegamenti presentati nella sezione Passaggi successivi di questo articolo.

AzCopy usa le APIda server a server in modo che i dati vengano copiati direttamente tra i server di archiviazione.

Operazioni preliminari

Vedere l'articolo Introduzione ad AzCopy per scaricare AzCopy e scoprire informazioni sui modi in cui è possibile fornire le credenziali di autorizzazione al servizio di archiviazione.

Nota

Gli esempi in questo articolo presuppongono che siano state fornite credenziali di autorizzazione usando Microsoft Entra ID e che l'identità di Microsoft Entra abbia le assegnazioni di ruolo appropriate per gli account di origine e di destinazione.

In alternativa, è possibile aggiungere un token di firma di accesso condiviso all'URL di origine o di destinazione in ogni comando AzCopy. Ad esempio: 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>'.

Linee guida

Applicare le linee guida seguenti ai comandi di AzCopy.

  • Se si usa l'autorizzazione Microsoft Entra sia per l'origine che per la destinazione, entrambi gli account devono appartenere allo stesso tenant di Microsoft Entra.

  • Il client deve avere accesso di rete sia agli account di archiviazione di origine che a quello di destinazione. Per informazioni su come configurare le impostazioni di rete per ogni account di archiviazione, vedere Configurare firewall e reti virtuali di Archiviazione di Azure.

  • Se si esegue la copia in un account di archiviazione BLOB in blocchi Premium, omettere il livello di accesso di un BLOB dall'operazione di copia impostando s2s-preserve-access-tier su false ( ad esempio: --s2s-preserve-access-tier=false). Gli account di archiviazione BLOB in blocchi Premium non supportano i livelli di accesso.

  • È possibile aumentare la velocità effettiva delle operazioni di copia impostando il valore della variabile di ambiente AZCOPY_CONCURRENCY_VALUE. Per altre informazioni, vedere Aumentare la concorrenza.

  • Se i BLOB di origine hanno tag di indice e si desidera conservarli, sarà necessario riapplicarli ai BLOB di destinazione. Per informazioni su come impostare i tag di indice, vedere la sezione Copiare BLOB in un altro account di archiviazione con tag di indice di questo articolo.

Copiare un BLOC

Copiare un BLOB in un altro account di archiviazione usando il comando azcopy copy.

Suggerimento

In questo esempio vengono racchiusi gli argomenti path con virgolette singole (''). Usare virgolette singole in tutte le shell dei comandi, ad eccezione della shell dei comandi di Windows (cmd.exe). Se si usa una shell dei comandi di Windows (cmd.exe), racchiudere gli argomenti di percorso con virgolette doppie ("") anziché virgolette singole ('').

Sintassi

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>'

Esempio

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

Esempio (endpoint Data Lake Storage)

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

L'operazione di copia è sincrona, quindi se il comando restituisce il risultato ciò indica che tutti i file sono stati copiati.

Copiare una directory

Copiare una directory in un altro account di archiviazione usando il comando azcopy copy.

Suggerimento

In questo esempio vengono racchiusi gli argomenti path con virgolette singole (''). Usare virgolette singole in tutte le shell dei comandi, ad eccezione della shell dei comandi di Windows (cmd.exe). Se si usa una shell dei comandi di Windows (cmd.exe), racchiudere gli argomenti di percorso con virgolette doppie ("") anziché virgolette singole ('').

Sintassi

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

Esempio

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

Esempio (endpoint Data Lake Storage)

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

L'operazione di copia è sincrona. Tutti i file sono stati copiati al termine del comando.

Copiare un contenitore

Copiare un contenitore in un altro account di archiviazione usando il comando azcopy copy.

Suggerimento

In questo esempio vengono racchiusi gli argomenti path con virgolette singole (''). Usare virgolette singole in tutte le shell dei comandi, ad eccezione della shell dei comandi di Windows (cmd.exe). Se si usa una shell dei comandi di Windows (cmd.exe), racchiudere gli argomenti di percorso con virgolette doppie ("") anziché virgolette singole ('').

Sintassi

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

Esempio

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

Esempio (endpoint Data Lake Storage)

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

L'operazione di copia è sincrona. Tutti i file sono stati copiati al termine del comando.

Copiare contenitori, directory e BLOB

Copiare tutti i contenitori, le directory e i BLOB in un altro account di archiviazione usando il comando azcopy copy.

Suggerimento

In questo esempio vengono racchiusi gli argomenti path con virgolette singole (''). Usare virgolette singole in tutte le shell dei comandi, ad eccezione della shell dei comandi di Windows (cmd.exe). Se si usa una shell dei comandi di Windows (cmd.exe), racchiudere gli argomenti di percorso con virgolette doppie ("") anziché virgolette singole ('').

Sintassi

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

Esempio

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

Esempio (endpoint Data Lake Storage)

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

L'operazione di copia è sincrona, quindi se il comando restituisce il risultato ciò indica che tutti i file sono stati copiati.

Copiare BLOB e aggiungere tag di indice

Copiare i BLOB in un altro account di archiviazione e aggiungere tag di indice BLOB al BLOB di destinazione.

Se si usa l'autorizzazione Microsoft Entra, all'entità di sicurezza deve essere assegnato il ruolo di proprietario dei dati del BLOB di archiviazione oppure deve essere concessa l'autorizzazione per l'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/writeoperazione del provider di risorse di Azure tramite un ruolo di Azure personalizzato. Se si usa un token di firma di accesso condiviso, tale token deve fornire l'accesso ai tag del BLOB tramite l'autorizzazione di firma di accesso condiviso t.

Per aggiungere tag, usare l'opzione --blob-tags insieme a una coppia chiave-valore codificata con URL.

Ad esempio, per aggiungere la chiave my tag e un valore my tag value, aggiungere --blob-tags='my%20tag=my%20tag%20value' al parametro di destinazione.

Separare più tag di indice usando una e commerciale (&). Ad esempio, se si desidera aggiungere una chiave my second tag e un valore my second tag value, la stringa di opzione completa sarà --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'.

Negli esempi seguenti viene illustrato come usare l'opzione --blob-tags.

Suggerimento

In questi esempi gli argomenti path vengono racchiusi con virgolette singole (''). Usare virgolette singole in tutte le shell dei comandi, ad eccezione della shell dei comandi di Windows (cmd.exe). Se si usa una shell dei comandi di Windows (cmd.exe), racchiudere gli argomenti di percorso con virgolette doppie ("") anziché virgolette singole ('').

Esempio di 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'

Esempio di directory

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'

Esempio di contenitore

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'

Esempio di 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'

L'operazione di copia è sincrona. Tutti i file sono stati copiati al termine del comando.

Nota

Se si specificano una directory, un contenitore o un account per l'origine, tutti i BLOB copiati nella destinazione avranno gli stessi tag specificati nel comando.

Copiare con flag facoltativi

È possibile modificare l'operazione di copia usando flag facoltativi. Ecco alcuni esempi.

Scenario Flag
Copiare BLOB come BLOB in blocchi, pagine o BLOB di accodamento. --blob-type=[BlockBlob|PageBlob|AppendBlob]
Copiare in un livello di accesso specifico, ad esempio il livello archivio. --block-blob-tier=[None|Hot|Cool|Archive]
Decomprimere automaticamente i file. --decompress=[gzip|deflate]

Per un elenco completo, vedere le opzioni.

Passaggi successivi

Altri esempi sono disponibili in questi articoli:

Vedere questi articoli per configurare le impostazioni, ottimizzare le prestazioni e risolvere i problemi: