Автоматизация в ИТ стала повсеместной. От предоставления виртуальных машин до развертывания веб-сайтов, автоматизация играет ключевую роль, особенно когда вам нужно иметь дело с несколькими объектами. Даже управление файлами между хранилищем Azure и вашим локальным компьютером можно автоматизировать с помощью утилиты под названием AzCopy.
AzCopy – это автономная утилита, позволяющая управлять хранилищем Azure. С помощью AzCopy можно выполнять несколько операций. В этой статье мы сосредоточимся на:
- Создании контейнеров хранилища
- Копировании локальных файлов в контейнеры
- Копировании файлов между контейнерами
Давайте начнем!
Если вы предпочитаете учиться через видео, вы также можете посмотреть видео от TechSnips, которое тесно связано с тем, что вы будете изучать в этой статье.
Необходимые условия
В этой статье будет показана демонстрация различных задач. Если вы хотите следовать за нами, убедитесь, что у вас выполнены следующие требования перед началом.
- Подписка Azure. Если у вас еще нет подписки, вы можете запросить пробную подписку.
- Учетная запись хранилища Azure. Для получения дополнительной информации обратитесь к Создайте учетную запись хранилища.
- AzCopy загружен и аутентифицирован (ознакомьтесь с статьей Как загрузить и установить инструмент AZCopy, чтобы узнать, как это настроить)
Создание новых контейнеров хранения
Сначала давайте используем AzCopy для создания новых контейнеров хранения в существующем учетной записи хранения. В приведенном вами примере вы создадите два новых контейнера с именами container1 и container2.
Примечание: перед созданием нового контейнера необходимо знать URL-адрес конечной точки контейнера. URL-адрес конечной точки соответствует формату: https://[имя_учетной_записи_хранилища].blob.core.windows.net/[имя_контейнера].
Сначала определите URL-адрес конечной точки. В этом примере контейнеры будут созданы в учетной записи хранения с именем storageaccount1207, создав два URL-адреса конечной точки:
- https://storageaccount1207.blob.core.windows.net/container1
- https://storageaccount1207.blob.core.windows.net/container2
Теперь, когда вы знаете URL-адреса конечной точки, используйте команду azcopy make
, передав каждый URL-адрес конечной точки в качестве параметра, как показано ниже.

Копирование файлов в/из контейнеров Azure
Как только у вас создан контейнер хранения, вы, вероятно, спрашиваете: “Как загрузить в хранилище блобов Azure?”. Это можно сделать с помощью AzCopy, используя команду azcopy copy
. Вы можете использовать AzCopy для копирования PST, VHD и других файлов.
Использование аутентификации OAuth
При использовании AzCopy для копирования файлов в блобы у вас есть несколько вариантов аутентификации. Поскольку предполагается, что вы уже прошли аутентификацию в Azure Storage (поскольку это было в предварительных требованиях), вы можете просто запустить azcopy copy
, указав локальный путь к файлу, за которым следует URL-адрес контейнера, как показано ниже.
Не указывая никаких других параметров, вы используете аутентификацию OAuth.

Как вы узнаете, что файл скопирован в контейнер Azure Blob? Вы можете использовать команду azcopy list [URL контейнера]
. Смотрите приведенный ниже пример, показывающий, что файл file1.txt
существует.

Чтобы загрузить файл из блоба Azure в локальный каталог, вам нужно всего лишь поменять местами аргументы источника и места назначения. Смотрите пример ниже.

Использование маркера общего доступа (SAS)
Чтобы использовать маркер SAS, сначала его нужно сгенерировать. Если вы не знаете, как сгенерировать маркер SAS, ознакомьтесь с статьей Как создать маркер SAS Azure для доступа к учетным записям хранилища.
После получения маркера SAS вы можете добавить маркер к URL-адресу контейнера назначения в виде HTTP-параметра, как показано ниже.
Если вы используете PowerShell и сохраняете маркер в переменную (например, $token
), вы можете передать эту переменную вместо полной строки маркера, как показано в команде ниже.

Используя тот же токен (предполагая, что он все еще действителен), вы также можете загружать файлы из хранилища Azure в локальное хранилище. Приведенный ниже пример копирует файл file1.txt
из хранилища Azure с помощью токена SAS.
В приведенном ниже коде вы можете видеть, что на этот раз вместо добавления токена после имени контейнера сначала добавляется имя файла. Это указывает AzCopy скопировать определенный файл с использованием аутентификации SAS.

Копирование каталога в/из хранилища Azure
Если у вас есть много файлов для передачи или загрузки из Azure, вы также можете скопировать целые каталоги сразу с помощью azcopy copy
. Команда для этого не сильно отличается от той, которую вы используете для копирования одиночных файлов.
Ниже вы можете увидеть команду, которая рекурсивно копирует C:\\MyDir
в контейнер blob container1. Здесь ключевым является параметр --recursive
. Флаг --recursive
в конце команды указывает, что будут скопированы все содержимое родительского каталога и подкаталоги, если они существуют.
Вы можете увидеть ниже, что десять файлов внутри папки C:\MyDir были успешно скопированы на основе сводки по работе.

Копирование файлов между контейнерами хранения Azure
На протяжении всей статьи вы довольно часто использовали команду azcopy copy
. Нет смысла останавливаться сейчас! Не только вы можете копировать каталоги и файлы в/из локальной среды, но также можете копировать блобы между контейнерами хранения.
Вместо использования локального пути к файлу, вы измените параметры, чтобы использовать один URL контейнера блобов в качестве источника и другой URL контейнера блобов в качестве назначения.
Вы уже создали два контейнера хранения с названиями container1 и container2. В этом разделе давайте скопируем файлы, каталоги и даже целый контейнер блобов из container1 в container2.
Для копирования файлов из одного контейнера в другой сначала сгенерируйте новый токен SAS. Поскольку два контейнера принадлежат одному и тому же аккаунту хранения, один и тот же токен может быть использован как для источника, так и для назначения.
Предполагая, что вы сохранили строку токена в переменной под названием $token
(если запускаете azcopy с помощью PowerShell), вы можете легко скопировать все данные из одного контейнера хранения в другой, как показано ниже.
Напоминание: Посмотрите статью Как сгенерировать токен SAS Azure для доступа к учетным записям хранения, если не знаете, как сгенерировать токен SAS.

Другие полезные операции AzCopy
Помимо копирования файлов и папок, с помощью AzCopy можно выполнять другие операции копирования. Некоторые из них:
- Копирование конкретных файлов (с фильтрацией).
- Копирование каталога в другой каталог в контейнере блобов.
- Копирование с Amazon AWS в хранилище Azure.
Если вы хотите узнать о всех возможностях AzCopy, ознакомьтесь с справочным материалом, запустив azcopy -h
. Вы найдете множество других полезных команд помимо команды copy
, на которой вы сосредоточились в этой статье. Вы можете увидеть скриншот этих команд ниже.

Чтобы узнать больше, посетите страницу Копирование с помощью AzCopy. Затем вы можете попробовать это самостоятельно, используя техники, которые вы узнали в этой статье.
Итог
В этой статье вы узнали, как использовать AzCopy для передачи файлов между локальным хранилищем и хранилищем Azure. Вы также узнали, как выполнять эти задачи при использовании аутентификации OAuth и токена с общим доступом для подписи. Вы видели, какие еще команды AzCopy доступны и как их найти.
I hope this article has helped you get started with AzCopy and sparked your interest in using it more as part of your administration or development tasks. Thank you!