Transferowanie danych za pomocą narzędzia AzCopy i magazynu plików

AzCopy to narzędzie wiersza poleceń, którego można użyć do kopiowania plików na konto magazynowe lub z niego. Ten artykuł zawiera przykładowe polecenia, które działają z usługą Azure Files.

Wprowadzenie

Zobacz artykuł Wprowadzenie do narzędzia AzCopy, aby pobrać AzCopy i dowiedzieć się więcej o sposobach udostępniania poświadczeń autoryzacji do usługi Storage.

Uwaga

W przykładach w tym artykule pokazano użycie tokenu SAS do autoryzowania dostępu. Jednak w przypadku poleceń skierowanych na pliki i katalogi można teraz podać poświadczenia autoryzacji, używając Microsoft Entra ID, i pominąć token SAS w tych poleceniach. Nadal musisz użyć tokenu SAS w dowolnym poleceniu, które jest przeznaczone tylko dla udziału plików lub konta (na przykład: 'azcopy make https://mystorageaccount.file.core.windows.net/myfileshare' lub 'azcopy copy 'https://mystorageaccount.file.core.windows.net'.

Aby dowiedzieć się więcej, zobacz Autoryzowanie narzędzia AzCopy

Wskazówka

W przypadku korzystania z systemu plików NFS usługi Azure Files należy określić przełącznik CLI --from-to z jedną z następujących obsługiwanych opcji: FileNFSLocal, LocalFileNFS, lub FileNFSFileNFS w poleceniach.

Scenariusze przekazywania i pobierania korzystające z plików LocalFileNFS i FileNFSLocal są obsługiwane tylko w lokalnych środowiskach systemu Linux. Te operacje nie są obsługiwane w systemie Windows lub macOS. Z kolei scenariusz FileNFSFileNFS, który korzysta z interfejsu API kopiowania serwer-serwer, jest obsługiwany w systemach Windows, Linux i macOS. Możesz uruchomić skojarzone polecenia z dowolnej z tych platform.

Tworzenie udziałów plików

Możesz użyć polecenia azcopy make, aby utworzyć udział plików. Przykład w tej sekcji tworzy udział plików o nazwie myfileshare.

Uwaga

AzCopy w wersji 10.30.0 wprowadza zmianę wprowadzającą niekompatybilność, przez którą nie tworzy już automatycznie udziałów plików na potrzeby transferów obejmujących usługę Azure Files przy użyciu protokołów NFS lub SMB.

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 powłoki poleceń systemu Windows (cmd.exe), umieść argumenty ścieżki w podwójnych cudzysłowach ("") zamiast pojedynczych ('').

Składnia

azcopy make 'https://<storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>'

Przykład

azcopy make 'https://mystorageaccount.file.core.windows.net/myfileshare?[SAS]'

Aby uzyskać szczegółowe dokumenty referencyjne, zobacz azcopy make.

Przekaż pliki

Użyj polecenia azcopy copy , aby przekazać pliki i katalogi z komputera lokalnego.

Wskazówka

Przykłady w tej sekcji ujmują argumenty ścieżki 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 powłoki poleceń systemu Windows (cmd.exe), umieść argumenty ścieżki w podwójnych cudzysłowach ("") zamiast pojedynczych ('').

Ta sekcja zawiera następujące przykłady:

  • Przekazywanie pliku
  • Przekazanie katalogu
  • Przesyłanie zawartości katalogu
  • Prześlij określony plik

Wskazówka

Użyj opcjonalnych flag w celu dostosowania operacji przesyłania. Oto kilka przykładów:

Scenariusz Flaga
Skopiuj listy kontroli dostępu (ACL) wraz z plikami. --preserve-permissions=[true|false]
Skopiuj informacje o właściwości protokołu SMB wraz z plikami. --preserve-info=[prawda|fałsz]

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

Uwaga

Narzędzie AzCopy nie oblicza automatycznie i nie przechowuje kodu skrótu MD5 pliku dla pliku większego niż 256 MB. Jeśli chcesz to zrobić za pomocą narzędzia AzCopy, dołącz flagę --put-md5 do każdego polecenia kopiowania. Dzięki temu po pobraniu pliku narzędzie AzCopy oblicza skrót MD5 dla pobranych danych i sprawdza, czy skrót MD5 przechowywany we właściwości pliku Content-md5 jest zgodny z obliczonym skrótem.

Przekazywanie pliku

Składnia

azcopy copy '<local-file-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<file-name>'

azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.file.core.windows.net/myfileshare/myTextFile.txt?[SAS]' --preserve-permissions=true --preserve-info=true

Plik możesz również załadować przy użyciu symbolu wieloznacznego (*) w dowolnym miejscu w ścieżce pliku lub nazwie pliku. Na przykład: 'C:\myDirectory\*.txt', lub C:\my*\*.txt.

Przekazanie katalogu

Ten przykład kopiuje katalog i wszystkie pliki w tym katalogu do udostępnionego zasobu. Wynikiem jest katalog w udziale plików o tej samej nazwie.

Składnia

azcopy copy '<local-directory-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileshare?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Aby skopiować do katalogu w udziale plików, wystarczy określić nazwę tego katalogu w ciągu polecenia.

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Jeśli określisz nazwę katalogu, który nie istnieje w udziale plików, narzędzie AzCopy utworzy nowy katalog o tej nazwie.

Przesyłanie zawartości katalogu

Zawartość katalogu można przekazać bez kopiowania samego katalogu, używając symbolu wieloznacznego (*).

Składnia

azcopy copy '<local-directory-path>/*' 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<directory-path><SAS-token>'

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory?[SAS]' --preserve-permissions=true --preserve-info=true

Uwaga

Aby załadować pliki we wszystkich podkatalogach, dodaj flagę --recursive.

Przekazywanie określonych plików

Określone pliki można przesłać przy użyciu pełnych nazw plików, częściowych nazw z symbolami wieloznacznymi (*), lub przy użyciu dat i godzin.

Określanie wielu pełnych nazw plików

Użyj polecenia azcopy copy z parametrem --include-path. Oddzielaj poszczególne nazwy plików średnikami (;).

Składnia

azcopy copy '<local-directory-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' --include-path <semicolon-separated-file-list>

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileshare?[SAS]' --include-path 'photos;documents\myFile.txt' --preserve-permissions=true --preserve-info=true

W tym przykładzie narzędzie AzCopy przesyła C:\myDirectory\photos katalog i C:\myDirectory\documents\myFile.txt plik. Aby przenieść wszystkie pliki w katalogu --recursive, należy dołączyć opcję C:\myDirectory\photos.

Możesz również wykluczyć pliki przy użyciu --exclude-path opcji . Aby dowiedzieć się więcej, zobacz dokumentację referencyjną azcopy copy.

Używanie symboli wieloznacznych

Użyj polecenia azcopy copy z parametrem --include-pattern. Określ nazwy częściowe, które zawierają symbole wieloznaczne. Oddzielaj nazwy średnikami (;).

Składnia

azcopy copy '<local-directory-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' --include-pattern <semicolon-separated-file-list-with-wildcard-characters>

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileshare?[SAS]' --include-pattern 'myFile*.txt;*.pdf*' --preserve-permissions=true --preserve-info=true

Możesz również wykluczyć pliki przy użyciu --exclude-pattern opcji . Aby dowiedzieć się więcej, zobacz dokumentację referencyjną azcopy copy.

Opcje --include-pattern i --exclude-pattern dotyczą tylko nazw plików, a nie do ścieżki. Jeśli chcesz skopiować wszystkie pliki tekstowe, które istnieją w drzewie katalogów, użyj opcji --recursive , aby pobrać całe drzewo katalogów, a następnie użyj --include-pattern i określ *.txt , aby pobrać wszystkie pliki tekstowe.

Przekazywanie plików zmodyfikowanych po dacie i godzinie

Użyj polecenia azcopy copy z parametrem --include-after. Określ datę i godzinę w formacie ISO 8601 (na przykład: 2020-08-19T15:04:00Z).

Składnia

azcopy copy '<local-directory-path>\*' 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' --include-after <Date-Time-in-ISO-8601-format>

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.file.core.windows.net/myfileshare?[SAS]' --include-after '2020-08-19T15:04:00Z' --preserve-permissions=true --preserve-info=true

Określanie typów źródła i celu podczas przesyłania obiektów blob

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ć.

Wartość FromTo Description
LocalFileSMB Przesyłanie z lokalnego systemu plików do udziału SMB w usłudze Azure File Storage
LocalFileNFS Przekazywanie z lokalnego systemu plików (tylko system Linux) do udziału NFS w usłudze Azure File Storage
PipeFile Strumieniowanie danych z potoku do usługi Azure File Storage

Pobieranie plików

Użyj polecenia azcopy copy , aby pobrać pliki, katalogi i udziały plików na komputer lokalny.

Wskazówka

Przykłady w tej sekcji ujmują argumenty ścieżki 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 powłoki poleceń systemu Windows (cmd.exe), umieść argumenty ścieżki w podwójnych cudzysłowach ("") zamiast pojedynczych ('').

Ta sekcja zawiera następujące przykłady:

  • Pobieranie pliku
  • Pobieranie katalogu
  • Pobieranie zawartości katalogu
  • Pobieranie określonych plików

Wskazówka

Użyj opcjonalnych flag, aby dostosować operację pobierania. Oto kilka przykładów:

Scenariusz Flaga
Skopiuj listy kontroli dostępu (ACL) wraz z plikami. --preserve-permissions=[true|false]
Skopiuj informacje o właściwości protokołu SMB wraz z plikami. --preserve-info=[prawda|fałsz]
Automatycznie dekompresuj pliki. --dekompresuj

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

Uwaga

Content-md5 Jeśli wartość właściwości pliku zawiera skrót, narzędzie AzCopy oblicza skrót MD5 dla pobranych danych i sprawdza, czy skrót MD5 przechowywany we właściwości pliku Content-md5 jest zgodny z wartością skrótu obliczeniowego. Jeśli te wartości nie są zgodne, pobieranie zakończy się niepowodzeniem, chyba że to zachowanie zostanie zastąpione przez dołączenie --check-md5=NoCheck lub --check-md5=LogOnly do polecenia kopiowania.

Pobieranie pliku

Składnia

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>' '<local-file-path>'

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myTextFile.txt?[SAS]' 'C:\myDirectory\myTextFile.txt' --preserve-permissions=true --preserve-info=true

Pobieranie katalogu

Składnia

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<directory-path><SAS-token>' '<local-directory-path>' --recursive

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory?[SAS]' 'C:\myDirectory'  --recursive --preserve-permissions=true --preserve-info=true

W tym przykładzie zostanie utworzony katalog o nazwie C:\myDirectory\myFileShareDirectory zawierający wszystkie pobrane pliki.

Pobieranie zawartości katalogu

Możesz pobrać zawartość katalogu bez kopiowania samego katalogu, korzystając z symbolu wieloznacznego (*).

Składnia

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/*<SAS-token>' '<local-directory-path>/'

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory/*?[SAS]' 'C:\myDirectory' --preserve-permissions=true --preserve-info=true

Uwaga

Aby pobrać pliki we wszystkich podkatalogach, dodaj flagę --recursive .

Pobieranie określonych plików

Określone pliki można pobrać przy użyciu pełnych nazw plików, częściowych nazw z symbolami wieloznacznymi (*), lub przy użyciu dat i godzin.

Określanie wielu pełnych nazw plików

Użyj polecenia azcopy copy z parametrem --include-path. Oddzielaj poszczególne nazwy plików średnikami (;).

Składnia

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' '<local-directory-path>' --include-path <semicolon-separated-file-list>

azcopy copy 'https://mystorageaccount.file.core.windows.net/myFileShare/myDirectory?[SAS]' 'C:\myDirectory' --include-path 'photos;documents\myFile.txt' --recursive --preserve-permissions=true --preserve-info=true

W tym przykładzie narzędzie AzCopy przesyła https://mystorageaccount.file.core.windows.net/myFileShare/myDirectory/photos katalog i https://mystorageaccount.file.core.windows.net/myFileShare/myDirectory/documents/myFile.txt plik. Uwzględnij opcję --recursive transferu wszystkich plików w katalogu https://mystorageaccount.file.core.windows.net/myFileShare/myDirectory/photos.

Możesz również wykluczyć pliki przy użyciu --exclude-path opcji . Aby dowiedzieć się więcej, zobacz dokumentację referencyjną azcopy copy.

Używanie symboli wieloznacznych

Użyj polecenia azcopy copy z parametrem --include-pattern. Określ nazwy częściowe, które zawierają symbole wieloznaczne. Oddzielaj nazwy średnikami (;).

Składnia

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name><SAS-token>' '<local-directory-path>' --include-pattern <semicolon-separated-file-list-with-wildcard-characters>

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myDirectory?[SAS]' 'C:\myDirectory' --include-pattern 'myFile*.txt;*.pdf*' --preserve-permissions=true --preserve-info=true

Możesz również wykluczyć pliki przy użyciu --exclude-pattern opcji . Aby dowiedzieć się więcej, zobacz dokumentację referencyjną azcopy copy.

Opcje --include-pattern i --exclude-pattern dotyczą tylko nazw plików, a nie do ścieżki. Jeśli chcesz skopiować wszystkie pliki tekstowe, które istnieją w drzewie katalogów, użyj opcji --recursive , aby pobrać całe drzewo katalogów, a następnie użyj --include-pattern i określ *.txt , aby pobrać wszystkie pliki tekstowe.

Pobieranie plików zmodyfikowanych po dacie i godzinie

Użyj polecenia azcopy copy z parametrem --include-after. Określ datę i godzinę w formacie ISO-8601 (na przykład: 2020-08-19T15:04:00Z).

Składnia

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-or-directory-name>/*<SAS-token>' '<local-directory-path>' --include-after <Date-Time-in-ISO-8601-format>

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/*?[SAS]' 'C:\myDirectory' --include-after '2020-08-19T15:04:00Z' --preserve-permissions=true --preserve-info=true

Aby uzyskać szczegółowe informacje, zobacz dokumentację dotyczącą narzędzia azcopy copy .

Pobieranie z migawki udziału

Określoną wersję pliku lub katalogu można pobrać, odwołując się do wartości DateTime migawki udziału. Aby dowiedzieć się więcej na temat migawek udziałów, zobacz Omówienie migawek udziałów dla usługi Azure Files.

Składnia

azcopy copy 'https://<storage-account-name>.file.core.windows.net/<file-share-name>/<file-path-or-directory-name><SAS-token>&sharesnapshot=<DateTime-of-snapshot>' '<local-file-or-directory-path>'

Przykład (pobieranie pliku)

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myTextFile.txt?[SAS]&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'C:\myDirectory\myTextFile.txt' --preserve-permissions=true --preserve-info=true

Przykład (pobieranie katalogu)

azcopy copy 'https://mystorageaccount.file.core.windows.net/myfileshare/myFileShareDirectory?[SAS]&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'C:\myDirectory' --recursive --preserve-permissions=true --preserve-info=true

Określanie typów źródłowych i docelowych podczas pobierania plików

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ć.

Wartość FromTo Description
FileSMBLocal Pobieranie z udziału SMB w usłudze Azure File Storage do lokalnego systemu plików
FileNFSLocal Pobieranie z udziału NFS w usłudze Azure File Storage do lokalnego systemu plików (tylko system Linux)
FileSMBLocal Pobieranie z udziału SMB do lokalnego systemu plików
FilePipe Strumieniowanie danych z Azure File Storage do potoku

Kopiuj pliki między kontami magazynowymi

Narzędzie AzCopy umożliwia kopiowanie plików na inne konta magazynowe. Operacja kopiowania jest synchroniczna, więc wszystkie pliki są kopiowane po powrocie polecenia.

Narzędzie AzCopy używa interfejsów API między serwerami, dlatego dane są kopiowane bezpośrednio między serwerami pamięci masowej. Przepływność tych operacji można zwiększyć, ustawiając wartość zmiennej środowiskowej AZCOPY_CONCURRENCY_VALUE . Aby dowiedzieć się więcej, zobacz Zwiększanie współbieżności.

Można również skopiować określone wersje pliku, odwołując się do wartości DateTime migawki udziału. Aby dowiedzieć się więcej na temat migawek udziałów, zobacz Omówienie migawek udziałów dla usługi Azure Files.

Wskazówka

Przykłady w tej sekcji ujmują argumenty ścieżki 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 powłoki poleceń systemu Windows (cmd.exe), umieść argumenty ścieżki w podwójnych cudzysłowach ("") zamiast pojedynczych ('').

Ta sekcja zawiera następujące przykłady:

  • Kopiowanie pliku do innego konta przestrzeni magazynowej
  • Skopiuj katalog na inne konto przechowywania
  • Kopiowanie zasobu plików na inne konto przechowywania
  • Kopiowanie wszystkich udziałów plików, katalogów i plików na inne konto usługi Storage

Wskazówka

Operację kopiowania można dostosować przy użyciu opcjonalnych flag. Oto kilka przykładów.

Scenariusz Flaga
Skopiuj listy kontroli dostępu (ACL) wraz z plikami. --preserve-permissions=[true|false]
Skopiuj informacje o właściwości protokołu SMB wraz z plikami. --preserve-info=[prawda|fałsz]

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

Kopiowanie pliku do innego konta przestrzeni magazynowej

Składnia

azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name>/<file-path><SAS-token>'

Przykład

azcopy copy 'https://mysourceaccount.file.core.windows.net/mycontainer/myTextFile.txt?[SAS]' 'https://mydestinationaccount.file.core.windows.net/mycontainer/myTextFile.txt?[SAS]' --preserve-permissions=true --preserve-info=true

Przykład (migawka udostępniania)

azcopy copy 'https://mysourceaccount.file.core.windows.net/mycontainer/myTextFile.txt?[SAS]&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net/mycontainer/myTextFile.txt?[SAS]' --preserve-permissions=true --preserve-info=true

Skopiuj katalog na inne konto przechowywania

Składnia

azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<directory-path><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

Przykład

azcopy copy 'https://mysourceaccount.file.core.windows.net/myFileShare/myFileDirectory?[SAS]' 'https://mydestinationaccount.file.core.windows.net/mycontainer?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Przykład (migawka udostępniania)

azcopy copy 'https://mysourceaccount.file.core.windows.net/myFileShare/myFileDirectory?[SAS]&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net/mycontainer?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Kopiowanie zasobu plików na inne konto przechowywania

Składnia

azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

Przykład

azcopy copy 'https://mysourceaccount.file.core.windows.net/mycontainer?[SAS]' 'https://mydestinationaccount.file.core.windows.net/mycontainer?[SAS]' --preserve-permissions=true --preserve-info=true

Przykład (migawka udostępniania)

azcopy copy 'https://mysourceaccount.file.core.windows.net/mycontainer?[SAS]&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net/mycontainer?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Kopiowanie wszystkich udziałów plików, katalogów i plików na inne konto usługi Storage

Składnia

azcopy copy 'https://<source-storage-account-name>.file.core.windows.net/<SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<SAS-token>' --recursive'

Przykład

azcopy copy 'https://mysourceaccount.file.core.windows.net?[SAS]' 'https://mydestinationaccount.file.core.windows.net?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Przykład (migawka udostępniania)

azcopy copy 'https://mysourceaccount.file.core.windows.net?[SAS]&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Określanie typów źródłowych i docelowych podczas kopiowania plików

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ć.

Wartość FromTo Description
FileBlob Kopiowanie z usługi Azure File Storage do usługi Azure Blob Storage
FileBlobFS Kopiowanie z usługi Azure File Storage do usługi Azure Data Lake Gen2 (BlobFS)
FileSMBFileSMB Kopiowanie między dwoma zasobami SMB w usłudze Azure Files
FileNFSFileNFS Kopiowanie między dwoma udziałami NFS w usłudze Azure File Storage
FileNFSFileSMB Kopiowanie z Azure File Storage NFS do Azure Files Storage SMB
FileSMBFileNFS Kopiowanie z protokołu SMB usługi Azure File Storage do usługi Azure Files Storage NFS

Synchronizowanie plików

Zawartość lokalnego systemu plików można zsynchronizować z zasobem plików lub zsynchronizować zawartość zasobu plików z innym zasobem plików. Można również zsynchronizować zawartość katalogu w udziale plików z zawartością katalogu znajdującego się w innym udziale plików. 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 serwer-serwer.

Ostrzeżenie

Synchronizacja narzędzia AzCopy jest obsługiwana, ale nie jest w pełni zalecana w przypadku usługi Azure Files. Synchronizacja AzCopy obsługuje do 10 milionów plików na zadanie AzCopy, a część dokładności plików może zostać utracona, ponieważ AzCopy używa interfejsów API REST Azure Files do kopiowania zawartości do udziału Azure Files. Aby dowiedzieć się więcej, zobacz Migrate to SMB Azure udostępnianie plików. Bieżąca wersja AzCopy nie obsługuje synchronizowania Azure Files z usługą Azure Blob Storage.

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 znaczników czasowych ostatniej modyfikacji 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 magazynowania. Oznacza to, że dane są kopiowane bezpośrednio między serwerami przechowywania danych. Jednak AzCopy konfiguruje i monitoruje każdy transfer, a w przypadku większych kont magazynowych (na przykład kont zawierających miliony obiektów blob), 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.

Wskazówka

Operację synchronizacji można dostosować przy użyciu opcjonalnych flag. Oto kilka przykładów.

Scenariusz Flaga
Skopiuj listy kontroli dostępu (ACL) wraz z plikami. --preserve-permissions=[true|false]
Skopiuj informacje o właściwości protokołu SMB wraz z plikami. --preserve-info=[prawda|fałsz]
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]

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

Przykłady w tej sekcji ujmują argumenty ścieżki 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 powłoki poleceń systemu Windows (cmd.exe), umieść argumenty ścieżki w podwójnych cudzysłowach ("") zamiast pojedynczych ('').

Zaktualizować zasób współdzielony zgodnie ze zmianami w lokalnym systemie plików

W takim przypadku udział sieciowy jest miejscem docelowym, natomiast 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 powłoki poleceń systemu Windows (cmd.exe), umieść argumenty ścieżki w podwójnych cudzysłowach ("") zamiast pojedynczych ('').

Składnia

azcopy sync '<local-directory-path>' 'https://<storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

Przykład

azcopy sync 'C:\myDirectory' 'https://mystorageaccount.file.core.windows.net/myfileShare?[SAS]' --recursive

Aktualizowanie lokalnego systemu plików przy użyciu zmian w udziale plików

W takim przypadku lokalny system plików jest miejscem docelowym, a udział 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 powłoki poleceń systemu Windows (cmd.exe), umieść argumenty ścieżki w podwójnych cudzysłowach ("") zamiast pojedynczych ('').

Składnia

azcopy sync 'https://<storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' 'C:\myDirectory' --recursive

Przykład

azcopy sync 'https://mystorageaccount.file.core.windows.net/myfileShare?[SAS]' 'C:\myDirectory' --recursive

Aktualizowanie udziału plików za pomocą zmian z innego udziału plików

Pierwszym udziałem plików w tym poleceniu jest źródło. Polecenie kopiuje zmiany z tego źródłowego udziału plików. Drugi zasób plików jest miejscem docelowym.

Składnia

azcopy sync 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

Przykład

azcopy sync 'https://mysourceaccount.file.core.windows.net/myfileShare?[SAS]' 'https://mydestinationaccount.file.core.windows.net/myfileshare?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Aktualizowanie katalogu za pomocą zmian w katalogu w innym udziale plików

Pierwszym katalogem wyświetlanym w tym poleceniu jest źródło. Drugi to miejsce docelowe.

Składnia

azcopy sync 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name>/<directory-name><SAS-token>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name>/<directory-name><SAS-token>' --recursive

Przykład

azcopy sync 'https://mysourceaccount.file.core.windows.net/myFileShare/myDirectory?[SAS]' 'https://mydestinationaccount.file.core.windows.net/myFileShare/myDirectory?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Zaktualizuj udostępnienie plików, aby dopasować zawartość migawki udostępnienia

Pierwszy udział plików wyświetlany w tym poleceniu jest źródłem. Na końcu identyfikatora URI dołącz ciąg &sharesnapshot=, a następnie wartość DateTime migawki.

Składnia

azcopy sync 'https://<source-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>&sharesnapsot<snapshot-ID>' 'https://<destination-storage-account-name>.file.core.windows.net/<file-share-name><SAS-token>' --recursive

Przykład

azcopy sync 'https://mysourceaccount.file.core.windows.net/myfileShare?[SAS]&sharesnapshot=2020-09-23T08:21:07.0000000Z' 'https://mydestinationaccount.file.core.windows.net/myfileshare?[SAS]' --recursive --preserve-permissions=true --preserve-info=true

Aby dowiedzieć się więcej na temat migawek udziałów, zobacz Omówienie migawek udziałów dla usługi Azure Files.

Właściwości i uprawnienia do zachowania

Wskazówka

Podczas pobierania plików do lokalnego systemu Linux potrzebne są podniesione uprawnienia, jeśli określony właściciel lub grupa różni się od bieżącego użytkownika. Aby zmienić własność lub grupę pobranych plików, uruchom polecenie azcopy za pomocą polecenia sudo lub jako użytkownik główny.

Typ Właściwości (--preserve-info) Uprawnienia (--preserve-permissions)
Azure Files SMB NTFSFileAttributes (TylkoDoOdczytu, Ukryty, Systemowy, Katalog, Archiwum, Brak, Tymczasowy, Offline, NieIndeksowane, BrakScrubData) (x-ms-file-attributes)
CzasUtworzenia (x-ms-file-creation-time)
CzasOstatniejModyfikacji (x-ms-file-last-write-time)
Listy kontroli dostępu (ACL) (x-ms-file-permission)
Azure Files NFS CzasUtworzenia (x-ms-file-creation-time)
CzasOstatniejModyfikacji (x-ms-file-last-write-time)
Właściciel (x-ms-owner)
Grupa (x-ms-group)
FileMode (x-ms-mode)

AzCopy obsługuje konfigurowalną obsługę plików połączonych twardymi łączami podczas transferu danych z użyciem Azure Files NFS, w tym przesyłanie do udziałów Azure Files NFS, pobieranie z udziałów Azure Files NFS oraz transfery między usługami między udziałami Azure Files NFS. Możesz kontrolować to zachowanie za pomocą opcji --hardlinks.

Tryb (--hardlinks) Zachowanie
follow (ustawienie domyślne) Pliki powiązane na stałe traktowane są jako niezależne pliki i przekazywane oddzielnie.
skip Wszystkie pliki z dowiązaniami twardymi są pomijane podczas przesyłania.
preserve Powiązania twardych łączy zostają zachowane w lokalizacji docelowej. Systemy plików źródłowe i docelowe muszą obsługiwać hardlinki.

Zachowanie przy użyciu --hardlinks=preserve

  • Przekazywanie i transfery między usługami (Azure Files NFS jako miejsce docelowe)
    Istniejące łącza na miejscu docelowym, które nie są częścią transferu, są zachowywane. AzCopy zapisuje zawartość pliku na miejscu, korzystając z API REST Azure Files, zamiast tymczasowego pliku i zmiany nazwy. W rezultacie inode pliku jest aktualizowany bezpośrednio, a wszystkie istniejące ścieżki powiązane na stałe nadal odwołują się do zaktualizowanych danych.

  • Pobierz (lokalny system plików jako cel)
    Istniejące łącza na miejscu docelowym, które nie są częścią transferu, są uszkodzone. AzCopy używa pliku tymczasowego, po którym następuje operacja zmiany nazwy (podobna do rsync), która zastępuje wpis katalogu nowym inode. Istniejące ścieżki powiązane na stałe nadal wskazują na oryginalny inod, a tym samym na nieaktualne dane.

Uwaga

Zachowanie hardlinków wymaga, aby zarówno źródło, jak i miejsce docelowe znajdowały się na systemach plików obsługujących hardlinki.

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: