如何列出Azure存储容器和Blob

时间:2015-10-28 01:58:13

标签: powershell azure azure-storage

我是Azure存储的新手,我想我可能会误解一些概念。

我想使用PowerShell列出我的所有存储容器和Blob。

我可以使用以下代码列出我的所有存储帐户:

Get-AzureStorageAccount | Select StorageAccountName, GeoPrimaryLocation

每个存储帐户都有一个Container。我怎么得到它?我没有看到列出容器的命令。 有一个Get-AzureStorageContainer命令,但它不会将存储帐户作为输入。

我错过了什么?

- 编辑 -

我看到我可以执行以下操作:

$context = New-AzureStorageContext -StorageAccountName myStorageAccount -StorageAccountKey xxx
Get-AzureStorageContainer -Context $context
Get-AzureStorageBlob -Context $context -Container myContainer

为什么需要上下文?

4 个答案:

答案 0 :(得分:9)

不确定这是否是您想要的,但我可以使用New-AzureStorageContextGet-AzureStorageContainers列出容器。

$ctx = New-AzureStorageContext -StorageAccountName <name> -StorageAccountKey <key>

Get-AzureStorageContainer -Context $ctx

答案 1 :(得分:4)

列出所有容器

GET-AzureStorageContainer

列出容器中的所有blob。

Get-AzureStorageBlob -Container $ ContainerName

您还可以在此处找到适用于PowerShell和Azure存储的完整入门指南。 Azure Storage PowerShell Getting Started

答案 2 :(得分:4)

使用新的Az模块,您需要执行以下操作

Import-Module Az
$azStorageAccountName = "" # Name of your storage account 
$azStorageAccountKey = "" # Access key for your storage account
$azContainerName = "" # Container name to list your blobs
$azResourceGroupName = "" # Resource group name where storage account lives

$connectionContext = (Get-AzStorageAccount -ResourceGroupName $azResourceGroupName -AccountName $azStorageAccountName).Context
# Get a list of containers in a storage account
Get-AzStorageContainer -Name $azStorageAccountName -Context $connectionContext | Select Name
# Get a list of blobs in a container 
Get-AzStorageBlob -Container $azContainerName -Context $connectionContext | Select Name

答案 3 :(得分:2)

这就是我在ARM中的做法:

function Get-StorageContainer
{
    param
    (
        [string]$StorageAccountName
    )

    $StorageAccounts = Get-AzureRmStorageAccount

    $selectedStorageAccount = $StorageAccounts | where-object{$_.StorageAccountName -eq $StorageAccountName}
    $key1 = (Get-AzureRmStorageAccountKey -ResourceGroupName $selectedStorageAccount.ResourceGroupName -name $selectedStorageAccount.StorageAccountName)[0].value

    $storageContext = New-AzureStorageContext -StorageAccountName $selectedStorageAccount.StorageAccountName -StorageAccountKey $key1
    $storageContainer = Get-AzureStorageContainer -Context $storageContext
    $storageContainer
}

Get-StorageContainer -StorageAccountName storageaccount