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), ujęć argumenty ścieżki z podwójnymi cudzysłowami ("") zamiast pojedynczych cudzysłowów ('').
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), ujęć argumenty ścieżki z podwójnymi cudzysłowami ("") zamiast pojedynczych cudzysłowów ('').
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), ujęć argumenty ścieżki z podwójnymi cudzysłowami ("") zamiast pojedynczych cudzysłowów ('').
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), ujęć argumenty ścieżki z podwójnymi cudzysłowami ("") zamiast pojedynczych cudzysłowów ('').
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 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/write
operacji 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), ujęć argumenty ścieżki z podwójnymi cudzysłowami ("") zamiast pojedynczych cudzysłowów ('').
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:
- Przykłady: pobieranie
- Przykłady: kopiowanie między kontami
- 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: