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-destinationtrue, 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 na prompt.

  • Jeśli planujesz ustawić flagę --delete-destination na prompt lub false, rozważ użycie polecenia copy zamiast polecenia synchronizacji i ustaw --overwrite parametr na ifSourceNewer. 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:

Zobacz następujące artykuły, aby skonfigurować ustawienia, zoptymalizować wydajność i rozwiązać problemy: