Pobieranie obiektów blob z 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.

Rozpoczęcie pracy

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

Uwaga

W przykładach w tym artykule założono, że podano poświadczenia autoryzacji przy użyciu Azure Active Directory (Azure AD).

Jeśli wolisz użyć tokenu sygnatury dostępu współdzielonego 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 za pomocą polecenia azcopy copy .

Porada

W tym przykładzie ujęta jest ścieżka argumentów z pojedynczymi cudzysłowami ('). Używaj pojedynczych cudzysłowów we wszystkich powłokach poleceń z wyjątkiem powłoki poleceń Windows (cmd.exe). Jeśli używasz powłoki poleceń 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 (hierarchiczna przestrzeń nazw)

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 obliczonym skrótem. 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 za pomocą polecenia azcopy copy .

Porada

W tym przykładzie ujęta jest ścieżka argumentów z pojedynczymi cudzysłowami ('). Używaj pojedynczych cudzysłowów we wszystkich powłokach poleceń z wyjątkiem powłoki poleceń Windows (cmd.exe). Jeśli używasz powłoki poleceń 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 (hierarchiczna przestrzeń nazw)

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

Porada

W tym przykładzie ujęta jest ścieżka argumentów z pojedynczymi cudzysłowami ('). Używaj pojedynczych cudzysłowów we wszystkich powłokach poleceń z wyjątkiem powłoki poleceń Windows (cmd.exe). Jeśli używasz powłoki poleceń Windows (cmd.exe), zamiast cudzysłowów ("") zamiast cudzysłowów pojedynczych (').

Uwaga

Obecnie ten scenariusz jest obsługiwany tylko dla 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 aby pobrać pliki we wszystkich podkatalogach.

Pobieranie określonych obiektów blob

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

Porada

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

Określanie wielu kompletnych 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 (hierarchiczna przestrzeń nazw)

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 przenosi 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 kopiowania narzędzia azcopy ).

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 za pomocą ś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 kopiowania narzędzia azcopy ).

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 polecenia –include-pattern 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).

W poniższych przykładach są pobierane 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 (hierarchiczna przestrzeń nazw)

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ą kopiowania narzędzia azcopy .

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. 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 (hierarchiczna przestrzeń nazw)

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 sygnatury dostępu współdzielonego 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=%2FSOVEFfsKDqRry4bk3qz1vAQFwY5DDzp2%2B%2F3Eykf%2FJLs%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. --dekompresja
Określ, jak szczegółowe mają być wpisy dziennika związane z kopiowaniem. --log-level=[WARNING| 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: