Начало работы с AzCopyGet started with AzCopy

AzCopy — это служебная программа командной строки, которую можно использовать для копирования больших двоичных объектов или файлов в учетную запись хранения или из нее.AzCopy is a command-line utility that you can use to copy blobs or files to or from a storage account. Эта статья поможет вам скачать AzCopy, подключиться к учетной записи хранения, а затем передавать файлы.This article helps you download AzCopy, connect to your storage account, and then transfer files.

Примечание

AzCopy V10 — это Текущая поддерживаемая версия AzCopy.AzCopy V10 is the currently supported version of AzCopy.

Если вам нужно использовать AzCopy v 8.1, см. раздел Использование предыдущей версии AzCopy этой статьи.If you need to use AzCopy v8.1, see the Use the previous version of AzCopy section of this article.

Скачивание AzCopyDownload AzCopy

Сначала скачайте исполняемый файл AzCopy V10 в любой каталог на компьютере.First, download the AzCopy V10 executable file to any directory on your computer.

AzCopy V10 — это просто исполняемый файл, поэтому установка не требуется.AzCopy V10 is just an executable file, so there's nothing to install.

Примечание

Если вы хотите копировать данные в службу хранилища таблиц Azure и из нее, установите AzCopy версии 7,3.If you want to copy data to and from your Azure Table storage service, then install AzCopy version 7.3.

Запустить AzCopyRun AzCopy

Для удобства рекомендуется добавить расположение исполняемого файла AzCopy в системный путь для простоты использования.For convenience, consider adding the directory location of the AzCopy executable to your system path for ease of use. Таким образом можно ввести azcopy любой каталог в системе.That way you can type azcopy from any directory on your system.

Если вы решили не добавлять каталог AzCopy в путь, необходимо будет изменить каталоги на расположение исполняемого файла AzCopy и ввести azcopy или .\azcopy в командной строки Windows PowerShell.If you choose not to add the AzCopy directory to your path, you'll have to change directories to the location of your AzCopy executable and type azcopy or .\azcopy in Windows PowerShell command prompts.

Чтобы просмотреть список команд, введите azcopy -h и нажмите клавишу ВВОД.To see a list of commands, type azcopy -h and then press the ENTER key.

Чтобы узнать об определенной команде, просто включите имя команды (например: azcopy list -h).To learn about a specific command, just include the name of the command (For example: azcopy list -h).

Встроенная справка

Примечание

Как владелец учетной записи хранения Azure, вы не назначаете разрешения на доступ к данным автоматически.As an owner of your Azure Storage account, you aren't automatically assigned permissions to access data. Прежде чем выполнять какие-либо осмысленные действия с AzCopy, необходимо решить, как вы будете предоставлять учетные данные авторизации для службы хранилища.Before you can do anything meaningful with AzCopy, you need to decide how you'll provide authorization credentials to the storage service.

Выбор порядка предоставления учетных данных для авторизацииChoose how you'll provide authorization credentials

Учетные данные авторизации можно указать с помощью Azure Active Directory (AD) или с помощью маркера подписанного URL-адрес (SAS).You can provide authorization credentials by using Azure Active Directory (AD), or by using a Shared Access Signature (SAS) token.

Используйте эту таблицу в качестве рекомендации:Use this table as a guide:

Тип хранилищаStorage type Текущий поддерживаемый метод авторизацииCurrently supported method of authorization
Хранилище BLOB-объектовBlob storage SAS & Azure ADAzure AD & SAS
Хранилище BLOB-объектов (иерархическое пространство имен)Blob storage (hierarchial namespace) SAS & Azure ADAzure AD & SAS
Хранилище файловFile storage Только SASSAS only

Вариант 1. Использование Azure ADOption 1: Use Azure AD

С помощью Azure AD можно указать учетные данные один раз вместо того, чтобы добавлять маркер SAS к каждой команде.By using Azure AD, you can provide credentials once instead of having to append a SAS token to each command.

Примечание

В текущем выпуске, если вы планируете копировать большие двоичные объекты между учетными записями хранения, необходимо добавить маркер SAS к каждому исходному URL-адресу.In the current release, if you plan to copy blobs between storage accounts, you’ll have to append a SAS token to each source URL. Маркер SAS можно опустить только из URL-адреса назначения.You can omit the SAS token only from the destination URL. Примеры см. в разделе копирование больших двоичных объектов между учетными записями хранения.For examples, see Copy blobs between storage accounts.

Необходимый уровень авторизации зависит от того, планируется ли отправка файлов или просто их загрузка.The level of authorization that you need is based on whether you plan to upload files or just download them.

Если вы хотите просто скачать файлы, убедитесь, что модуль чтения данных BLOB-объекта хранилища назначен вашему удостоверению пользователя, управляемому удостоверению или субъекту-службе.If you just want to download files, then verify that the Storage Blob Data Reader has been assigned to your user identity, managed identity, or service principal.

Удостоверения пользователей, управляемые удостоверения и субъекты-службы относятся к каждому типу субъектов безопасности, поэтому мы будем использовать термин « субъект безопасности » в оставшейся части этой статьи.User identities, managed identities, and service principals are each a type of security principal, so we'll use the term security principal for the remainder of this article.

Если вы хотите передать файлы, убедитесь, что участнику безопасности назначена одна из этих ролей:If you want to upload files, then verify that one of these roles has been assigned to your security principal:

Эти роли могут быть назначены субъекту безопасности в любой из этих областей:These roles can be assigned to your security principal in any of these scopes:

  • Контейнер (файловая система)Container (file system)
  • Учетная запись храненияStorage account
  • Группа ресурсовResource group
  • ПодпискаSubscription

Сведения о проверке и назначении ролей см. в разделе Предоставление доступа к данным BLOB-объектов и очередей Azure с помощью RBAC в портал Azure.To learn how to verify and assign roles, see Grant access to Azure blob and queue data with RBAC in the Azure portal.

Примечание

Помните, что для распространения назначений ролей RBAC может потребоваться до пяти минут.Keep in mind that RBAC role assignments may take up to five minutes to propagate.

Если субъект безопасности добавлен в список управления доступом (ACL) целевого контейнера или каталога, вам не нужно назначать одну из этих ролей субъекту безопасности.You don't need to have one of these roles assigned to your security principal if your security principal is added to the access control list (ACL) of the target container or directory. В списке управления доступом субъекту безопасности необходимо разрешение на запись в целевой каталог и разрешение EXECUTE для контейнера и каждого родительского каталога.In the ACL, your security principal needs write permission on the target directory, and execute permission on container and each parent directory.

Дополнительные сведения см. в разделе Контроль доступа в Azure Data Lake Storage 2-го поколения.To learn more, see Access control in Azure Data Lake Storage Gen2.

Проверка подлинности удостоверения пользователяAuthenticate a user identity

Убедившись, что удостоверению пользователя предоставлен необходимый уровень авторизации, откройте командную строку, введите следующую команду и нажмите клавишу ВВОД.After you've verified that your user identity has been given the necessary authorization level, open a command prompt, type the following command, and then press the ENTER key.

azcopy login

Если вы принадлежите к нескольким организациям, включите идентификатор клиента, к которому принадлежит учетная запись хранения.If you belong to more than one organization, include the tenant ID of the organization to which the storage account belongs.

azcopy login --tenant-id=<tenant-id>

<tenant-id> Замените заполнитель идентификатором клиента организации, к которой принадлежит учетная запись хранения.Replace the <tenant-id> placeholder with the tenant ID of the organization to which the storage account belongs. Чтобы найти идентификатор клиента, выберите Azure Active Directory > свойства > идентификатор каталога в портал Azure.To find the tenant ID, select Azure Active Directory > Properties > Directory ID in the Azure portal.

Эта команда возвращает код проверки подлинности и URL-адрес веб-сайта.This command returns an authentication code and the URL of a website. Откройте веб-сайт, укажите код и нажмите кнопку Далее.Open the website, provide the code, and then choose the Next button.

Создать контейнер

Откроется окно входа.A sign-in window will appear. В этом окне войдите в свою учетную запись Azure с помощью соответствующих данных.In that window, sign into your Azure account by using your Azure account credentials. Выполнив вход, можно закрыть окно браузера и начать работу с AzCopy.After you've successfully signed in, you can close the browser window and begin using AzCopy.

Проверка подлинности субъекта-службыAuthenticate a service principal

Это отличный вариант, если вы планируете использовать AzCopy внутри сценария, который выполняется без взаимодействия с пользователем, особенно при работе в локальной среде.This is a great option if you plan to use AzCopy inside of a script that runs without user interaction, particularly when running on-premises. Если вы планируете запускать AzCopy на виртуальных машинах, работающих в Azure, управляемое удостоверение службы проще администрировать.If you plan to run AzCopy on VMs that run in Azure, a managed service identity is easier to administer. Дополнительные сведения см. в разделе Проверка подлинности управляемого удостоверения этой статьи.To learn more, see the Authenticate a managed identity section of this article.

Перед запуском скрипта необходимо войти в интерактивный режиме по крайней мере один раз, чтобы вы могли предоставить AzCopy с учетными данными субъекта-службы.Before you run a script, you have to sign-in interactively at least one time so that you can provide AzCopy with the credentials of your service principal. Эти учетные данные хранятся в защищенном и зашифрованном файле, поэтому сценарий не должен предоставлять эти конфиденциальные сведения.Those credentials are stored in a secured and encrypted file so that your script doesn't have to provide that sensitive information.

Вы можете войти в свою учетную запись с помощью секрета клиента или пароля сертификата, связанного с регистрацией приложения субъекта-службы.You can sign into your account by using a client secret or by using the password of a certificate that is associated with your service principal's app registration.

Дополнительные сведения о создании субъекта-службы см . в разделе как Создание приложения Azure Active Directory и субъект-службы с доступом к ресурсам с помощью портала.To learn more about creating service principal, see How to: Use the portal to create an Azure AD application and service principal that can access resources.

Дополнительные сведения о субъектах-службах см. в разделе объекты приложения и субъекта-службы в Azure Active DirectoryTo learn more about service principals in general, see Application and service principal objects in Azure Active Directory

Использование секрета клиентаUsing a client secret

Начните с установки AZCOPY_SPA_CLIENT_SECRET переменной среды в секрет клиента регистрации приложения субъекта-службы.Start by setting the AZCOPY_SPA_CLIENT_SECRET environment variable to the client secret of your service principal's app registration.

Примечание

Обязательно задайте это значение в командной строке, а не в параметрах переменной среды операционной системы.Make sure to set this value from your command prompt, and not in the environment variable settings of your operating system. Таким образом, значение будет доступно только текущему сеансу.That way, the value is available only to the current session.

В этом примере показано, как это можно сделать в PowerShell.This example shows how you could do this in PowerShell.

$env:AZCOPY_SPA_CLIENT_SECRET="$(Read-Host -prompt "Enter key")"

Примечание

Рассмотрите возможность использования запроса, как показано в этом примере.Consider using a prompt as shown in this example. В этом случае секрет клиента не будет отображаться в журнале команд консоли.That way, the client secret won't appear in your console's command history.

Затем введите следующую команду и нажмите клавишу ВВОД.Next, type the following command, and then press the ENTER key.

azcopy login --service-principal --application-id <application-id>

<application-id> Замените заполнитель идентификатором приложения для регистрации приложения субъекта-службы.Replace the <application-id> placeholder with the application ID of your service principal's app registration.

Использование сертификатаUsing a certificate

Если вы предпочитаете использовать собственные учетные данные для авторизации, вы можете отправить сертификат в регистрацию приложения, а затем использовать этот сертификат для входа.If you prefer to use your own credentials for authorization, you can upload a certificate to your app registration, and then use that certificate to login.

Кроме отправки сертификата в регистрацию приложения, вам также потребуется копия сертификата, сохраненная на компьютере или виртуальной машине, где будет выполняться AzCopy.In addition to uploading your certificate to your app registration, you'll also need to have a copy of the certificate saved to the machine or VM where AzCopy will be running. Эта копия сертификата должна быть в. PFX или. Формат PEM и должен включать закрытый ключ.This copy of the certificate should be in .PFX or .PEM format, and must include the private key. Закрытый ключ должен быть защищен паролем.The private key should be password-protected. Если вы используете Windows и ваш сертификат существует только в хранилище сертификатов, обязательно экспортируйте этот сертификат в PFX-файл (включая закрытый ключ).If you're using Windows, and your certificate exists only in a certificate store, make sure to export that certificate to a PFX file (including the private key). Инструкции см. в разделе Export-PfxCertificate .For guidance, see Export-PfxCertificate

Затем задайте AZCOPY_SPA_CERT_PASSWORD для переменной среды пароль сертификата.Next, set the AZCOPY_SPA_CERT_PASSWORD environment variable to the certificate password.

Примечание

Обязательно задайте это значение в командной строке, а не в параметрах переменной среды операционной системы.Make sure to set this value from your command prompt, and not in the environment variable settings of your operating system. Таким образом, значение будет доступно только текущему сеансу.That way, the value is available only to the current session.

В этом примере показано, как это можно сделать в PowerShell.This example shows how you could do this in PowerShell.

$env:AZCOPY_SPA_CERT_PASSWORD="$(Read-Host -prompt "Enter key")"

Затем введите следующую команду и нажмите клавишу ВВОД.Next, type the following command, and then press the ENTER key.

azcopy login --service-principal --certificate-path <path-to-certificate-file>

<path-to-certificate-file> Замените заполнитель относительным или полным путем к файлу сертификата.Replace the <path-to-certificate-file> placeholder with the relative or fully-qualified path to the certificate file. AzCopy сохраняет путь к этому сертификату, но не сохраняет копию сертификата, поэтому обязательно сохраните этот сертификат на месте.AzCopy saves the path to this certificate but it doesn't save a copy of the certificate, so make sure to keep that certificate in place.

Примечание

Рассмотрите возможность использования запроса, как показано в этом примере.Consider using a prompt as shown in this example. В этом случае ваш пароль не будет отображаться в журнале команд консоли.That way, your password won't appear in your console's command history.

Проверка подлинности управляемого удостоверенияAuthenticate a managed identity

Это отличный вариант, если вы планируете использовать AzCopy внутри сценария, который выполняется без участия пользователя, и сценарий выполняется из виртуальной машины Azure.This is a great option if you plan to use AzCopy inside of a script that runs without user interaction, and the script runs from an Azure Virtual Machine (VM). При использовании этого параметра не нужно хранить учетные данные на виртуальной машине.When using this option, you won't have to store any credentials on the VM.

Вы можете войти в свою учетную запись с помощью управляемого удостоверения на уровне системы, которое вы включили на виртуальной машине, или с помощью идентификатора клиента, идентификатора объекта или идентификатора ресурса назначенного пользователю управляемого удостоверения, назначенного вашей виртуальной машине.You can sign into your account by using the a system-wide managed identity that you've enabled on your VM, or by using the client ID, Object ID, or Resource ID of a user-assigned managed identity that you've assigned to your VM.

Дополнительные сведения о том, как включить управляемое удостоверение для всей системы или создать управляемое пользователем удостоверение, см. в статье Настройка управляемых удостоверений для ресурсов Azure на виртуальной машине с помощью портал Azure.To learn more about how to enable a system-wide managed identity or create a user-assigned managed identity, see Configure managed identities for Azure resources on a VM using the Azure portal.

Использование управляемого удостоверения на уровне системыUsing a system-wide managed identity

Во-первых, убедитесь, что вы включили управляемое удостоверение на уровне системы на виртуальной машине.First, make sure that you've enabled a system-wide managed identity on your VM. См. раздел управляемое системой удостоверение.See System-assigned managed identity.

Затем в командной консоли введите следующую команду и нажмите клавишу ВВОД.Then, in your command console, type the following command, and then press the ENTER key.

azcopy login --identity
Использование управляемого удостоверения, назначенного пользователемUsing a user-assigned managed identity

Во-первых, убедитесь, что на виртуальной машине вы включили управляемое удостоверение, назначенное пользователем.First, make sure that you've enabled a user-assigned managed identity on your VM. См. раздел назначенное пользователем управляемое удостоверение.See User-assigned managed identity.

Затем в командной консоли введите любую из следующих команд и нажмите клавишу ВВОД.Then, in your command console, type any of the following commands, and then press the ENTER key.

azcopy login --identity --identity-client-id "<client-id>"

<client-id> Замените заполнитель идентификатором клиента управляемого удостоверения, назначенного пользователем.Replace the <client-id> placeholder with the client ID of the user-assigned managed identity.

azcopy login --identity --identity-object-id "<object-id>"

<object-id> Замените заполнитель идентификатором объекта управляемого удостоверения, назначенного пользователем.Replace the <object-id> placeholder with the object ID of the user-assigned managed identity.

azcopy login --identity --identity-resource-id "<resource-id>"

<resource-id> Замените заполнитель идентификатором ресурса управляемого удостоверения, назначаемого пользователем.Replace the <resource-id> placeholder with the resource ID of the user-assigned managed identity.

Вариант 2. Использование маркера SAS.Option 2: Use a SAS token

Маркер SAS можно добавить к каждому URL-адресу источника или назначения, который используется в командах AzCopy.You can append a SAS token to each source or destination URL that use in your AzCopy commands.

В этом примере команда рекурсивно копирует данные из локального каталога в контейнер больших двоичных объектов.This example command recursively copies data from a local directory to a blob container. Вымышленный маркер SAS добавляется в конец URL-адреса контейнера.A fictitious SAS token is appended to the end of the of the container URL.

azcopy cp "C:\local\path" "https://account.blob.core.windows.net/mycontainer1/?sv=2018-03-28&ss=bjqt&srt=sco&sp=rwddgcup&se=2019-05-01T05:01:17Z&st=2019-04-30T21:01:17Z&spr=https&sig=MGCXiyEzbtttkr3ewJIh2AR8KrghSy1DGM9ovN734bQF4%3D" --recursive=true

Дополнительные сведения о маркерах SAS и их получении см. в разделе использование подписанных URL-адресов (SAS).To learn more about SAS tokens and how to obtain one, see Using shared access signatures (SAS).

Перенос файловTransfer files

После проверки подлинности удостоверения или получения маркера SAS можно начать передачу файлов.After you've authenticated your identity or obtained a SAS token, you can begin transferring files.

Примеры команд см. в любой из этих статей.To find example commands, see any of these articles.

Использование AzCopy в скриптеUse AzCopy in a script

Со временем ссылка для скачивания AzCopy будет указывать на новые версии AzCopy.Over time, the AzCopy download link will point to new versions of AzCopy. Если сценарий скачивает AzCopy, скрипт может перестать работать, если более новая версия AzCopy изменяет функции, от которых зависит сценарий.If your script downloads AzCopy, the script might stop working if a newer version of AzCopy modifies features that your script depends upon.

Чтобы избежать этих проблем, получите статическую (неизменную) ссылку на текущую версию AzCopy.To avoid these issues, obtain a static (un-changing) link to the current version of AzCopy. Таким образом, ваш сценарий скачивает одну и ту же версию AzCopy при каждом запуске.That way, your script downloads the same exact version of AzCopy each time that it runs.

Чтобы получить ссылку, выполните следующую команду:To obtain the link, run this command:

Операционная системаOperating system CommandCommand
LinuxLinux curl -v https://aka.ms/downloadazcopy-v10-linux
WindowsWindows (curl https://aka.ms/downloadazcopy-v10-windows -MaximumRedirection 0 -ErrorAction silentlycontinue).RawContent

Примечание

Для Linux --strip-components=1 tar в команде удаляется папка верхнего уровня, содержащая имя версии, а вместо этого двоичный файл извлекается непосредственно в текущую папку.For Linux, --strip-components=1 on the tar command removes the top-level folder that contains the version name, and instead extracts the binary directly into the current folder. Это позволяет обновлять скрипт с новой версией azcopy , wget обновляя только URL-адрес.This allows the script to be updated with a new version of azcopy by only updating the wget URL.

URL-адрес отображается в выходных данных этой команды.The URL appears in the output of this command. Затем скрипт может скачать AzCopy с помощью этого URL-адреса.Your script can then download AzCopy by using that URL.

Операционная системаOperating system CommandCommand
LinuxLinux wget -O azcopyv10.tar https://azcopyvnext.azureedge.net/release20190301/azcopy_linux_amd64_10.0.8.tar.gz tar -xf azcopyv10.tar --strip-components=1 ./azcopy
WindowsWindows Invoke-WebRequest https://azcopyvnext.azureedge.net/release20190517/azcopy_windows_amd64_10.1.2.zip -OutFile azcopyv10.zip <<Unzip here>>

Экранирование специальных символов в маркерах SASEscape special characters in SAS tokens

В пакетных файлах с .cmd расширением необходимо % экранировать символы, отображаемые в маркерах SAS.In batch files that have the .cmd extension, you'll have to escape the % characters that appear in SAS tokens. Это можно сделать, добавив символ сложения % рядом с существующими % символами в строке токена SAS.You can do that by adding an addition % character next to existing % characters in the SAS token string.

Использование AzCopy в Обозреватель службы хранилищаUse AzCopy in Storage Explorer

Если вы хотите воспользоваться преимуществами производительности AzCopy, но вы предпочитаете использовать Обозреватель службы хранилища, а не командную строку для взаимодействия с файлами, включите AzCopy в Обозреватель службы хранилища.If you want to leverage the performance advantages of AzCopy, but you prefer to use Storage Explorer rather than the command line to interact with your files, then enable AzCopy in Storage Explorer.

В обозреватель службы хранилища выберите Предварительный просмотр->использовать AzCopy для улучшения отправки и загрузки больших двоичных объектов.In Storage Explorer, choose Preview->Use AzCopy for Improved Blob Upload and Download.

Включение AzCopy в качестве модуля передач в Обозреватель службы хранилища Azure

Примечание

Если вы включили иерархическое пространство имен в учетную запись хранения, вам не нужно включать этот параметр.You don't have to enable this setting if you've enabled a hierarchical namespace on your storage account. Это связано с тем, что Обозреватель службы хранилища автоматически использует AzCopy в учетных записях хранения, имеющих иерархическое пространство имен.That's because Storage Explorer automatically uses AzCopy on storage accounts that have a hierarchical namespace.

Обозреватель службы хранилища использует ключ учетной записи для выполнения операций, поэтому после входа в Обозреватель службы хранилища вам не потребуется предоставлять дополнительные учетные данные для авторизации.Storage Explorer uses your account key to perform operations, so after you sign into Storage Explorer, you won't need to provide additional authorization credentials.

Использовать предыдущую версию AzCopyUse the previous version of AzCopy

Если вам нужно использовать предыдущую версию AzCopy (AzCopy версии 8.1), см. одну из следующих ссылок:If you need to use the previous version of AzCopy (AzCopy v8.1), see either of the following links:

Настройка, оптимизация и устранение неполадок AzCopyConfigure, optimize, and troubleshoot AzCopy

См. раздел Настройка, оптимизация и устранение неполадок AzCopySee Configure, optimize, and troubleshoot AzCopy

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

Если у вас есть вопросы, проблемы или общие отзывы, отправьте их на страницу GitHub .If you have questions, issues, or general feedback, submit them on GitHub page.