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.

Attività iniziali

Vedere l'articolo Introduzione ad AzCopy per scaricare AzCopy e 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>'.

Creazione di un contenitore

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

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 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 Archiviazione Data Lake)

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 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 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 Archiviazione Data Lake)

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

Caricare una directory usando il comando azcopy copy .

Questo esempio copia una directory (e tutti i file in tale directory) in un contenitore BLOB. Il risultato è una directory nel contenitore con lo stesso nome.

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 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 Archiviazione Data Lake)

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 della directory nella stringa di comando.

Esempio

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

Esempio (endpoint Archiviazione Data Lake)

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 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 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 Archiviazione Data Lake)

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

Aggiungere il --recursive flag 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 (*), oppure date e ore.

Suggerimento

Questi esempi racchiudono 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 path con virgolette doppie ("") anziché virgolette singole ('').

Specificare più nomi di file completi

Usare il comando azcopy copy con l'opzione --include-path . Separare 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 Archiviazione Data Lake)

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

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

È anche possibile escludere i file usando l'opzione --exclude-path . Per altre informazioni, vedere azcopy copy reference docs (Documentazione di riferimento su 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 Archiviazione Data Lake)

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 azcopy copy reference docs (Documentazione di riferimento su azcopy copy ).

Le --include-pattern opzioni e --exclude-pattern si applicano solo ai nomi 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).

Negli esempi seguenti vengono caricati i file modificati in o dopo la data specificata.

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 Archiviazione Data Lake)

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

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

Caricare con tag di 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 proprietario dei dati BLOB Archiviazione oppure deve essere concessa l'autorizzazione per l'operazione del Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/writeprovider 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 t di firma di accesso condiviso.

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, si aggiungerà --blob-tags='my%20tag=my%20tag%20value' al parametro di destinazione.

Separare più tag di indice usando una e commerciale (&). Ad esempio, se si vuole 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 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 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|Caldo |Cool |Archivio]

Per un elenco completo, vedere opzioni.

Passaggi successivi

Altri esempi sono disponibili in questi articoli:

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