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 API da 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
sufalse
( 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 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 path 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 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 path 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 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 path 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 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 path 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/write
operazione 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:
- Esempi: Caricamento
- Esempi: Scaricare
- Esempi: Sincronizzare
- Esempi: Bucket di Amazon S3
- Esempi: Google Cloud Storage
- Esempi: File di Azure
- Esercitazione: Eseguire la migrazione di dati locali in una risorsa di archiviazione cloud tramite AzCopy
Vedere questi articoli per configurare le impostazioni, ottimizzare le prestazioni e risolvere i problemi:
- Impostazioni di configurazione di AzCopy
- Ottimizzare le prestazioni di AzCopy
- Trovare gli errori e riprendere i processi usando i file di log e di piano in AzCopy
- Risolvere i problemi relativi ad AzCopy v10
- Usare AzCopy per copiare i BLOB tra gli account di archiviazione di Azure con restrizioni di rete