Condividi tramite


Copiare BLOB tra account di Archiviazione di Azure usando AzCopy

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

Per esempi di altri tipi di attività, ad esempio il caricamento di file, il download di BLOB e la sincronizzazione con l'archiviazione BLOB, vedere i collegamenti 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.

Introduzione

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.

Note

Gli esempi in questo articolo presuppongono che si forniscano le 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 SAS all'URL di origine o di destinazione in ogni comando di 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>'.

Indicazioni

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.

    Per informazioni sulle topologie di rete supportate durante la copia tra account, vedere Copiare BLOB tra account di archiviazione con restrizioni di accesso.

  • 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, è 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. Quando il comando termina, indica che tutti i file sono stati copiati.

Consente di 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. Al termine del comando, tutti i file vengono copiati.

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. Al termine del comando, tutti i file vengono copiati.

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. Quando il comando termina, 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, assegnare il ruolo di Proprietario dei dati del BLOB di archiviazione all'entità di sicurezza, oppure darle 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 utilizza un token Shared Access Signature (SAS), il token deve fornire l'accesso ai tag del blob tramite l'autorizzazione t SAS.

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

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

Separare più tag di indice con una e commerciale (&). Ad esempio, se si vuole aggiungere la chiave my second tag e il 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 path 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. Al termine del comando, tutti i file vengono copiati.

Note

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

Copiare con flag facoltativi

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

Sceneggiatura Bandiera
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.

Specificare i tipi di origine e di destinazione

AzCopy usa il --from-to parametro per definire in modo esplicito i tipi di risorse di origine e di destinazione quando il rilevamento automatico potrebbe non riuscire, ad esempio in scenari di piping o emulatori. Questo parametro consente ad AzCopy di comprendere il contesto del trasferimento e di ottimizzare di conseguenza.

Valore FromTo Description
BlobBlob Copiare tra due percorsi di Archiviazione BLOB di Azure
BlobBlobFS Copiare da Archiviazione BLOB di Azure a data lake di Azure Gen2 (BlobFS)
BlobFSBlob Copiare da data lake di Azure Gen2 (BlobFS) in Archiviazione BLOB di Azure
BlobFSBlobFS Copiare tra due percorsi di data lake di Azure Gen2 (BlobFS)
BlobFSFile Copiare da data lake di Azure Gen2 (BlobFS) ad archiviazione file di Azure
BlobFile Copiare da archiviazione BLOB di Azure ad archiviazione file di Azure
FileBlob Copiare da archiviazione file di Azure ad archiviazione BLOB di Azure
FileBlobFS Copiare da archiviazione file di Azure a data lake di Azure Gen2 (BlobFS)

Passaggi successivi

Altri esempi sono disponibili in questi articoli:

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