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), ujęć argumenty ścieżki z podwójnymi cudzysłowami ("") zamiast pojedynczych cudzysłowów ('').
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), ujęć argumenty ścieżki z podwójnymi cudzysłowami ("") zamiast pojedynczych cudzysłowów ('').
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), ujęć argumenty ścieżki z podwójnymi cudzysłowami ("") zamiast pojedynczych cudzysłowów ('').
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), ujęć argumenty ścieżki z podwójnymi cudzysłowami ("") zamiast pojedynczych cudzysłowów ('').
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.
Pobieranie zawartości statycznej witryny internetowej
Narzędzie AzCopy nie obsługuje pobierania danych ze statycznych witryn internetowych hostowanych w usłudze Azure Storage za pośrednictwem publicznego punktu końcowego, takiego jak https://mystorageaccount.z12.web.core.windows.net
. Zamiast tego użyj kontenera $web
w punkcie końcowym obiektu blob, aby pobrać pliki ze statycznej witryny internetowej.
azcopy copy 'https://mystorageaccount.blob.core.windows.net/$web/*' 'C:\myDirectory' --recursive
Następne kroki
Więcej przykładów można znaleźć w następujących artykułach:
- Przykłady: przekazywanie
- Przykłady: kopiowanie między kontem
- Przykłady: Synchronizacja
- Przykłady: zasobniki usługi Amazon S3
- Przykłady: Google Cloud Storage
- Przykłady: Azure Files
- Samouczek: migrowanie danych lokalnych do magazynu w chmurze przy użyciu narzędzia AzCopy
Zobacz następujące artykuły, aby skonfigurować ustawienia, zoptymalizować wydajność i rozwiązać problemy: