Udostępnij za pomocą


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 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ż interfejsów API w komunikacji między serwerami. 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.

Wprowadzenie

Zapoznaj się z artykułem Wprowadzenie do AzCopy, aby pobrać AzCopy i dowiedzieć się, jak można dostarczać poświadczenia autoryzacyjne do usługi magazynowania.

Uwaga

W przykładach w tym artykule założono, że podasz 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 domyślne zachowanie można zmienić, aby używać skrótów MD5 zamiast znaczników czasowych ostatniej modyfikacji, używając 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 magazynowymi. Oznacza to, że dane są kopiowane bezpośrednio między serwerami pamięci masowej. Jednak AzCopy konfiguruje i monitoruje każdy transfer, a dla większych kont (na przykład kont zawierających miliony obiektów blob), AzCopy może wymagać znacznych 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.

Wskazówka

W tym przykładzie argumenty ścieżki są ujęte w pojedyncze cudzysłowy (''). 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 Wiersza polecenia Windows (cmd.exe), ujmij argumenty ścieżki w podwójnych cudzysłowach ("") zamiast pojedynczych cudzysłowów ('').

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.

Wskazówka

W tym przykładzie argumenty ścieżki są ujęte w pojedyncze cudzysłowy (''). 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 Wiersza polecenia Windows (cmd.exe), ujmij argumenty ścieżki w podwójnych cudzysłowach ("") zamiast pojedynczych cudzysłowów ('').

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. Drugim kontenerem jest 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.

Wskazówka

W tym przykładzie argumenty ścieżki są ujęte w pojedyncze cudzysłowy (''). 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 Wiersza polecenia Windows (cmd.exe), ujmij argumenty ścieżki w podwójnych cudzysłowach ("") zamiast pojedynczych cudzysłowów ('').

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 katalog jest miejscem docelowym.

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.

Wskazówka

W tym przykładzie argumenty ścieżki są ujęte w pojedyncze cudzysłowy (''). 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 Wiersza polecenia Windows (cmd.exe), ujmij argumenty ścieżki w podwójnych cudzysłowach ("") zamiast pojedynczych cudzysłowów ('').

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

Aktualizowanie kontenera za pomocą zmian w innym kontenerze przy użyciu tokenu SAS

Pierwszym kontenerem wyświetlanym w tym poleceniu jest źródło. Drugim kontenerem jest miejsce docelowe.

Jeśli podasz token SAS, upewnij się, że używasz tokenu SAS odpowiadającego źródłowym i docelowym kontom magazynowym podczas korzystania z azcopy sync.

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>/<destination-SAS-token>' --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/?sv=2018-03-28&ss=qrdu&dst=mco&kp=rwdlapuc&se=2019-07-04T05:30:08Z&st=2019-07-03T21:31:10Z&spr=https&sig=CAfhgnc9gdGktvB=yzx9CAjMKeeN678yiyFwdNU092JC8%6D' --recursive

Wskazówka

Jeśli kopiujesz dużą ilość danych, możesz użyć Eksploratora usługi Azure Storage.

Aby sprawdzić rozmiar skopiowanych danych, w górnym menu paska wybierz pozycję Więcej ->Statystyki folderów, aby uzyskać szczegółowe informacje o katalogu, w tym rozmiar w bajtach.

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|INFORMACJA|BRAK]
Określ sposób kopiowania pliku vhd. --blob-type=BlockBlob --include-pattern "*.vhd" lub --blob-type=BlockBlob

Aby uzyskać pełną listę flag, zobacz opcje.

Uwaga

Flaga --recursive jest domyślnie ustawiona na true. Flagi --exclude-pattern i --include-pattern mają zastosowanie tylko do nazw plików, a nie do 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: