Копирование BLOB-объектов между учетными записями хранения Azure с помощью AzCopy
Вы можете копировать BLOB-объекты, каталоги и контейнеры между учетными записями хранения с помощью служебной программы командной строки AzCopy версии 10.
Чтобы просмотреть примеры других типов задач, таких как отправка файлов, загрузка BLOB-объектов, синхронизация с хранилищем BLOB-объектов, см. сведения, перейдя по ссылкам, представленным в разделе Дальнейшие действия этой статьи.
AzCopy использует API типа сервер-сервер, поэтому данные копируются непосредственно между серверами хранилища.
Начало работы
Ознакомьтесь со статьей Начало работы с AzCopy, чтобы получить сведения о том, как скачать AzCopy, а также о способах предоставления учетных данных авторизации в службе хранилища.
Примечание.
В примерах этой статьи предполагается, что вы предоставили учетные данные авторизации с помощью идентификатора Microsoft Entra и что удостоверение Microsoft Entra имеет соответствующие назначения ролей для исходных и целевых учетных записей.
Кроме того, можно добавить маркер SAS к исходному или целевому URL-адресу в каждой команде AzCopy. Например: azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>'
.
Рекомендации
Примените следующие рекомендации к командам AzCopy.
Если вы используете авторизацию Microsoft Entra для источника и назначения, обе учетные записи должны принадлежать одному клиенту Microsoft Entra.
Клиент должен иметь сетевой доступ как к исходной, так и целевой учетной записи хранения. Дополнительные сведения о том, как настраивать параметры сети для каждой учетной записи хранения, см. в статье Настройка брандмауэров и виртуальных сетей службы хранилища Azure.
При копировании в учетную запись хранения блочных BLOB-объектов цен. категории "Премиум" исключите уровень доступа BLOB-объекта из операции копирования, задав для
s2s-preserve-access-tier
значениеfalse
(например,--s2s-preserve-access-tier=false
). Учетные записи хранения блочных BLOB-объектов цен. категории "Премиум" не поддерживают уровни доступа.Пропускную способность операций копирования можно увеличить, задав значение переменной среды
AZCOPY_CONCURRENCY_VALUE
. Узнать больше можно из статьи Увеличение степени параллелизма.Если у исходных BLOB-объектов есть теги индекса и вы хотите сохранить эти теги, необходимо повторно применить их к целевым BLOB-объектам. Сведения о том, как задавать теги индекса, см. в разделе Копирование BLOB-объектов в другую учетную запись хранения с тегами индекса этой статьи.
Копирование BLOB-объекта
Скопируйте BLOB-объект в другую учетную запись хранения с помощью команды azcopy copy.
Совет
В этом примере аргументы пути заключены в одинарные кавычки (' '). Используйте одинарные кавычки во всех командных оболочках, кроме командной оболочки Windows (cmd.exe). Если вы используете командную оболочку Windows (cmd.exe), заключите аргументы пути в двойные кавычки ("") вместо одинарных (").
Синтаксис
azcopy copy 'https://<source-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>'
Пример
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myTextFile.txt' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myTextFile.txt'
Пример (конечные точки Data Lake Storage)
azcopy copy 'https://mysourceaccount.dfs.core.windows.net/mycontainer/myTextFile.txt' 'https://mydestinationaccount.dfs.core.windows.net/mycontainer/myTextFile.txt'
Операция копирования является синхронной, поэтому когда команда возвращает результат, это означает, что все файлы скопированы.
Копирование каталога
Скопируйте каталог в другую учетную запись хранения с помощью команды azcopy copy.
Совет
В этом примере аргументы пути заключены в одинарные кавычки (' '). Используйте одинарные кавычки во всех командных оболочках, кроме командной оболочки Windows (cmd.exe). Если вы используете командную оболочку Windows (cmd.exe), заключите аргументы пути в двойные кавычки ("") вместо одинарных (").
Синтаксис
azcopy copy 'https://<source-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<directory-path>' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --recursive
Пример
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive
Пример (конечные точки Data Lake Storage)
azcopy copy 'https://mysourceaccount.dfs.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.dfs.core.windows.net/mycontainer' --recursive
Операция копирования синхронна. Все файлы копируются при возврате команды.
Копирование контейнера
Скопируйте контейнер в другую учетную запись хранения с помощью команды azcopy copy.
Совет
В этом примере аргументы пути заключены в одинарные кавычки (' '). Используйте одинарные кавычки во всех командных оболочках, кроме командной оболочки Windows (cmd.exe). Если вы используете командную оболочку Windows (cmd.exe), заключите аргументы пути в двойные кавычки ("") вместо одинарных (").
Синтаксис
azcopy copy 'https://<source-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --recursive
Пример
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive
Пример (конечные точки Data Lake Storage)
azcopy copy 'https://mysourceaccount.dfs.core.windows.net/mycontainer' 'https://mydestinationaccount.dfs.core.windows.net/mycontainer' --recursive
Операция копирования синхронна. Все файлы копируются при возврате команды.
Копирование контейнеров, каталогов и BLOB-объектов
Скопируйте все контейнеры, каталоги и BLOB-объекты в другую учетную запись хранения с помощью команды azcopy copy.
Совет
В этом примере аргументы пути заключены в одинарные кавычки (' '). Используйте одинарные кавычки во всех командных оболочках, кроме командной оболочки Windows (cmd.exe). Если вы используете командную оболочку Windows (cmd.exe), заключите аргументы пути в двойные кавычки ("") вместо одинарных (").
Синтаксис
azcopy copy 'https://<source-storage-account-name>.<blob or dfs>.core.windows.net/' 'https://<destination-storage-account-name>.<blob or dfs>.core.windows.net/' --recursive
Пример
azcopy copy 'https://mysourceaccount.blob.core.windows.net/' 'https://mydestinationaccount.blob.core.windows.net' --recursive
Пример (конечные точки Data Lake Storage)
azcopy copy 'https://mysourceaccount.dfs.core.windows.net/' 'https://mydestinationaccount.dfs.core.windows.net' --recursive
Операция копирования является синхронной, поэтому когда команда возвращает результат, это означает, что все файлы скопированы.
Копирование BLOB-объектов и добавление тегов индекса
Скопируйте большие двоичные объекты в другую учетную запись хранения и добавьте теги индекса BLOB-объектов в целевой большой двоичный объект.
Если вы используете авторизацию Microsoft Entra, субъект безопасности должен быть назначен роли владельца данных BLOB-объектов хранилища или предоставить разрешение Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
на операцию поставщика ресурсов Azure с помощью настраиваемой роли Azure. Если вы используете маркер подписанного URL-адреса (SAS), маркер должен предоставить доступ к тегам BLOB-объекта через разрешение t
SAS.
Чтобы добавить теги, используйте параметр --blob-tags
вместе с парой "ключ-значение" в кодировке URL.
Например, чтобы добавить ключ my tag
и значение my tag value
, необходимо добавить --blob-tags='my%20tag=my%20tag%20value'
в параметр назначения.
Разделите несколько тегов индекса с помощью амперсанда (&
). Например, если нужно добавить ключ my second tag
и значение my second tag value
, то полная строка параметра будет иметь вид --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
.
В следующих примерах показано, как использовать параметр --blob-tags
.
Совет
В этих примерах аргументы пути заключаются в одинарные кавычки (''). Используйте одинарные кавычки во всех командных оболочках, кроме командной оболочки Windows (cmd.exe). Если вы используете командную оболочку Windows (cmd.exe), заключите аргументы пути в двойные кавычки ("") вместо одинарных (").
Пример BLOB-объекта
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myTextFile.txt' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myTextFile.txt' --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
Пример каталога
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer/myBlobDirectory' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
Пример контейнера
azcopy copy 'https://mysourceaccount.blob.core.windows.net/mycontainer' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
Пример учетной записи
azcopy copy 'https://mysourceaccount.blob.core.windows.net/' 'https://mydestinationaccount.blob.core.windows.net' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
Операция копирования синхронна. Все файлы копируются при возврате команды.
Примечание.
Если указать для источника каталог, контейнер и учетную запись, то все BLOB-объекты, скопированные в назначение, будут иметь те же теги, что указаны в команде.
Копирование с дополнительными флагами
Вы можете модифицировать операцию копирования с помощью дополнительных флагов. Вот несколько примеров.
Сценарий | Флаг |
---|---|
Копирование BLOB-объектов в виде блоков, страниц или добавочных BLOB-объектов. | --blob-type=[BlockBlob|PageBlob|AppendBlob] |
Копирование файлов в конкретный уровень хранилища (например, в архивный уровень). | --block-blob-tier=[None|Hot|Cool|Archive] |
Автоматическое распаковка файлов. | --decompress=[gzip|deflate] |
Полный список примеров см. в разделе Параметры.
Следующие шаги
Дополнительные примеры см. в следующих статьях:
- Примеры: отправка
- Примеры: скачивание
- Примеры: синхронизация
- Примеры: контейнеры Amazon S3
- Примеры: облачное хранилище Google
- Примеры. Файлы Azure
- Руководство. Перенос локальных данных в облачное хранилище с помощью AzCopy
Ознакомьтесь со статьями ниже, чтобы получить сведения о настройке параметров, оптимизации производительности и устранении проблем:
- Параметры конфигурации AzCopy
- Оптимизация производительности AzCopy
- Поиск ошибок и возобновление заданий с помощью файлов журналов и планов в AzCopy
- Устранение неполадок с AzCopy версии 10
- Использование AzCopy для копирования больших двоичных объектов между учетными записями хранения Azure с ограничениями сети