Автоматизация в настоящее время повсюду в области информационных технологий. От предоставления виртуальных машин до развертывания веб-сайтов, автоматизация играет ключевую роль, особенно когда вам нужно иметь дело с несколькими элементами. Даже управление файлами между хранилищем 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
. Нет необходимости останавливаться сейчас! Вы можете копировать каталоги и файлы to/from on-prem, а также копировать блобы между контейнерами хранения.
Вместо использования локального пути к файлу вы измените параметры, чтобы использовать один URL контейнера блобов как источник и другой URL контейнера блобов как место назначения.
Вы уже создали два контейнера хранения с именами container1 и container2. В этом разделе давайте скопируем файлы, каталоги и даже весь контейнер блобов из container1 в container2.
Чтобы скопировать файлы из одного контейнера в другой, сначала сгенерируйте новый токен SAS. Поскольку два контейнера принадлежат одному и тому же учетной записи хранения, тот же токен можно использовать и для источника, и для места назначения.
Предполагая, что вы сохранили строку токена в переменной с именем $token
(если запускаете azcopy с помощью PowerShell), вы можете легко скопировать все данные из одного контейнера хранения в другой, как показано ниже.
Напоминание: Посмотрите статью Как создать токен SAS Azure для доступа к учетным записям хранения, если не знаете, как сгенерировать токен SAS.

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

Чтобы узнать больше, посетите страницу AzCopy Copy. Затем вы можете попробовать их самостоятельно, используя техники, изученные в этой статье.
Сводка
В этой статье вы узнали, как использовать AzCopy для передачи файлов между локальным хранилищем и хранилищем Azure. Вы также узнали, как выполнять эти задачи при использовании OAuth и токена Shared Access Signature для аутентификации. Вы видели, какие другие команды 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!