Udostępnij za pomocą


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 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 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.

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), 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

Przekaż plik przy użyciu polecenia azcopy copy .

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), umieszczaj argumenty ścieżki w podwójnych cudzysłowach ("") zamiast używać 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ż przekazać przy użyciu symbolu wieloznacznego (*) w dowolnym miejscu w ścieżce pliku lub nazwie pliku. Na przykład: 'C:\myDirectory\*.txt', lub C:\my*\*.txt.

Przekazywanie katalogu

Przekaż katalog przy użyciu polecenia azcopy copy .

Ten przykład kopiuje katalog (i wszystkie pliki w tym katalogu) do kontenera obiektów blob. Wynikiem jest katalog w kontenerze o tej samej nazwie.

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 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

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

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 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'

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

Przekazywanie określonych plików

Określone pliki można przekazać 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 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. Uwzględnij --recursive opcję transferu wszystkich plików w C:\myDirectory\photos katalogu.

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żywanie symboli wieloznacznych

Użyj polecenia azcopy copy z opcją --include-pattern . Określ nazwy częściowe, które zawierają symbole 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, 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.

Przekazywanie plików, 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 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 .

Przekazywanie za pomocą tagów indeksu

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.

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 w podwójne cudzysłowy ("") 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 .

Przekazywanie z opcjonalnymi flagami

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

Scenariusz Flaga
Przekaż pliki jako uzupełnialne lub stronicowe obiekty 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łanie strumieniowe danych z potoku do usługi Azure Blob Storage
PipeFile Przesyłanie strumieniowe danych 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: