Поделиться через


Вводное руководство: Отправка, скачивание и перечисление блобов с помощью PowerShell

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

Prerequisites

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

Вам также потребуется роль «Сотрудник данных BLOB-объектов» для чтения, записи и удаления контейнеров и BLOB-объектов в Azure.

Note

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

Для этого краткого руководства требуется модуль Azure PowerShell Az версии 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) и шифрованием BLOB-объектов (включено по умолчанию).

$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-объекты и страничные BLOB-объекты. VHD-файлы, которые поддерживают виртуальные машины IaaS, являются страничными 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-объектов в контейнере

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

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

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

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

В этом примере объекты blob загружаются в 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, последней версии AzCopy, см. в статье "Начало работы с AzCopy". Сведения об использовании AzCopy версии 10 с хранилищем BLOB-объектов см. в статье "Передача данных с помощью 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, выберите следующий вариант.

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

Microsoft Azure Storage Explorer

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