Передача данных с помощью AzCopy и BLOB-хранилищаTransfer data with AzCopy and Blob storage

AzCopy — программа командной строки, который можно использовать для копирования данных, из или между учетными записями хранения.AzCopy is a command-line utility that you can use to copy data to, from, or between storage accounts. Эта статья содержит пример команды, работающие с хранилищем BLOB-объектов.This article contains example commands that work with Blob storage.

Начало работыGet started

См. в разделе начало работы с AzCopy статью, чтобы скачать AzCopy и узнайте о том, что может предоставить учетные данные авторизации в службе хранилища.See the Get started with AzCopy article to download AzCopy and learn about the ways that you can provide authorization credentials to the storage service.

Примечание

В примерах в этой статье предполагается, что вы прошли проверку подлинности личности с помощью AzCopy login команды.The examples in this article assume that you've authenticated your identity by using the AzCopy login command. AzCopy использует учетную запись Azure AD для авторизации доступа к данным в хранилище BLOB-объектов.AzCopy then uses your Azure AD account to authorize access to data in Blob storage.

Если вы предпочитаете использовать маркер SAS для авторизации доступа к данным больших двоичных объектов, можно добавить этот маркер на URL-адрес ресурса в каждой команде AzCopy.If you'd rather use a SAS token to authorize access to blob data, then you can append that token to the resource URL in each AzCopy command.

Например, https://<storage-account-name>.blob.core.windows.net/<container-name>?<SAS-token>".For example: https://<storage-account-name>.blob.core.windows.net/<container-name>?<SAS-token>".

Создание контейнераCreate a container

Можно использовать AzCopy make команду, чтобы создать контейнер.You can use the AzCopy make command to create a container. В примерах в этом разделе создается контейнер с именем mycontainer.The examples in this section create a container named mycontainer.

СинтаксисSyntax azcopy make "https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>
ПримерExample azcopy make "https://mystorageaccount.blob.core.windows.net/mycontainer"
Пример (иерархического пространства имен)Example (hierarchical namespace) azcopy make "https://mystorageaccount.dfs.core.windows.net/mycontainer"

Upload filesUpload files

Можно использовать AzCopy copy команду, чтобы передать файлы и каталоги на локальном компьютере.You can use the AzCopy copy command to upload files and directories from your local computer.

В этом разделе содержатся следующие примеры:This section contains the following examples:

  • Отправка файлаUpload a file
  • Отправка каталогаUpload a directory
  • Отправка файлов с использованием подстановочных знаковUpload files by using wildcard characters

Примечание

AzCopy не автоматически вычислить и сохранить хэш-код md5 файла.AzCopy doesn't automatically calculate and store the file's md5 hash code. Если требуется AzCopy, чтобы сделать это, добавьте --put-md5 флаг для каждой команды копирования.If you want AzCopy to do that, then append the --put-md5 flag to each copy command. Таким образом, если большой двоичный объект загружается, AzCopy вычисляет хэш MD5 для загрузки данных и проверяет, что хэша MD5, сохраненного в большом двоичном объекте Content-md5 свойство вычисленному хэшу.That way, when the blob is downloaded, AzCopy calculates an MD5 hash for downloaded data and verifies that the MD5 hash stored in the blob's Content-md5 property matches the calculated hash.

Отправка файлаUpload a file

СинтаксисSyntax azcopy cp "<local-file-path>" "https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-name>"
ПримерExample azcopy copy "C:\myDirectory\myTextFile.txt" "https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt"
Пример (иерархического пространства имен)Example (hierarchical namespace) azcopy copy "C:\myDirectory\myTextFile.txt" "https://mystorageaccount.dfs.core.windows.net/mycontainer/myTextFile.txt"

Примечание

По умолчанию AzCopy передает данные в блочных BLOB-объектов.AzCopy by default uploads data into block blobs. Для передачи файлов, как добавочных или страничных BLOB-объектов используйте флаг --blob-type=[BlockBlob|PageBlob|AppendBlob].To upload files as Append Blobs, or Page Blobs use the flag --blob-type=[BlockBlob|PageBlob|AppendBlob].

Отправка каталогаUpload a directory

В этом примере копирует каталог (и все файлы в этом каталоге) в контейнер больших двоичных объектов.This example copies a directory (and all of the files in that directory) to a blob container. Результат представляет собой каталог в контейнере с тем же именем.The result is a directory in the container by the same name.

СинтаксисSyntax azcopy copy "<local-directory-path>" "https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>" --recursive
ПримерExample azcopy copy "C:\myDirectory" "https://mystorageaccount.blob.core.windows.net/mycontainer" --recursive
Пример (иерархического пространства имен)Example (hierarchical namespace) azcopy copy "C:\myDirectory" "https://mystorageaccount.dfs.core.windows.net/mycontainer" --recursive

Чтобы скопировать каталог в контейнере, просто укажите имя этого каталога в командной строке.To copy to a directory within the container, just specify the name of that directory in your command string.

ПримерExample azcopy copy "C:\myDirectory" "https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory" --recursive
Пример (иерархического пространства имен)Example (hierarchical namespace) azcopy copy "C:\myDirectory" "https://mystorageaccount.dfs.core.windows.net/mycontainer/myBlobDirectory" --recursive

Если указать имя каталога, который не существует в контейнере, AzCopy создаст новый каталог с таким именем.If you specify the name of a directory that does not exist in the container, AzCopy creates a new directory by that name.

Отправка содержимого каталогаUpload the contents of a directory

Вы можете отправить содержимое каталога без копирования каталога, содержащего сам, используя подстановочный знак (*).You can upload the contents of a directory without copying the containing directory itself by using the wildcard symbol (*).

СинтаксисSyntax azcopy copy "<local-directory-path>\*" "https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<directory-path>
ПримерExample azcopy copy "C:\myDirectory\*" "https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory"
Пример (иерархического пространства имен)Example (hierarchical namespace) azcopy copy "C:\myDirectory\*" "https://mystorageaccount.dfs.core.windows.net/mycontainer/myBlobDirectory"

Примечание

Добавление --recursive флаг для отправки файлов во всех вложенных каталогах.Append the --recursive flag to upload files in all sub-directories.

Скачивание файловDownload files

Можно использовать AzCopy copy команду, чтобы скачать большие двоичные объекты, каталоги и контейнеры для локального компьютера.You can use the AzCopy copy command to download blobs, directories, and containers to your local computer.

В этом разделе содержатся следующие примеры:This section contains the following examples:

  • скачать файл;Download a file
  • Загрузка каталогаDownload a directory
  • Загрузка файлов с помощью подстановочных знаковDownload files by using wildcard characters

Примечание

Если Content-md5 значение свойства большого двоичного объекта содержит хэш, AzCopy вычисляет хэш MD5 для загруженных данных и проверяет, что хэша MD5, сохраненного в большом двоичном объекте Content-md5 свойство вычисленному хэшу.If the Content-md5 property value of a blob contains a hash, AzCopy calculates an MD5 hash for downloaded data and verifies that the MD5 hash stored in the blob's Content-md5 property matches the calculated hash. Если эти значения не совпадают, скачивание завершится сбоем, если не переопределить это поведение, добавив --check-md5=NoCheck или --check-md5=LogOnly для команды copy.If these values don't match, the download fails unless you override this behavior by appending --check-md5=NoCheck or --check-md5=LogOnly to the copy command.

скачать файл;Download a file

СинтаксисSyntax azcopy copy "https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-path>" "<local-file-path>"
ПримерExample azcopy copy "https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt" "C:\myDirectory\myTextFile.txt"
Пример (иерархического пространства имен)Example (hierarchical namespace) azcopy copy "https://mystorageaccount.dfs.core.windows.net/mycontainer/myTextFile.txt" "C:\myDirectory\myTextFile.txt"

Загрузка каталогаDownload a directory

СинтаксисSyntax azcopy copy "https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<directory-path>" "<local-directory-path>" --recursive
ПримерExample azcopy copy "https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory "C:\myDirectory" --recursive
Пример (иерархического пространства имен)Example (hierarchical namespace) azcopy copy "https://mystorageaccount.dfs.core.windows.net/mycontainer/myBlobDirectory "C:\myDirectory" --recursive

В этом примере результаты в каталог с именем C:\myDirectory\myBlobDirectory , содержащий все загруженные файлы.This example results in a directory named C:\myDirectory\myBlobDirectory that contains all of the downloaded files.

Загрузка содержимого каталогаDownload the contents of a directory

Можно загрузить содержимое каталога без копирования каталога, содержащего сам, используя подстановочный знак (*).You can download the contents of a directory without copying the containing directory itself by using the wildcard symbol (*).

Примечание

В настоящее время этот сценарий поддерживается только для учетных записей, у которых нет иерархического пространства имен.Currently, this scenario is supported only for accounts that don't have a hierarchical namespace.

СинтаксисSyntax azcopy copy "https://<storage-account-name>.blob.core.windows.net/<container-name>/*" "<local-directory-path>/"
ПримерExample azcopy copy "https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory/*" "C:\myDirectory"

Примечание

Добавление --recursive флаг для загрузки файлов во всех вложенных каталогах.Append the --recursive flag to download files in all sub-directories.

Копирование больших двоичных объектов между учетными записями храненияCopy blobs between storage accounts

Можно использовать AzCopy для копирования больших двоичных объектов в другие учетные записи хранения.You can use AzCopy to copy blobs to other storage accounts. Операция копирования является синхронным, поэтому при команда возвращает, это означает, что все файлы были скопированы.The copy operation is synchronous so when the command returns, that indicates that all files have been copied.

Примечание

В настоящее время этот сценарий поддерживается только для учетных записей, у которых нет иерархического пространства имен.Currently, this scenario is supported only for accounts that don't have a hierarchical namespace.

AzCopy использует поместить блок из URL-адрес API, поэтому данные копируются напрямую между серверами хранилища.AzCopy uses the Put Block From URL API, so data is copied directly between storage servers. Эти операции копирования не использовать пропускную способность сети компьютера.These copy operations don't use the network bandwidth of your computer.

В этом разделе содержатся следующие примеры:This section contains the following examples:

  • Копирование большого двоичного объекта в другую учетную запись храненияCopy a blob to another storage account
  • Копирование каталога в другой учетной записи храненияCopy a directory to another storage account
  • Копирование контейнерам в другую учетную запись храненияCopy a containers to another storage account
  • Скопируйте все контейнеры, каталоги и файлы в другую учетную запись храненияCopy all containers, directories, and files to another storage account

Примечание

В текущем выпуске необходимо добавить маркер SAS для каждого URL-адрес источника.In the current release, you have to append a SAS token to each source URL. Если вы предоставите учетные данные авторизации с помощью Azure Active Directory (AD), можно опустить маркер SAS только из URL-адрес назначения.If you provide authorization credentials by using Azure Active Directory (AD), you can omit the SAS token only from the destination URL.

Копирование большого двоичного объекта в другую учетную запись храненияCopy a blob to another storage account

СинтаксисSyntax azcopy cp "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>"
ПримерExample azcopy cp "https://mysourceaccount.blob.core.windows.net/mycontainer/myTextFile.txt?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D" "https://mydestinationaccount.blob.core.windows.net/mycontainer/myTextFile.txt"

Копирование каталога в другой учетной записи храненияCopy a directory to another storage account

СинтаксисSyntax azcopy cp "https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<directory-path>?<SAS-token>" "https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<directory-path>" --recursive
ПримерExample azcopy cp "https://mysourceaccount.blob.core.windows.net/mycontainer/myBlobDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D" "https://mydestinationaccount.blob.core.windows.net/mycontainer/myBlobDirectory" --recursive

Копирование контейнерам в другую учетную запись храненияCopy a containers to another storage account

СинтаксисSyntax azcopy cp "https://<source-storage-account-name>.blob.core.windows.net/<container-name>?<SAS-token>" "https://<destination-storage-account-name>.blob.core.windows.net/<container-name>" --recursive
ПримерExample azcopy cp "https://mysourceaccount.blob.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D" "https://mydestinationaccount.blob.core.windows.net/mycontainer" --recursive

Скопируйте все контейнеры, каталоги и файлы в другую учетную запись храненияCopy all containers, directories, and files to another storage account

СинтаксисSyntax azcopy cp "https://<source-storage-account-name>.blob.core.windows.net/?<SAS-token>" "https://<destination-storage-account-name>.blob.core.windows.net/" --recursive"
ПримерExample azcopy cp "https://mysourceaccount.blob.core.windows.net?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D" "https://mydestinationaccount.blob.core.windows.net" --recursive

Синхронизация файловSynchronize files

Вы можете синхронизировать содержимое в локальной файловой системе с контейнер больших двоичных объектов.You can synchronize the contents of a local file system with a blob container. Синхронизация является односторонней.Synchronization is one-way. Другими словами можно выбрать эти две конечные точки, являющийся источником и какой из них является конечным.In other words, you choose which of these two endpoints is the source and which one is the destination.

Примечание

В настоящее время этот сценарий поддерживается только для учетных записей, у которых нет иерархического пространства имен.Currently, this scenario is supported only for accounts that don't have a hierarchical namespace. Текущая версия AzCopy не будет синхронизировать между другие источники и назначения (например: Хранилище файлов или S3, Amazon Web Services (AWS) сегментов).The current release of AzCopy doesn't synchronize between other sources and destinations (For example: File storage or Amazon Web Services (AWS) S3 buckets).

sync Команда сравнивает имена файлов и последнего изменения отметки времени.The sync command compares file names and last modified timestamps. Задайте --delete-destination необязательный флаг в значение true или prompt для удаления файлов в каталоге назначения в том случае, если эти файлы больше не существуют в исходном каталоге.Set the --delete-destination optional flag to a value of true or prompt to delete files in the destination directory if those files no longer exist in the source directory.

Если задать --delete-destination флаг true AzCopy удаляет файлы без предоставления в строке.If you set the --delete-destination flag to true AzCopy deletes files without providing a prompt. Запрос на предшествуют AzCopy удаляет файл, задайте --delete-destination флаг prompt.If you want a prompt to appear before AzCopy deletes a file, set the --delete-destination flag to prompt.

Примечание

Чтобы избежать случайного удаления, не забудьте включить обратимое удаление компонентов, прежде чем использовать --delete-destination=prompt|true флаг.To prevent accidental deletions, make sure to enable the soft delete feature before you use the --delete-destination=prompt|true flag.

Обновление контейнера с изменениями в локальной файловой системеUpdate a container with changes to a local file system

В этом случае контейнер является конечным, и локальной файловой системе является источником.In this case, the container is the destination, and the local file system is the source.

СинтаксисSyntax azcopy sync "<local-directory-path>" "https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>" --recursive
ПримерExample azcopy sync "C:\myDirectory" "https://mystorageaccount.blob.core.windows.net/mycontainer" --recursive

Обновление локальной файловой системе с изменениями в контейнерUpdate a local file system with changes to a container

В этом случае копируются в локальную файловую систему, а контейнер является источником.In this case, the local file system is the destination, and the container is the source.

СинтаксисSyntax azcopy sync "https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>" "C:\myDirectory" --recursive
ПримерExample azcopy sync "https://mystorageaccount.blob.core.windows.net/mycontainer" "C:\myDirectory" --recursive

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

Дополнительные примеры можно найти в любой из следующих статей:Find more examples in any of these articles: