Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
AzCopy to narzędzie wiersza polecenia, którego można używać do kopiowania obiektów blob lub plików do lub z konta magazynowego. Ten artykuł ułatwia kopiowanie obiektów, katalogów i zasobników z usług Amazon Web Services (AWS) S3 do usługi Azure Blob Storage przy użyciu narzędzia AzCopy.
Uwaga
Narzędzie AzCopy obsługuje standardowe adresy URL w stylu hostowanym wirtualnie lub w stylu ścieżki zdefiniowane przez AWS. Na przykład: https://bucket.s3.amazonaws.com lub https://s3.amazonaws.com/bucket.
Wybierz sposób podawania poświadczeń autoryzacji
Aby autoryzować usługę Azure Storage, użyj identyfikatora Entra firmy Microsoft lub tokenu sygnatury dostępu współdzielonego (SAS).
Aby autoryzować usługę AWS S3, użyj klucza dostępu platformy AWS i klucza dostępu tajnego.
Autoryzowanie za pomocą usługi Azure Storage
Zapoznaj się z artykułem Wprowadzenie do narzędzia AzCopy , aby pobrać narzędzie AzCopy, i wybierz sposób podawania poświadczeń autoryzacji do usługi magazynu.
Uwaga
W przykładach w tym artykule założono, że uwierzytelniasz swoją tożsamość przy użyciu AzCopy login polecenia . Narzędzie AzCopy następnie używa konta Microsoft Entra do autoryzowania dostępu do danych w usłudze Blob Storage.
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://mystorageaccount.blob.core.windows.net/mycontainer?<SAS-token>.
Autoryzowanie za pomocą usługi AWS S3
Zbierz klucz dostępu platformy AWS i tajny klucz dostępu, a następnie ustaw następujące zmienne środowiskowe:
| System operacyjny | Komenda |
|---|---|
| Windows | PowerShell:$env:AWS_ACCESS_KEY_ID=<access-key>$env:AWS_SECRET_ACCESS_KEY=<secret-access-key> W wierszu polecenia użyj polecenia: set AWS_ACCESS_KEY_ID=<access-key>set AWS_SECRET_ACCESS_KEY=<secret-access-key> |
| Linux | export AWS_ACCESS_KEY_ID=<access-key>export AWS_SECRET_ACCESS_KEY=<secret-access-key> |
| macOS | export AWS_ACCESS_KEY_ID=<access-key>export AWS_SECRET_ACCESS_KEY=<secret-access-key> |
Te poświadczenia służą do generowania wstępnie podpisanych adresów URL używanych do kopiowania obiektów.
Kopiowanie obiektów, katalogów i zasobników
Narzędzie AzCopy używa interfejsu API Put Block From URL, więc dane są kopiowane bezpośrednio między usługami AWS S3 i serwerami przechowywania. Te operacje kopiowania nie korzystają z przepustowości sieci komputera.
Wskazówka
Przykłady w tej sekcji ujmują argumenty ścieżki za pomocą pojedynczych apostrofów (''). 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), ujmij argumenty ścieżki w podwójnych cudzysłowach ("") zamiast pojedynczych cudzysłowów ('').
Te przykłady współpracują również z kontami, które mają hierarchiczną przestrzeń nazw.
Dostęp do wielu protokołów w usłudze Data Lake Storage umożliwia korzystanie z tej samej składni adresu URL (blob.core.windows.net) na tych kontach.
Kopiowanie obiektu
Użyj tej samej składni adresu URL (blob.core.windows.net) dla kont, które mają hierarchiczną przestrzeń nazw.
składnia
azcopy copy 'https://s3.amazonaws.com/<bucket-name>/<object-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>'
Przykład
azcopy copy 'https://s3.amazonaws.com/mybucket/myobject' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myblob'
Uwaga
Przykłady w tym artykule używają adresów URL w stylu ścieżki dla zasobników usługi AWS S3 (na przykład: http://s3.amazonaws.com/<bucket-name>).
Możesz również użyć wirtualnych adresów URL w stylu hostowanym (na przykład: http://bucket.s3.amazonaws.com).
Aby dowiedzieć się więcej na temat wirtualnego hostowania zasobników, zapoznaj się z Wirtualne Hostowanie Zasobników.
Kopiowanie katalogu
Użyj tej samej składni adresu URL (blob.core.windows.net) dla kont, które mają hierarchiczną przestrzeń nazw.
składnia
azcopy copy 'https://s3.amazonaws.com/<bucket-name>/<directory-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true
Przykład
azcopy copy 'https://s3.amazonaws.com/mybucket/mydirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true
Uwaga
Ten przykład dodaje flagę --recursive do operacji kopiowania plików we wszystkich podkatalogach.
Kopiowanie zawartości katalogu
Zawartość katalogu można skopiować bez kopiowania samego katalogu, używając symbolu wieloznacznego (*).
składnia
azcopy copy 'https://s3.amazonaws.com/<bucket-name>/<directory-name>/*' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive=true
Przykład
azcopy copy 'https://s3.amazonaws.com/mybucket/mydirectory/*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/mydirectory' --recursive=true
Kopiuj wiadro
Użyj tej samej składni adresu URL (blob.core.windows.net) dla kont, które mają hierarchiczną przestrzeń nazw.
składnia
azcopy copy 'https://s3.amazonaws.com/<bucket-name>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>' --recursive=true
Przykład
azcopy copy 'https://s3.amazonaws.com/mybucket' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive=true
Skopiuj wszystkie buckety we wszystkich regionach
Użyj tej samej składni adresu URL (blob.core.windows.net) dla kont, które mają hierarchiczną przestrzeń nazw.
składnia
azcopy copy 'https://s3.amazonaws.com/' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Przykład
azcopy copy 'https://s3.amazonaws.com' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Skopiuj wszystkie buckety w określonym regionie S3
Użyj tej samej składni adresu URL (blob.core.windows.net) dla kont, które mają hierarchiczną przestrzeń nazw.
składnia
azcopy copy 'https://s3-<region-name>.amazonaws.com/' 'https://<storage-account-name>.blob.core.windows.net' --recursive=true
Przykład
azcopy copy 'https://s3-rds.eu-north-1.amazonaws.com' 'https://mystorageaccount.blob.core.windows.net' --recursive=true
Obsługa różnic w regułach nazewnictwa obiektów
Usługa AWS S3 używa innego zestawu konwencji nazewnictwa dla nazw bucketów w porównaniu z kontenerami blobów na platformie Azure. Możesz je przeczytać tutaj. Jeśli zdecydujesz się skopiować grupę zasobników do konta usługi Azure Storage, operacja kopiowania może zakończyć się niepowodzeniem z powodu różnic nazw.
Narzędzie AzCopy obsługuje dwa typowe problemy, które mogą wystąpić: zasobniki zawierające kropki i przedziały zawierające kolejne łączniki. Nazwy zasobników w AWS S3 mogą zawierać kropki i podwójne łączniki, ale kontenery na platformie Azure nie mogą tego mieć. Narzędzie AzCopy zastępuje kropki łącznikami, a kolejne łączniki zamienia na liczbę reprezentującą liczbę tych łączników (na przykład koszyk o nazwie my----bucket staje się my-4-bucket).
Ponadto, gdy narzędzie AzCopy kopiuje pliki, sprawdza kolizje nazw i próbuje je rozwiązać. Jeśli na przykład istnieją zasobniki o nazwie bucket-name i bucket.name, narzędzie AzCopy rozpoznaje zasobnik o nazwie bucket.name najpierw na bucket-name, a następnie na bucket-name-2.
Obsługa różnic w metadanych obiektu
Usługi AWS S3 i Azure umożliwiają używanie różnych zestawów znaków w nazwach kluczy obiektów. Możesz przeczytać o znakach używanych przez usługę AWS S3 tutaj. Po stronie platformy Azure klucze obiektów blob są zgodne z regułami nazewnictwa identyfikatorów języka C#.
W ramach polecenia narzędzia AzCopy copy można podać wartość opcjonalnej s2s-handle-invalid-metadata flagi określającej sposób obsługi plików, w których metadane pliku zawierają niezgodne nazwy kluczy. W poniższej tabeli opisano każdą wartość flagi.
| Wartość flagi | Opis |
|---|---|
| WykluczJeśliNieprawidłowe | (Opcja domyślna) Metadane nie są uwzględniane w przesłanym obiekcie. Narzędzie AzCopy rejestruje ostrzeżenie. |
| FailIfInvalid | Obiekty nie są kopiowane. Narzędzie AzCopy rejestruje błąd i zawiera ten błąd w liczbie nieudanych operacji wyświetlanych w podsumowaniu transferu. |
| ZmieńNazwęJeśliNiepoprawny | Narzędzie AzCopy rozpoznaje nieprawidłowy klucz metadanych i kopiuje obiekt na platformę Azure przy użyciu pary rozpoznanych wartości klucza metadanych. Aby dowiedzieć się dokładnie, jakie kroki wykonuje narzędzie AzCopy w celu zmiany nazwy kluczy obiektów, zobacz sekcję How AzCopy renames object keys (Jak narzędzie AzCopy zmienia nazwę kluczy obiektów ). Jeśli narzędzie AzCopy nie może zmienić nazwy klucza, obiekt nie zostanie skopiowany. |
Jak narzędzie AzCopy zmienia nazwę kluczy obiektów
Narzędzie AzCopy wykonuje następujące kroki:
Zamienia nieprawidłowe znaki na '_'.
Dodaje ciąg
rename_na początku nowego prawidłowego klucza.Ten klucz służy do zapisywania oryginalnej wartości metadanych.
Dodaje ciąg
rename_key_na początku nowego prawidłowego klucza. Ten klucz służy do zapisywania nieprawidłowego oryginalnego klucza metadanych. Możesz użyć tego klucza, aby spróbować odzyskać metadane po stronie platformy Azure, ponieważ klucz metadanych jest zachowywany jako wartość w usłudze Blob Storage.
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ć. Ustaw parametr na S3Blob, aby wskazać, że polecenie kopiuje z Amazon S3 do Azure Blob Storage.
Następne kroki
Więcej przykładów można znaleźć w następujących artykułach:
- Przykłady: przesyłanie
- Przykłady: pobieranie
- Przykłady: kopiowanie między kontami
- Przykłady: Synchronizacja
- Przykłady: Google Cloud Storage
- Przykłady: Azure Files
Zobacz następujące artykuły, aby skonfigurować ustawienia, zoptymalizować wydajność i rozwiązać problemy: