Scaricare BLOB da Archiviazione BLOB di Azure usando AzCopy

È possibile scaricare BLOB e directory dall'archivio BLOB usando l'utilità della riga di comando AzCopy v10.

Per visualizzare esempi per altri tipi di attività, ad esempio il caricamento di file, 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>'.

Scaricare un BLOB

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

Esempio

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

Esempio (endpoint Data Lake Storage)

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

Nota

Se il valore della proprietà Content-md5 di un BLOB contiene un hash, AzCopy calcola un hash MD5 per i dati scaricati e verifica che l'hash MD5 archiviato nella proprietà Content-md5 del BLOB corrisponda all'hash calcolato. Se questi valori non corrispondono, il download non riesce a meno che non si esegua l'override di questo comportamento aggiungendo --check-md5=NoCheck o --check-md5=LogOnly al comando di copia.

Scaricare una directory

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

Esempio

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

Esempio (endpoint Data Lake Storage)

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

In questo esempio viene restituita una directory denominata C:\myDirectory\myBlobDirectory che contiene tutti i BLOB scaricati.

Scaricare il contenuto della directory

È possibile scaricare il contenuto di una directory senza copiare la directory che lo contiene usando il carattere jolly (*).

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

Nota

Attualmente, questo scenario è supportato solo per gli account che non hanno uno spazio dei nomi gerarchico.

Sintassi

azcopy copy 'https://<storage-account-name>.blob.core.windows.net/<container-name>/*' '<local-directory-path>/'

Esempio

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

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

Scaricare BLOB specifici

È possibile scaricare BLOB 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 di percorso con virgolette doppie ("") anziché virgolette singole ('').

Specificare più nomi di BLOB completi

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

Sintassi

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

Esempio

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

Esempio (endpoint Data Lake Storage)

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

In questo esempio AzCopy trasferisce la directory https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory/photos e il file https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory/documents/myFile.txt. Includere l'opzione --recursive per trasferire tutti i BLOB nella directory https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory/photos.

È anche possibile escludere i BLOB 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 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-or-directory-name>' '<local-directory-path>' --include-pattern <semicolon-separated-file-list-with-wildcard-characters>

Esempio

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

Esempio (spazio dei nomi gerarchico)

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

È anche possibile escludere i BLOB 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 BLOB e non al percorso. Se si desidera copiare tutti i file di testo (BLOB) 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.

Scaricare i BLOB 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 scaricano i file modificati nella data specificata o in seguito.

Sintassi

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

Esempio

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

Esempio (endpoint Data Lake Storage)

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

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

Scaricare le versioni precedenti di un BLOB

Se è stato abilitato il controllo delle versioni BLOB, è possibile scaricare una o più versioni precedenti di un BLOB.

Creare prima di tutto un file di testo contenente un elenco di ID versione. Ogni ID versione deve essere visualizzato in una riga separata. Ad esempio:

2020-08-17T05:50:34.2199403Z
2020-08-17T05:50:34.5041365Z
2020-08-17T05:50:36.7607103Z

Quindi, usare il comando azcopy copy con l'opzione --list-of-versions. Specificare il percorso del file di testo che contiene l'elenco delle versioni , ad esempio D:\\list-of-versions.txt.

Scaricare uno snapshot del BLOB

È possibile scaricare uno snapshot del BLOB facendo riferimento al valore DateTime relativo.

Sintassi

azcopy copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>?sharesnapshot=<DateTime-of-snapshot>' '<local-file-path>'

Esempio

azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt?sharesnapshot=2020-09-23T08:21:07.0000000Z' 'C:\myDirectory\myTextFile.txt'

Esempio (endpoint Data Lake Storage)

azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myTextFile.txt?sharesnapshot=2020-09-23T08:21:07.0000000Z' 'C:\myDirectory\myTextFile.txt'

Nota

Se si usa un token di firma di accesso condiviso per autorizzare l'accesso ai dati BLOB, aggiungere lo snapshot DateTime dopo il token di firma di accesso condiviso. Ad esempio: 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt?sv=2018-03-28&ss=bjqt&srs=sco&sp=rjklhjup&se=2019-05-10T04:37:48Z&st=2019-05-09T20:37:48Z&spr=https&sig=/SOVEFfsKDqRry4bk3qz1vAQFwY5DDzp2%2B/3Eykf/JLs%3D&sharesnapshot=2020-09-23T08:21:07.0000000Z'.

Scaricare con flag facoltativi

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

Scenario Flag
Decomprimere automaticamente i file. --decompress
Specificare quanto si desidera che le voci di log correlate alla copia siano dettagliate. --log-level=[WARNING|ERROR|INFO|NONE]
Specificare se e come sovrascrivere i file e i BLOB in conflitto nella destinazione. --overwrite=[true|false|ifSourceNewer|prompt]

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: