Pobieranie obiektów blob z usługi Azure Blob Storage przy użyciu narzędzia AzCopy

Obiekty blob i katalogi można pobrać z usługi Blob Storage przy użyciu narzędzia wiersza polecenia AzCopy w wersji 10.

Aby zapoznać się z przykładami innych typów zadań, takich jak przekazywanie plików, synchronizowanie z usługą Blob Storage lub kopiowanie obiektów blob między kontami, zobacz linki przedstawione w sekcji Następne kroki tego artykułu.

Rozpocznij

Zapoznaj się z artykułem Wprowadzenie do narzędzia AzCopy, aby pobrać narzędzie AzCopy i dowiedzieć się więcej o sposobach udostępniania poświadczeń autoryzacji do usługi magazynu.

Uwaga

W przykładach w tym artykule przyjęto założenie, że podano poświadczenia autoryzacji przy użyciu identyfikatora Entra firmy Microsoft.

Jeśli wolisz użyć tokenu SAS do autoryzowania dostępu do danych obiektów blob, możesz dołączyć ten token do adresu URL zasobu w każdym poleceniu narzędzia AzCopy. Na przykład: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'.

Pobieranie obiektu blob

Pobierz obiekt blob przy użyciu polecenia azcopy copy .

Napiwek

W tym przykładzie argumenty ścieżki są ujęte w apostrofy (''). Używaj pojedynczych cudzysłowów we wszystkich powłokach poleceń z wyjątkiem powłoki poleceń systemu Windows (cmd.exe). Jeśli używasz powłoki poleceń systemu Windows (cmd.exe), zamiast cudzysłowów ("") zamiast cudzysłowów pojedynczych ('').

Składnia

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

Przykład

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

Przykład (punkt końcowy usługi Data Lake Storage)

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

Uwaga

Content-md5 Jeśli wartość właściwości obiektu blob zawiera skrót, narzędzie AzCopy oblicza skrót MD5 dla pobranych danych i sprawdza, czy skrót MD5 przechowywany we właściwości obiektu blob Content-md5 jest zgodny z wartością skrótu obliczeniowego. Jeśli te wartości nie są zgodne, pobieranie zakończy się niepowodzeniem, chyba że to zachowanie zostanie zastąpione przez dołączenie --check-md5=NoCheck lub --check-md5=LogOnly polecenie kopiowania.

Pobieranie katalogu

Pobierz katalog przy użyciu polecenia azcopy copy .

Napiwek

W tym przykładzie argumenty ścieżki są ujęte w apostrofy (''). Używaj pojedynczych cudzysłowów we wszystkich powłokach poleceń z wyjątkiem powłoki poleceń systemu Windows (cmd.exe). Jeśli używasz powłoki poleceń systemu Windows (cmd.exe), zamiast cudzysłowów ("") zamiast cudzysłowów pojedynczych ('').

Składnia

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

Przykład

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

Przykład (punkt końcowy usługi Data Lake Storage)

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

W tym przykładzie zostanie wyświetlony katalog o nazwie C:\myDirectory\myBlobDirectory zawierający wszystkie pobrane obiekty blob.

Pobieranie zawartości katalogu

Możesz pobrać zawartość katalogu bez kopiowania samego katalogu, korzystając z symbolu wieloznacznego (*).

Napiwek

W tym przykładzie argumenty ścieżki są ujęte w apostrofy (''). Używaj pojedynczych cudzysłowów we wszystkich powłokach poleceń z wyjątkiem powłoki poleceń systemu Windows (cmd.exe). Jeśli używasz powłoki poleceń systemu Windows (cmd.exe), zamiast cudzysłowów ("") zamiast cudzysłowów pojedynczych ('').

Uwaga

Obecnie ten scenariusz jest obsługiwany tylko w przypadku kont, które nie mają hierarchicznej przestrzeni nazw.

Składnia

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

Przykład

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

Dołącz flagę --recursive do pobrania plików we wszystkich podkatalogach.

Pobieranie określonych obiektów blob

Określone obiekty blob można pobrać przy użyciu pełnych nazw plików, częściowych nazw z symbolami wieloznacznymi (*), lub przy użyciu dat i godzin.

Napiwek

Te przykłady otaczają argumenty ścieżki pojedynczymi cudzysłowymi (""). Używaj pojedynczych cudzysłowów we wszystkich powłokach poleceń z wyjątkiem powłoki poleceń systemu Windows (cmd.exe). Jeśli używasz powłoki poleceń systemu Windows (cmd.exe), zamiast cudzysłowów ("") zamiast cudzysłowów pojedynczych ('').

Określanie wielu pełnych nazw obiektów blob

Użyj polecenia azcopy copy z opcją --include-path . Oddzielaj poszczególne nazwy obiektów blob przy użyciu średnika (;).

Składnia

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>

Przykład

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

Przykład (punkt końcowy usługi Data Lake Storage)

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

W tym przykładzie narzędzie AzCopy przesyła https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory/photos katalog i https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory/documents/myFile.txt plik. Uwzględnij --recursive opcję transferu wszystkich obiektów blob w https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory/photos katalogu.

Można również wykluczyć obiekty blob przy użyciu --exclude-path opcji . Aby dowiedzieć się więcej, zobacz azcopy copy reference docs (Dokumentacja dotycząca narzędzia azcopy copy ).

Używanie symboli wieloznacznych

Użyj polecenia azcopy copy z opcją --include-pattern . Określ nazwy częściowe, które zawierają symbole wieloznaczne. Oddzielaj nazwy przy użyciu średnika (;).

Składnia

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>

Przykład

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

Przykład (hierarchiczna przestrzeń nazw)

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

Można również wykluczyć obiekty blob przy użyciu --exclude-pattern opcji . Aby dowiedzieć się więcej, zobacz azcopy copy reference docs (Dokumentacja dotycząca narzędzia azcopy copy ).

Opcje --include-pattern i --exclude-pattern dotyczą tylko nazw obiektów blob, a nie ścieżki. Jeśli chcesz skopiować wszystkie pliki tekstowe (obiekty blob), które istnieją w drzewie katalogów, użyj -recursive opcji , aby pobrać całe drzewo katalogów, a następnie użyj -include-pattern elementu i określ *.txt , aby pobrać wszystkie pliki tekstowe.

Pobieranie obiektów blob, które zostały zmodyfikowane przed datą i godziną

Użyj polecenia azcopy copy z opcją --include-before lub --include-after . Określ datę i godzinę w formacie ISO-8601 (na przykład: 2020-08-19T15:04:00Z).

Poniższe przykłady pobierają pliki, które zostały zmodyfikowane w określonym dniu lub po określonej dacie.

Składnia

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>

Przykład

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

Przykład (punkt końcowy usługi Data Lake Storage)

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

Aby uzyskać szczegółowe informacje, zobacz dokumentację dotyczącą narzędzia azcopy copy .

Pobieranie poprzednich wersji obiektu blob

Jeśli włączono przechowywanie wersji obiektów blob, możesz pobrać co najmniej jedną poprzednią wersję obiektu blob.

Najpierw utwórz plik tekstowy zawierający listę identyfikatorów wersji. Każdy identyfikator wersji musi być wyświetlany w osobnym wierszu. Na przykład:

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

Następnie użyj polecenia azcopy copy z opcją --list-of-versions . Określ lokalizację pliku tekstowego zawierającego listę wersji (na przykład: D:\\list-of-versions.txt).

Pobieranie migawki obiektu blob

Migawkę obiektu blob można pobrać, odwołując się do wartości DateTime migawki obiektu blob.

Składnia

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

Przykład

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

Przykład (punkt końcowy usługi 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'

Uwaga

Jeśli używasz tokenu SAS do autoryzowania dostępu do danych obiektów blob, dołącz migawkę DateTime po tokenie SAS. Na przykład: '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'.

Pobieranie z opcjonalnymi flagami

Operację pobierania można dostosować przy użyciu opcjonalnych flag. Oto kilka przykładów.

Scenariusz Flaga
Automatycznie dekompresuj pliki. --Dekompresji
Określ, jak szczegółowe mają być wpisy dziennika związane z kopiowaniem. --log-level=[OSTRZEŻENIE|BŁĄD|INFO|BRAK]
Określ, czy i jak zastąpić pliki powodujące konflikty i obiekty blob w miejscu docelowym. --overwrite=[true|false|ifSourceNewer|prompt]

Aby uzyskać pełną listę, zobacz opcje.

Następne kroki

Więcej przykładów można znaleźć w następujących artykułach:

Zobacz następujące artykuły, aby skonfigurować ustawienia, zoptymalizować wydajność i rozwiązać problemy: