Caricare file nell'archivio BLOB di Azure usando AzCopy

È possibile caricare file e directory nell'archivio BLOB usando l'utilità della riga di comando AzCopy v10.

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

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 le credenziali di autorizzazione usando l'ID Microsoft Entra.

Se si preferisce usare un token di firma di accesso condiviso per autorizzare l'accesso ai dati BLOB, è possibile aggiungere tale token all'URL della risorsa in ogni comando AzCopy. Ad esempio: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'.

Creare un contenitore

È possibile usare il comando azcopy make per creare un contenitore.

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 make 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>'

Esempio

azcopy make 'https://mystorageaccount.blob.core.windows.net/mycontainer'

Esempio (endpoint Data Lake Storage)

azcopy make 'https://mystorageaccount.dfs.core.windows.net/mycontainer'

Per informazioni dettagliate sulla documentazione di riferimento, vedere azcopy make.

Caricare un file

Caricare un file 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 '<local-file-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-name>'

Esempio

azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt'

Esempio (endpoint Data Lake Storage)

azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myTextFile.txt'

È anche possibile caricare un file usando un simbolo jolly (*) in qualsiasi punto del percorso del file o del nome file. Ad esempio: 'C:\myDirectory\*.txt' o C:\my*\*.txt.

Caricare una directory

Scaricare una directory usando il comando azcopy copy.

Questo esempio copia una directory, e tutti i file in essa contenuti, in un contenitore BLOB. Il risultato è una directory con lo stesso nome nel contenitore.

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

Esempio

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive

Esempio (endpoint Data Lake Storage)

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer' --recursive

Per copiare in una directory all'interno del contenitore, è sufficiente specificare il nome di tale directory nella stringa di comando.

Esempio

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory' --recursive

Esempio (endpoint Data Lake Storage)

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myBlobDirectory' --recursive

Se si specifica il nome di una directory che non esiste nel contenitore, AzCopy crea una nuova directory con tale nome.

Caricare il contenuto della directory

Caricare il contenuto di una directory usando il comando azcopy copy. Usare il simbolo jolly (*) per caricare il contenuto senza copiare la directory contenitore stessa.

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 '<local-directory-path>\*' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<directory-path>'

Esempio

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory'

Esempio (endpoint Data Lake Storage)

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myBlobDirectory'

Aggiungere il flag --recursive per caricare i file in tutte le sottodirectory.

Caricare file specifici

È possibile caricare file specifici usando nomi di file completi, nomi parziali con caratteri jolly (*) o usando date e ore.

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 ('').

Specificare più nomi di file completi

Usare il comando azcopy copy con l'opzione --include-path. Separare i singoli nomi di file usando un punto e virgola (;).

Sintassi

azcopy copy '<local-directory-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --include-path <semicolon-separated-file-list>

Esempio

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --include-path 'photos;documents\myFile.txt' --recursive'

Esempio (endpoint Data Lake Storage)

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer' --include-path 'photos;documents\myFile.txt' --recursive'

In questo esempio AzCopy trasferisce la directory C:\myDirectory\photos e il file C:\myDirectory\documents\myFile.txt. Includere l'opzione --recursive per trasferire tutti i file nella directory C:\myDirectory\photos.

È anche possibile escludere i file usando l'opzione --exclude-path. Per altre informazioni, vedere la documentazione di riferimento di azcopy copy.

Usare caratteri jolly

Usare il comando azcopy copy con l'opzione --include-pattern. Specificare nomi parziali che includono i caratteri jolly. Separare i nomi usando un punto e virgola (;).

Sintassi

azcopy copy '<local-directory-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --include-pattern <semicolon-separated-file-list-with-wildcard-characters>

Esempio

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --include-pattern 'myFile*.txt;*.pdf*'

Esempio (endpoint Data Lake Storage)

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer' --include-pattern 'myFile*.txt;*.pdf*'

È anche possibile escludere i file usando l'opzione --exclude-pattern. Per altre informazioni, vedere la documentazione di riferimento di azcopy copy.

Le opzioni --include-pattern e --exclude-pattern si applicano solo ai nomi dei file e non al percorso. Se si desidera copiare tutti i file di testo presenti in un albero di directory, usare l'opzione -recursive per ottenere l'intero albero di directory e quindi usare -include-pattern e specificare *.txt per ottenere tutti i file di testo.

Caricare i file modificati prima o dopo una data e un'ora

Usare il comando azcopy copy con l'opzione --include-before o --include-after. Specificare una data e un'ora in formato ISO-8601 (ad esempio: 2020-08-19T15:04:00Z).

Gli esempi seguenti caricano i file modificati nella data specificata o in seguito.

Sintassi

azcopy copy '<local-directory-path>\*' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-or-directory-name>' --include-after <Date-Time-in-ISO-8601-format>

Esempio

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory'  --include-after '2020-08-19T15:04:00Z'

Esempio (endpoint Data Lake Storage)

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/FileDirectory'   --include-after '2020-08-19T15:04:00Z'

Per informazioni dettagliate, vedere la documentazione di riferimento di azcopy copy.

Caricare con tag indice

È possibile caricare un file 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 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 ('').

Caricare un file

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

Caricare una directory

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

Caricare il contenuto della directory

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory' --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

Nota

Se si specifica una directory per l'origine, tutti i BLOB copiati nella destinazione avranno gli stessi tag specificati nel comando.

Caricare con flag facoltativi

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

Scenario Flag
Caricare i file come BLOB di accodamento o BLOB di pagine. --blob-type=[BlockBlob|PageBlob|AppendBlob]
Effettuare il caricamento in un livello di accesso specifico, ad esempio il livello archivio. --block-blob-tier=[None|Hot|Cool|Archive]

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: