Synchronizowanie z usługą Azure Blob Storage przy użyciu narzędzia AzCopy
Magazyn lokalny można zsynchronizować z usługą Azure Blob Storage przy użyciu narzędzia wiersza polecenia AzCopy w wersji 10.
Zawartość lokalnego systemu plików można zsynchronizować z kontenerem obiektów blob. Można również synchronizować kontenery i katalogi wirtualne ze sobą. Synchronizacja jest jednym ze sposobów. Innymi słowy, wybierasz, który z tych dwóch punktów końcowych jest źródłem i który z nich jest miejscem docelowym. Synchronizacja używa również serwera do interfejsów API serwera. Przykłady przedstawione w tej sekcji działają również z kontami, które mają hierarchiczną przestrzeń nazw.
Uwaga
Bieżąca wersja narzędzia AzCopy nie synchronizuje się między innymi źródłami i miejscami docelowymi (na przykład: magazyn plików lub zasobniki S3 usług Amazon Web Services (AWS).
Aby zapoznać się z przykładami innych typów zadań, takich jak przekazywanie plików, pobieranie obiektów blob 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>'
.
Wytyczne
Domyślnie polecenie synchronizacji porównuje nazwy plików i ostatnio zmodyfikowane znaczniki czasu. To zachowanie można zastąpić, aby użyć skrótów MD5 zamiast ostatniej modyfikacji sygnatur czasowych przy użyciu flagi --compare-hash
. --delete-destination
Ustaw opcjonalną flagę na wartość true
lub prompt
usuń pliki w katalogu docelowym, jeśli te pliki nie istnieją już w katalogu źródłowym.
Jeśli flaga zostanie ustawiona na
--delete-destination
true
, narzędzie AzCopy usuwa pliki bez wyświetlania monitu. Jeśli chcesz wyświetlić monit przed usunięciem pliku za pomocą narzędzia AzCopy, ustaw flagę--delete-destination
naprompt
.Jeśli planujesz ustawić flagę
--delete-destination
naprompt
lubfalse
, rozważ użycie polecenia copy zamiast polecenia synchronizacji i ustaw--overwrite
parametr naifSourceNewer
. Polecenie kopiowania zużywa mniej pamięci i wiąże się z mniejszymi kosztami rozliczeniowymi, ponieważ operacja kopiowania nie musi indeksować źródła ani miejsca docelowego przed przeniesieniem plików.Jeśli nie planujesz używać flagi
--compare-hash
, maszyna, na której uruchomiono polecenie synchronizacji, powinna mieć dokładny zegar systemowy, ponieważ czasy ostatniej modyfikacji mają krytyczne znaczenie podczas określania, czy plik powinien zostać przeniesiony. Jeśli system ma znaczne niesymetryczność zegara, należy unikać modyfikowania plików w miejscu docelowym zbyt blisko czasu, w którym planujesz uruchomić polecenie synchronizacji.Narzędzie AzCopy używa interfejsów API serwer-serwer do synchronizowania danych między kontami magazynu. Oznacza to, że dane są kopiowane bezpośrednio między serwerami magazynu. Jednak narzędzie AzCopy konfiguruje i monitoruje każdy transfer oraz w przypadku większych kont magazynu (na przykład kont zawierających miliony obiektów blob), narzędzie AzCopy może wymagać znacznej ilości zasobów obliczeniowych do wykonania tych zadań. W związku z tym, jeśli używasz narzędzia AzCopy z maszyny wirtualnej, upewnij się, że maszyna wirtualna ma wystarczającą ilość rdzeni/pamięci do obsługi obciążenia.
- Aby zapobiec przypadkowemu usunięciu, przed użyciem flagi pamiętaj o włączeniu funkcji usuwania nietrwałego
--delete-destination=prompt|true
.
Aktualizowanie kontenera przy użyciu zmian w lokalnym systemie plików
W tym przypadku kontener jest miejscem docelowym, a lokalny system plików jest źródłem.
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 sync '<local-directory-path>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>' --recursive
Przykład
azcopy sync 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive
Aktualizowanie lokalnego systemu plików ze zmianami w kontenerze
W takim przypadku lokalny system plików jest miejscem docelowym, a kontener jest źródłem.
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 sync 'https://<storage-account-name>.blob.core.windows.net/<container-name>' 'C:\myDirectory' --recursive
Przykład
azcopy sync 'https://mystorageaccount.blob.core.windows.net/mycontainer' 'C:\myDirectory' --recursive
Aktualizowanie kontenera za pomocą zmian w innym kontenerze
Pierwszym kontenerem wyświetlanym w tym poleceniu jest źródło. Drugi to miejsce docelowe.
Jeśli podasz poświadczenia autoryzacji przy użyciu identyfikatora Entra firmy Microsoft, upewnij się, że skonfigurowaliśmy odpowiednie role na koncie źródłowym i docelowym. Zobacz opcję 1. Użyj identyfikatora Entra firmy Microsoft.
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 sync 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>' --recursive
Przykład
azcopy sync 'https://mysourceaccount.blob.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive
Aktualizowanie katalogu za pomocą zmian w katalogu w innym kontenerze
Pierwszym katalogem wyświetlanym w tym poleceniu jest źródło. Drugi to miejsce docelowe.
Jeśli podasz poświadczenia autoryzacji przy użyciu identyfikatora Entra firmy Microsoft, upewnij się, że skonfigurowaliśmy odpowiednie role na koncie źródłowym i docelowym. Zobacz opcję 1. Użyj identyfikatora Entra firmy Microsoft.
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 sync 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>/<SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive
Przykład
azcopy sync 'https://mysourceaccount.blob.core.windows.net/<container-name>/myDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myDirectory' --recursive
Synchronizowanie z flagami opcjonalnymi
Operację synchronizacji można dostosować przy użyciu opcjonalnych flag. Oto kilka przykładów.
Scenariusz | Flaga |
---|---|
Określ, jak dokładnie skróty MD5 powinny być weryfikowane podczas pobierania. | --check-md5=[NoCheck|LogOnly|FailIfDifferent|FailIfDifferentOrMissing] |
Wyklucz pliki na podstawie wzorca. | --exclude-path |
Określ, jak szczegółowe mają być wpisy dziennika związane z synchronizacją. | --log-level=[OSTRZEŻENIE|BŁĄD|INFO|BRAK] |
Aby uzyskać pełną listę flag, zobacz opcje.
Uwaga
Flaga --recursive
jest domyślnie ustawiona na true
wartość . Flagi --exclude-pattern
i --include-pattern
dotyczą tylko nazw plików, a nie innych części ścieżki pliku.
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: kopiowanie między kontami
- 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: