快速入門:使用 PowerShell 上傳、下載及列出 Blob

使用Azure PowerShell 模組建立及管理 Azure 資源。 您可以從 PowerShell 命令列或在指令碼中建立或管理 Azure 資源。 本指南說明如何使用 PowerShell 在本機磁碟和 Azure Blob 儲存體之間傳輸檔案。

必要條件

若要存取 Azure 儲存體,您需要有 Azure 訂用帳戶。 如果您還沒有訂用帳戶,則先建立免費帳戶,再開始操作。

您也需具備儲存體 Blob 資料參與者角色,才能讀取、寫入及刪除 Azure 儲存體容器和 Blob。

注意

建議您使用 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

使用 Connect-AzAccount 命令登入 Azure 訂用帳戶並遵循畫面上的指示。

Connect-AzAccount

如果您不知道要使用哪一個位置,您可以列出可用的位置。 使用下列程式碼範例來顯示位置清單,然後尋找您想要使用的位置。 此範例使用 eastus。 將此位置儲存在變數中並使用該變數,如此您在一處即可進行變更。

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

建立資源群組

使用 New-AzResourceGroup 來建立 Azure 資源群組。 資源群組是在其中部署與管理 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

建立容器

Blob 一律會上傳至容器中。 您可以組織 Blob 群組,如同在電腦的資料夾中組織檔案一般。

設定容器名稱,然後使用 New-AzStorageContainer 來建立容器。 此範例中的容器名稱是 quickstartblobs

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

將 Blob 上傳到容器

Blob 儲存體支援區塊 Blob、附加 Blob 和分頁 Blob。 用來備份 IaaS VM 的 VHD 檔案是分頁 Blob。 附加 Blob 可用於記錄,例如,當您想要寫入檔案,並繼續新增更多資訊時。 儲存在 Blob 儲存體中的大部分檔案都是區塊 Blob。

若要將檔案上傳至區塊 Blob,請取得容器參考,然後取得該容器中區塊 Blob 的參考。 取得 Blob 參考之後,即可使用 Set-AzStorageBlobContent 將資料上傳至 Blob。 如果 Blob 不存在,此作業會予以建立,若已存在,則加以覆寫。

下列範例會將本機磁碟上 D:\Images 資料夾中的 Image001.jpgImage002.png 上傳至您所建立的容器。

# 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 的清單。 此範例只會顯示已上傳之 Blob 的名稱。

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

下載 Blob

將 blob 下載到本機磁碟。 針對您要下載每個 Blob,請設定名稱並呼叫Get-AzStorageBlobContent 以下載 Blob。

此範例會將 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 檔案儲存體,以及從 Blob 儲存體和 Azure 檔案儲存體傳出資料。 如需 AzCopy v10 (AzCopy 的最新版本) 的詳細資訊,請參閱開始使用 AzCopy。 若要了解如何搭配使用 AzCopy v10 與 Blob 儲存體,請參閱使用 AzCopy 和 Blob 儲存體傳輸資料

下列範例會使用 AzCopy 將本機檔案上傳至 Blob。 請記得要以您自己的值取代範例值:

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

清除資源

移除您已建立的所有資產。 要移除資產,最簡單的方法是刪除資源群組。 移除資源群組時也會刪除群組內包含的所有資源。 在下列範例中,移除資源群組時也會移除儲存體帳戶和資源群組本身。

Remove-AzResourceGroup -Name $ResourceGroup 

下一步

在本快速入門中,您已在本機檔案系統和 Azure Blob 儲存體之間傳輸檔案。 若要深入瞭解如何使用 PowerShell 來使用 Blob 儲存體,請選取下方的選項。

Microsoft Azure PowerShell 儲存體 Cmdlet 參考

Microsoft Azure 儲存體總管

  • Microsoft Azure 儲存體總管 是一個免費的獨立應用程式,可讓您在 Windows、MacOS 和 Linux 上以視覺化方式處理 Azure 儲存體資料。