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

Obiekty blob, katalogi i kontenery można kopiować między kontami magazynu przy użyciu narzędzia wiersza polecenia AzCopy w wersji 10.

Aby zapoznać się z przykładami innych typów zadań, takich jak przekazywanie plików, pobieranie obiektów blob i synchronizowanie z usługą Blob Storage, zobacz linki przedstawione 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.

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 i że tożsamość firmy Microsoft Entra ma odpowiednie przypisania ról zarówno dla kont źródłowych, jak i docelowych.

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 sieciowy do kont magazynu ź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.

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

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, dlatego gdy polecenie zostanie zwrócone, oznacza to, że 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), zamiast cudzysłowów ("") zamiast cudzysłowów pojedynczych ('').

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. Wszystkie pliki zostały skopiowane po powrocie polecenia.

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

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. Wszystkie pliki zostały skopiowane po powrocie polecenia.

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

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, dlatego gdy polecenie zostanie zwrócone, oznacza to, że 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 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

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

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. Wszystkie pliki zostały skopiowane po powrocie polecenia.

Uwaga

Jeśli określisz katalog, kontener lub konto 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 .

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.

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: