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:
- Esempi: Caricamento
- Esempi: Copiare tra account
- 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: