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.

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

Tworzenie kontenera

Aby utworzyć kontener, możesz użyć polecenia azcopy make .

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

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

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

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 '<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), zamiast cudzysłowów ("") zamiast cudzysłowów pojedynczych ('').

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 przy użyciu średnika (;).

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 firmy Microsoft Entra, podmiot zabezpieczeń musi mieć przypisaną rolę Właściciela danych obiektu blob usługi Storage lub musi mieć uprawnienia do Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/writeoperacji dostawcy zasobów platformy Azure za pośrednictwem niestandardowej roli platformy Azure. Jeśli używasz tokenu sygnatury dostępu współdzielonego (SAS), ten 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 --blob-tags opcji wraz z parą klucz-wartość zakodowana w adresie URL. Aby na przykład dodać klucz my tag i wartość my tag value, należy dodać --blob-tags='my%20tag=my%20tag%20value' go do parametru docelowego.

Oddzielaj wiele tagów indeksu przy użyciu elementu ampersand (&). Jeśli na przykład chcesz 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

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

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 będą miały 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.

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: