Загрузка BLOB-объектов из Хранилища BLOB-объектов Azure с помощью AzCopy

Вы можете загрузить большие двоичные объекты и каталоги из Хранилища BLOB-объектов с помощью служебной программы командной строки AzCopy v10.

Чтобы просмотреть примеры других типов задач, таких как отправка файлов, синхронизация с Хранилищем BLOB-объектов или копирование больших двоичных объектов между учетными записями, ознакомьтесь с соответствующими сведениями, перейдя по ссылкам, представленным в разделе Дальнейшие действия этой статьи.

Начать

Ознакомьтесь со статьей Начало работы с AzCopy, чтобы получить сведения о том, как скачать AzCopy, а также о способах предоставления учетных данных авторизации в службе хранилища.

Примечание.

В примерах этой статьи предполагается, что вы предоставили учетные данные авторизации с помощью идентификатора Microsoft Entra.

Если вы предпочитаете использовать для авторизации доступа к данным большого двоичного объекта маркер SAS, маркер можно добавить к URL-адресу ресурса в каждой команде AzCopy. Например: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'.

Скачивание большого двоичного объекта

Скачайте большой двоичный объект с помощью команды azcopy copy.

Совет

В этом примере аргументы пути заключены в одинарные кавычки (' '). Используйте одинарные кавычки во всех командных оболочках, кроме командной оболочки Windows (cmd.exe). Если вы используете командную оболочку Windows (cmd.exe), заключите аргументы пути в двойные кавычки ("") вместо одинарных (").

Синтаксис

azcopy copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>' '<local-file-path>'

Пример

azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt' 'C:\myDirectory\myTextFile.txt'

Пример (конечная точка Data Lake служба хранилища)

azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myTextFile.txt' 'C:\myDirectory\myTextFile.txt'

Примечание.

Если значение свойства Content-md5 большого двоичного объекта содержит хэш, AzCopy вычисляет хэш MD5 для скачанных данных и проверяет, соответствует ли хэш MD5, хранящийся в свойстве большого двоичного объекта Content-md5, соответствующему вычисляемому хэшу. Если эти значения не совпадают, загрузка завершается ошибкой. Чтобы этого избежать, переопределите это поведение путем добавления --check-md5=NoCheck или --check-md5=LogOnly к команде copy.

Загрузка каталога

Загрузите каталог с помощью команды azcopy copy.

Совет

В этом примере аргументы пути заключены в одинарные кавычки (' '). Используйте одинарные кавычки во всех командных оболочках, кроме командной оболочки Windows (cmd.exe). Если вы используете командную оболочку Windows (cmd.exe), заключите аргументы пути в двойные кавычки ("") вместо одинарных (").

Синтаксис

azcopy copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<directory-path>' '<local-directory-path>' --recursive

Пример

azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory' 'C:\myDirectory'  --recursive

Пример (конечная точка Data Lake служба хранилища)

azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myBlobDirectory' 'C:\myDirectory'  --recursive

В этом примере создается каталог с именем C:\myDirectory\myBlobDirectory, содержащий все загруженные большие двоичные объекты.

Загрузка содержимого каталога

Вы можете скачать содержимое каталога, не копируя сам каталог, с помощью подстановочного знака (*).

Совет

В этом примере аргументы пути заключены в одинарные кавычки (' '). Используйте одинарные кавычки во всех командных оболочках, кроме командной оболочки Windows (cmd.exe). Если вы используете командную оболочку Windows (cmd.exe), заключите аргументы пути в двойные кавычки ("") вместо одинарных (").

Примечание.

В настоящее время этот сценарий поддерживается только для учетных записей, у которых нет иерархического пространства имен.

Синтаксис

azcopy copy 'https://<storage-account-name>.blob.core.windows.net/<container-name>/*' '<local-directory-path>/'

Пример

azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory/*' 'C:\myDirectory'

Добавьте флаг --recursive, чтобы загрузить файлы во все подкаталоги.

Загрузка конкретных больших двоичных объектов

Вы можете загружать определенные большие двоичные объекты с помощью полных имен файлов, частичных имен с подстановочными знаками (*) или с помощью дат и времени.

Совет

В этих примерах аргументы пути заключаются в одинарные кавычки (''). Используйте одинарные кавычки во всех командных оболочках, кроме командной оболочки Windows (cmd.exe). Если вы используете командную оболочку Windows (cmd.exe), заключите аргументы пути в двойные кавычки ("") вместо одинарных (").

Указание нескольких полных имен больших двоичных объектов

Выполните команду azcopy сopy, используя параметр --include-path. Разделение отдельных имен BLOB-объектов с помощью точки с запятой (;).

Синтаксис

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

Пример

azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory' 'C:\myDirectory'  --include-path 'photos;documents\myFile.txt' --recursive

Пример (конечная точка Data Lake служба хранилища)

azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/FileDirectory' 'C:\myDirectory'  --include-path 'photos;documents\myFile.txt'--recursive

В этом примере AzCopy передает каталог https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory/photos и файл https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory/documents/myFile.txt. Включите параметр --recursive для перемещения всех больших двоичных объектов в каталог https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory/photos.

Кроме того, большие двоичные объекты можно исключить с помощью параметра --exclude-path. Дополнительные сведения см. в справочных документах по azcopy сopy.

Использование подстановочных знаков

Выполните команду azcopy сopy, используя параметр --include-pattern. Укажите частичные имена, которые содержат подстановочные знаки. Разделяйте имена точкой с запятой (;).

Синтаксис

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

Пример

azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory' 'C:\myDirectory'  --include-pattern 'myFile*.txt;*.pdf*'

Пример (иерархическое пространство имен)

azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/FileDirectory' 'C:\myDirectory'  --include-pattern 'myFile*.txt;*.pdf*'

Кроме того, большие двоичные объекты можно исключить с помощью параметра --exclude-pattern. Дополнительные сведения см. в справочных документах по azcopy сopy.

Параметры --include-pattern и --exclude-pattern применяются только к именам больших двоичных объектов, а не к пути. Если необходимо скопировать все текстовые файлы (большие двоичные объекты), существующие в дереве каталогов, используйте параметр -recursive для получения всего дерева каталогов, а затем — параметр -include-pattern и укажите *.txt, чтобы получить все текстовые файлы.

Загрузка больших двоичных объектов, которые были изменены до или после определенных даты и времени

Выполните команду azcopy сopy, используя параметр --include-before или --include-after. Укажите дату и время в формате ISO-8601 (например: 2020-08-19T15:04:00Z).

В следующих примерах вы увидите, как загружаются файлы, которые были изменены в указанную дату или после нее.

Синтаксис

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

Пример

azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory/*' 'C:\myDirectory'  --include-after '2020-08-19T15:04:00Z'

Пример (конечная точка Data Lake служба хранилища)

azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/FileDirectory/*' 'C:\myDirectory'  --include-after '2020-08-19T15:04:00Z'

Подробные сведения см. в справочной документации по azcopy сopy.

Загрузка предыдущих версий большого двоичного объекта

Если вы включили Управление версиями BLOB-объектов, вы можете загрузить одну или несколько предыдущих версий большого двоичного объекта.

Сначала создайте текстовый файл, содержащий список идентификаторов версий. Каждый идентификатор версии должен находиться в отдельной строке. Например:

2020-08-17T05:50:34.2199403Z
2020-08-17T05:50:34.5041365Z
2020-08-17T05:50:36.7607103Z

Затем выполните команду azcopy сopy, используя параметр --list-of-versions. Укажите расположение текстового файла, содержащего список версий (например: D:\\list-of-versions.txt).

Скачивание моментального снимка большого двоичного объекта

Моментальный снимок BLOB-объекта можно загрузить, ссылаясь на значение DateTime моментального снимка большого двоичного объекта.

Синтаксис

azcopy copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>?sharesnapshot=<DateTime-of-snapshot>' '<local-file-path>'

Пример

azcopy copy 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt?sharesnapshot=2020-09-23T08:21:07.0000000Z' 'C:\myDirectory\myTextFile.txt'

Пример (конечная точка Data Lake служба хранилища)

azcopy copy 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myTextFile.txt?sharesnapshot=2020-09-23T08:21:07.0000000Z' 'C:\myDirectory\myTextFile.txt'

Примечание.

Если вы используете маркер SAS для авторизации доступа к данным большого двоичного объекта, добавьте моментальный снимок DateTime после маркера SAS. Например: 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt?sv=2018-03-28&ss=bjqt&srs=sco&sp=rjklhjup&se=2019-05-10T04:37:48Z&st=2019-05-09T20:37:48Z&spr=https&sig=/SOVEFfsKDqRry4bk3qz1vAQFwY5DDzp2%2B/3Eykf/JLs%3D&sharesnapshot=2020-09-23T08:21:07.0000000Z'.

Загрузка с дополнительными флагами

Вы можете модифицировать операцию загрузки с помощью дополнительных флагов. Вот несколько примеров.

Сценарий Флаг
Автоматическое распаковка файлов. --decompress
Указание, насколько подробными должны быть записи журнала, связанные с копированием. --log-level=[WARNING|ERROR|INFO|NONE]
Укажите, следует ли перезаписывать конфликтующие файлы и большие двоичные объекты в месте назначения. --overwrite=[true|false|ifSourceNewer|prompt]

Полный список примеров см. в разделе Параметры.

Следующие шаги

Дополнительные примеры см. в следующих статьях:

Ознакомьтесь со статьями ниже, чтобы получить сведения о настройке параметров, оптимизации производительности и устранении проблем: