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
nafalse
(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), 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, 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), 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. 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), 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. 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), 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, 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/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
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. 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:
- Przykłady: przekazywanie
- Przykłady: pobieranie
- 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:
- Ustawienia konfiguracji narzędzia AzCopy
- Optymalizowanie wydajności narzędzia AzCopy
- Znajdowanie błędów i wznawianie zadań przy użyciu plików dziennika i planu w narzędziu AzCopy
- Rozwiązywanie problemów z narzędziem AzCopy w wersji 10
- Używanie narzędzia AzCopy do kopiowania obiektów blob między kontami usługi Azure Storage z ograniczeniami sieci