我是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
为什么需要上下文?
答案 0 :(得分:9)
不确定这是否是您想要的,但我可以使用New-AzureStorageContext
和Get-AzureStorageContainers
列出容器。
$ctx = New-AzureStorageContext -StorageAccountName <name> -StorageAccountKey <key>
Get-AzureStorageContainer -Context $ctx
答案 1 :(得分:4)
GET-AzureStorageContainer
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