Przekazywanie plików do usługi Azure Blob Storage przy użyciu narzędzia AzCopy

Pliki i katalogi można przekazać do 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 pobieranie obiektów blob, 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.

Wprowadzenie

Zapoznaj się z artykułem Rozpoczęcie pracy z narzędziem AzCopy, aby pobrać narzędzie AzCopy i dowiedzieć się, jak można przekazywać poświadczenia autoryzacyjne usłudze magazynu.

Uwaga

W przykładach w tym artykule założono, że podasz poświadczenia autoryzacji przy użyciu identyfikatora Entra firmy Microsoft.

Jeśli chcesz użyć tokenu SAS do autoryzowania dostępu do danych obiektów blob, dołącz 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>'.

Tworzenie kontenera

Użyj polecenia azcopy make , aby utworzyć kontener.

Wskazówka

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), umieszczaj argumenty ścieżki w podwójnych cudzysłowach ("") zamiast cudzysłowów pojedynczych ('').

Składnia

azcopy make 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>'

Przykład

azcopy make 'https://mystorageaccount.blob.core.windows.net/mycontainer'

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

azcopy make 'https://mystorageaccount.dfs.core.windows.net/mycontainer'

Aby uzyskać szczegółowe dokumenty referencyjne, zobacz azcopy make.

Przekazywanie pliku

Prześlij plik za pomocą polecenia azcopy copy.

Wskazówka

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), umieszczaj argumenty ścieżki w podwójnych cudzysłowach ("") zamiast cudzysłowów pojedynczych ('').

Składnia

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

Przykład

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

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

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

Plik można również przesłać za pomocą symbolu wieloznacznego (*) w dowolnym miejscu w ścieżce pliku lub nazwie pliku. Na przykład: 'C:\myDirectory\*.txt', lub C:\my*\*.txt.

Prześlij katalog

Prześlij katalog za pomocą polecenia azcopy copy.

Ten przykład kopiuje katalog wraz ze wszystkimi znajdującymi się w nim plikami do kontenera obiektów Blob. Wynikiem jest katalog w kontenerze o tej samej nazwie.

Wskazówka

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), umieszczaj argumenty ścieżki w podwójnych cudzysłowach ("") zamiast cudzysłowów pojedynczych ('').

Składnia

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

Przykład

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

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

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

Aby skopiować do katalogu w kontenerze, wystarczy określić nazwę tego katalogu w ciągu polecenia.

Przykład

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

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

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

Jeśli określisz nazwę katalogu, który nie istnieje w kontenerze, narzędzie AzCopy utworzy nowy katalog o tej nazwie.

Przekazywanie zawartości katalogu

Prześlij zawartość katalogu przy użyciu polecenia azcopy copy. Użyj symbolu wieloznacznego (*), aby przekazać zawartość bez kopiowania samego katalogu zawierającego.

Wskazówka

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), umieszczaj argumenty ścieżki w podwójnych cudzysłowach ("") zamiast cudzysłowów pojedynczych ('').

Składnia

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

Przykład

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

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

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

Dodaj flagę --recursive, aby przesyłać pliki ze wszystkich podkatalogów.

Przekazywanie określonych plików

Możesz przesłać określone pliki, używając pełnych nazw plików, częściowych nazw z symbolami wieloznacznymi (*), lub za pomocą daty i godziny.

Wskazówka

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 plików

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

Składnia

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

Przykład

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

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

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

W tym przykładzie narzędzie AzCopy przesyła C:\myDirectory\photos katalog i C:\myDirectory\documents\myFile.txt plik. Dołącz opcję --recursive, aby przenieść wszystkie pliki w katalogu C:\myDirectory\photos.

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

Użyj znaków wieloznacznych

Użyj polecenia azcopy copy z opcją --include-pattern. Określ fragmenty nazw zawierające znaki wieloznaczne. Oddzielaj nazwy średnikami (;).

Składnia

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

Przykład

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

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

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

Możesz również wykluczyć pliki 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 plików, a nie do ścieżki. Jeśli chcesz skopiować wszystkie pliki tekstowe znajdujące się w drzewie katalogów, użyj opcji -recursive, aby uwzględnić całe drzewo katalogów, a następnie użyj opcji -include-pattern i określ *.txt, aby skopiować wszystkie pliki tekstowe.

Prześlij pliki, które zostały zmodyfikowane przed lub po określonej dacie i godzinie

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 przekazano pliki, które zostały zmodyfikowane w określonym dniu lub po określonej dacie.

Składnia

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

Przykład

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

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

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

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

Przesyłanie za pomocą tagów indeksujących

Możesz przekazać plik i dodać tagi indeksu obiektów blob do docelowego obiektu blob.

Jeśli używasz autoryzacji Microsoft Entra, przypisz rolę Właściciela danych obiektu blob usługi Storage podmiotowi zabezpieczeń lub przyznaj mu uprawnienia do Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/writeoperacji dostawcy zasobów platformy Azure za pomocą niestandardowej roli Azure. Jeśli używasz tokenu sygnatury dostępu współdzielonego (SAS), token musi zapewnić dostęp do tagów obiektu blob za pośrednictwem uprawnienia sygnatury dostępu współdzielonego t .

Aby dodać tagi, użyj opcji --blob-tags z zakodowaną w adresie URL parą klucz-wartość. Aby na przykład dodać klucz my tag i wartość my tag value, uwzględnij --blob-tags='my%20tag=my%20tag%20value' w parametrze docelowym.

Oddzielaj wiele tagów indeksu znakiem ampersand (&). Aby na przykład dodać klucz my second tag i wartość my second tag value, kompletny ciąg opcji to --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'.

W poniższych przykładach pokazano, jak używać --blob-tags opcji.

Wskazówka

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), umieszczaj argumenty ścieżki w podwójnych cudzysłowach ("") zamiast cudzysłowów pojedynczych ('').

Przekazywanie pliku

azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt' --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

Przekazywanie katalogu

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

Przekazywanie zawartości katalogu

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory' --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

Uwaga

Jeśli określisz katalog dla źródła, wszystkie obiekty blob skopiowane do miejsca docelowego mają te same tagi, które zostały określone w poleceniu .

Przesyłanie z opcjonalnymi flagami

Możesz dostosować operację przesyłania za pomocą opcjonalnych flag. Oto kilka przykładów.

Scenariusz Flaga
Prześlij pliki jako obiekty blob typu Append Blob lub Page Blob. --blob-type=[BlockBlob|PageBlob|AppendBlob]
Przekaż dane do określonej warstwy dostępu (na przykład warstwy Archiwum). --block-blob-tier=[None|Gorąca|Chłodna|Archiwum]

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

Określanie typów źródłowych i docelowych

Narzędzie AzCopy używa parametru --from-to do jawnego zdefiniowania typów zasobów źródłowych i docelowych, gdy automatyczne wykrywanie może zakończyć się niepowodzeniem — na przykład w scenariuszach potokowych lub emulatorach. Ten parametr pomaga narzędziu AzCopy zrozumieć kontekst transferu i odpowiednio zoptymalizować.

Wartość FromTo Description
LocalBlob Przekazywanie z lokalnego systemu plików do usługi Azure Blob Storage
LocalBlobFS Przekazywanie z lokalnego systemu plików do usługi Azure Data Lake Gen2 (BlobFS)
PipeBlob Przesyłać strumień danych z potoku do usługi Azure Blob Storage
PipeFile Przesyłanie danych strumieniowo z potoku do usługi Azure File Storage

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: