Краткое руководство. Отправка, скачивание и составление списка больших двоичных объектов с помощью PowerShell

С помощью модуля Azure PowerShell создайте ресурсы Azure и управляйте ими. Вы можете создавать ресурсы Azure и управлять ими с помощью командной строки или скриптов PowerShell. В этом руководстве рассматривается использование PowerShell для передачи файлов между локальным диском и хранилищем BLOB-объектов Azure.

Необходимые компоненты

Для доступа к службе хранилища Azure требуется подписка Azure. Если у вас еще нет подписки, вы можете создать бесплатную учетную запись Azure, прежде чем начинать работу.

Кроме того, вам потребуется роль участника данных Storage Blob для чтения, записи и удаления больших двоичных объектов и контейнеров службы хранилища Azure.

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Для работы с этим кратким руководством требуется модуль Azure PowerShell 0.7 или более поздней версии. Чтобы узнать версию, выполните команду Get-InstalledModule -Name Az -AllVersions | select Name,Version. Если вам необходимо выполнить установку или обновление, см. статью об установке модуля Azure PowerShell.

Вход в Azure

Войдите в подписку Azure с помощью команды Connect-AzAccount и следуйте инструкциям на экране.

Connect-AzAccount

Если вы не знаете, какое расположение нужно использовать, можно получить список доступных расположений. Получите список расположений, используя приведенный ниже пример кода, и найдите нужное расположение. В этом примере используется eastus. Сохраните расположение в переменной и используйте ее. Так вы сможете изменить расположение в одном месте.

Get-AzLocation | Select-Object -Property Location
$Location = 'eastus'

Создание или изменение группы ресурсов

Создайте группу ресурсов Azure с помощью командлета New-AzResourceGroup. Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure и управление ими.

$ResourceGroup = 'MyResourceGroup'
New-AzResourceGroup -Name $ResourceGroup -Location $Location

Создание учетной записи хранилища

Создайте стандартную учетную запись хранения общего назначения с репликацией LRS с помощью командлета New-AzStorageAccount. Затем получите контекст учетной записи хранения, определяющий необходимую учетную запись хранения. Действуя в учетной записи хранения, ссылайтесь на контекст, вместо того чтобы многократно передавать учетные данные. Используйте следующий пример, чтобы создать учетную запись хранения mystorageaccount с включенными по умолчанию локально избыточным хранилищем (LRS) и шифрованием больших двоичных объектов.

$StorageHT = @{
  ResourceGroupName = $ResourceGroup
  Name              = 'mystorageaccount'
  SkuName           = 'Standard_LRS'
  Location          =  $Location
}
$StorageAccount = New-AzStorageAccount @StorageHT
$Context = $StorageAccount.Context

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

Большие двоичные объекты всегда отправляются в контейнер. Вы можете упорядочивать группы больших двоичных объектов аналогично организации файлов в папках на компьютере.

Задайте имя контейнера, а затем создайте контейнер с помощью командлета New-AzStorageContainer. В этом примере контейнеру присвоено имя quickstartblobs.

$ContainerName = 'quickstartblobs'
New-AzStorageContainer -Name $ContainerName -Context $Context

Отправка BLOB-объектов в контейнер

Хранилище BLOB-объектов поддерживает блочные, добавочные и страничные BLOB-объекты. VHD-файлы, поддерживаемые для резервных виртуальных машин IaaS, являются страничными BLOB-объектами. Используйте добавочные большие двоичные объекты для ведения журнала, например, если требуется выполнять запись в файл и добавлять дополнительные сведения. Большинство файлов, находящихся в хранилище BLOB-объектов, представляют собой блочные BLOB-объекты.

Для передачи файла в блочный BLOB-объект получите ссылку на контейнер, а затем получите ссылку на блочный BLOB-объект в этом контейнере. При наличии ссылки на большой двоичный объект вы можете отправлять в него данные с помощью командлета Set-AzStorageBlobContent. Эта операция создает большой двоичный объект, если он еще не существует, или заменяет имеющийся.

В следующих примерах показана отправка файлов Image001.jpg и Image002.png из папки D:\Images на локальном диске в созданный контейнер.

# upload a file to the default account (inferred) access tier
$Blob1HT = @{
  File             = 'D:\Images\Image001.jpg'
  Container        = $ContainerName
  Blob             = "Image001.jpg"
  Context          = $Context
  StandardBlobTier = 'Hot'
}
Set-AzStorageBlobContent @Blob1HT
  
 # upload another file to the Cool access tier
 $Blob2HT = @{
  File             = 'D:\Images\Image002.jpg'
  Container        = $ContainerName
  Blob             = 'Image002.png'
  Context          = $Context
  StandardBlobTier = 'Cool'
 }
 Set-AzStorageBlobContent @Blob2HT
  
# upload a file to a folder to the Archive access tier
$Blob3HT = @{
  File             = 'D:\Images\FolderName\Image003.jpg'
  Container        = $ContainerName
  Blob             = 'FolderName/Image003.jpg'
  Context          = $Context
  StandardBlobTier = 'Archive'
}
Set-AzStorageBlobContent @Blob3HT


Прежде чем продолжить, отправьте нужное количество файлов.

Перечисление BLOB-объектов в контейнере

Получите список больших двоичных объектов в контейнере с помощью командлета Get-AzStorageBlob. В этом примере показаны только имена отправленных BLOB-объектов.

Get-AzStorageBlob -Container $ContainerName -Context $Context |
  Select-Object -Property Name

скачивание больших двоичных объектов;

Скачайте большие двоичные объекты на локальный диск. Для каждого скачиваемого большого двоичного объекта задайте имя и вызовите командлет Get-AzStorageBlobContent.

В этом примере показано скачивание больших двоичных объектов на локальный диск D:\Images\Downloads.

# Download first blob
$DLBlob1HT = @{
  Blob        = 'Image001.jpg'
  Container   = $ContainerName
  Destination = 'D:\Images\Downloads\'
  Context     = $Context
}
Get-AzStorageBlobContent @DLBlob1HT

# Download another blob
$DLBlob2HT = @{
  Blob        = 'Image002.png'
  Container   = $ContainerName
  Destination = 'D:\Images\Downloads\'
  Context     = $Context  
}
Get-AzStorageBlobContent @DLBlob2HT

Передача данных с помощью AzCopy

Служебная программа командной строки AzCopy обеспечивает высокопроизводительную передачу данных с поддержкой сценариев для службы хранилища Azure. AzCopy можно использовать для передачи данных из хранилища BLOB-объектов, Файлов Azure и обратно. Дополнительные сведения об AzCopy версии 10, которая является последней, см. в статье Get started with AzCopy (Начало работы с AzCopy). Дополнительные сведения об использовании AzCopy версии 10 с хранилищем BLOB-объектов см. в статье Transfer data with AzCopy and Blob storage (Передача данных с помощью AzCopy и хранилища BLOB-объектов).

В следующем примере AzCopy используется для передачи локального файла в большой двоичный объект. Не забудьте заменить примеры значений собственными значениями:

azcopy login
azcopy copy 'D:\Images\Image001.jpg' "https://$StorageAccountName.blob.core.windows.net/$ContainerName/NewGaphic.jpg"

Очистка ресурсов

Удалите все созданные ресурсы. Самым простым способом удалить ресурсы является удаление группы ресурсов. Удаление группы ресурсов также приведет к удалению всех ресурсов, которые она содержит. В следующем примере при удалении группы ресурсов удаляется учетная запись хранения и сама группа ресурсов.

Remove-AzResourceGroup -Name $ResourceGroup 

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

При работе с этим кратким руководством вы передали файлы между локальной файловой системой и хранилищем BLOB-объектов Azure. Для получения дополнительных сведений о работе с хранилищем BLOB-объектов с помощью PowerShell выберите один из разделов ниже.

Справочник по командлетам PowerShell для службы хранилища Microsoft Azure

Обозреватель службы хранилища Microsoft Azure

  • Обозреватель хранилищ Microsoft Azure — это бесплатное автономное приложение от корпорации Майкрософт, позволяющее визуализировать данные из службы хранилища Azure на платформе Windows, macOS и Linux.