Udostępnij za pomocą


Kopiowanie obiektów blob między kontami usługi Azure Storage przy użyciu narzędzia AzCopy

AzCopy v10 to narzędzie wiersza polecenia, które umożliwia kopiowanie obiektów typu blob, katalogów i kontenerów między kontami magazynowymi.

Przykłady innych typów zadań, takich jak wysyłanie plików, pobieranie blobów i synchronizowanie z Blob Storage, zobacz w sekcji Następne kroki tego artykułu.

Narzędzie AzCopy używa interfejsów API serwer-serwer, dlatego dane są kopiowane bezpośrednio między serwerami magazynu.

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 przyjęto założenie, że podasz poświadczenia autoryzacji przy użyciu Microsoft Entra ID i że identyfikacja Microsoft Entra ma odpowiednie przypisania ról dla zarówno źródłowych, jak i docelowych kont.

Alternatywnie możesz dołączyć token SAS do źródłowego lub docelowego adresu URL w każdym poleceniu narzędzia AzCopy. Na przykład: azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>'.

Wytyczne

Zastosuj następujące wskazówki do poleceń narzędzia AzCopy.

  • Jeśli używasz autoryzacji Microsoft Entra zarówno dla źródła, jak i miejsca docelowego, oba konta muszą należeć do tej samej dzierżawy firmy Microsoft Entra.

  • Klient musi mieć dostęp do sieci do kont przechowywania źródłowego i docelowego.

    Aby dowiedzieć się, jak skonfigurować ustawienia sieciowe dla każdego konta magazynu, zobacz Konfigurowanie zapór i sieci wirtualnych usługi Azure Storage.

    Aby uzyskać informacje na temat obsługiwanych topologii sieci podczas kopiowania między kontami, sprawdź Kopiowanie obiektów blob między kontami magazynowymi z ograniczeniem dostępu.

  • Jeśli kopiujesz do konta magazynu blokowych obiektów blob w warstwie Premium, pomiń warstwę dostępu obiektu blob z operacji kopiowania, ustawiając wartość s2s-preserve-access-tier na false (na przykład: --s2s-preserve-access-tier=false). Konta magazynu blokowych obiektów blob w warstwie Premium nie obsługują warstw dostępu.

  • Przepływność operacji kopiowania można zwiększyć, ustawiając wartość zmiennej środowiskowej AZCOPY_CONCURRENCY_VALUE . Aby dowiedzieć się więcej, zobacz Zwiększanie współbieżności.

  • Jeśli źródłowe obiekty blob mają tagi indeksu i chcesz zachować te tagi, należy ponownie zastosować je do docelowych obiektów blob. Aby uzyskać informacje na temat ustawiania tagów indeksu, zobacz sekcję Kopiowanie obiektów blob na inne konto magazynu z tagami indeksu w tym artykule.

Kopiowanie obiektu blob

Skopiuj obiekt blob do innego konta magazynu 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://<source-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>'

Przykład

azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myTextFile.txt' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myTextFile.txt'

Przykład (punkty końcowe usługi Data Lake Storage)

azcopy copy 'https://mysourceaccount.dfs.core.windows.net/mycontainer/myTextFile.txt' 'https://mydestinationaccount.dfs.core.windows.net/mycontainer/myTextFile.txt'

Operacja kopiowania jest synchroniczna. Gdy polecenie zakończy działanie, oznacza to, że wszystkie pliki zostały skopiowane.

Kopiowanie katalogu

Skopiuj katalog do innego konta magazynu 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://<source-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<directory-path>' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --recursive

Przykład

azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive

Przykład (punkty końcowe usługi Data Lake Storage)

azcopy copy 'https://mysourceaccount.dfs.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.dfs.core.windows.net/mycontainer' --recursive

Operacja kopiowania jest synchroniczna. Po zakończeniu wykonywania polecenia, wszystkie pliki są kopiowane.

Kopiowanie kontenera

Skopiuj kontener do innego konta magazynu 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://<source-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --recursive

Przykład

azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive

Przykład (punkty końcowe usługi Data Lake Storage)

azcopy copy 'https://mysourceaccount.dfs.core.windows.net/mycontainer' 'https://mydestinationaccount.dfs.core.windows.net/mycontainer' --recursive

Operacja kopiowania jest synchroniczna. Gdy polecenie się zakończy, wszystkie pliki są kopiowane.

Kopiowanie kontenerów, katalogów i obiektów blob

Skopiuj wszystkie kontenery, katalogi i obiekty blob do innego konta magazynu 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://<source-storage-account-name>.<blob or dfs>.core.windows.net/' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/' --recursive

Przykład

azcopy copy 'https://mysourceaccount.blob.core.windows.net/' 'https://mydestinationaccount.blob.core.windows.net' --recursive

Przykład (punkty końcowe usługi Data Lake Storage)

azcopy copy 'https://mysourceaccount.dfs.core.windows.net/' 'https://mydestinationaccount.dfs.core.windows.net' --recursive

Operacja kopiowania jest synchroniczna. Gdy polecenie wykona się, oznacza to, że wszystkie pliki zostały skopiowane.

Kopiowanie obiektów blob i dodawanie tagów indeksu

Skopiuj obiekty blob na inne konto magazynu i dodaj tagi indeksu obiektów blob do docelowego obiektu blob.

Jeśli używasz autoryzacji Microsoft Entra, przypisz rolę Właściciela danych obiektu blob Storage do podmiotu zabezpieczeń lub przyznaj mu uprawnienia do Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/writeoperacji dostawcy zasobów Azure za pośrednictwem 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, dodaj --blob-tags='my%20tag=my%20tag%20value' do parametru docelowego.

Oddzielaj wiele tagów indeksu znakiem 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

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

Przykład obiektu blob


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

Przykład katalogu

azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

Przykład kontenera

azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

Przykład konta

azcopy copy 'https://mysourceaccount.blob.core.windows.net/' 'https://mydestinationaccount.blob.core.windows.net' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

Operacja kopiowania jest synchroniczna. Gdy polecenie zostanie wykonane, wszystkie pliki są kopiowane.

Uwaga

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

Kopiowanie z opcjonalnymi flagami

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

Scenariusz Flaga
Skopiuj obiekty blob jako blokowe, stronicowe lub uzupełnialne obiekty blob. --blob-type=[BlockBlob|PageBlob|AppendBlob]
Skopiuj do określonej warstwy dostępu (np. warstwy archiwum). --block-blob-tier=[None|Gorąca|Chłodna|Archiwum]
Automatycznie dekompresuj pliki. --decompress=[gzip|deflate]

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
BlobBlob Kopiowanie między dwiema lokalizacjami usługi Azure Blob Storage
BlobBlobFS Kopiowanie z usługi Azure Blob Storage do usługi Azure Data Lake Gen2 (BlobFS)
BlobFSBlob Kopiowanie z usługi Azure Data Lake Gen2 (BlobFS) do usługi Azure Blob Storage
BlobFSBlobFS Kopiowanie między dwiema lokalizacjami usługi Azure Data Lake Gen2 (BlobFS)
BlobFSFile Kopiowanie z usługi Azure Data Lake Gen2 (BlobFS) do usługi Azure File Storage
BlobFile Kopiowanie z usługi Azure Blob Storage do usługi Azure File Storage
FileBlob Kopiowanie z usługi Azure File Storage do usługi Azure Blob Storage
FileBlobFS Kopiowanie z usługi Azure File Storage do usługi Azure Data Lake Gen2 (BlobFS)

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: