匿名列出 public 容器中的 Azure 存储 blob

Listing Azure storage blobs in public container anonymously

我使用 Microsoft Azure PowerShell 模块创建了一个 Azure 存储帐户和存储帐户内的 blob 容器。我已将 blob 容器设置为可公开访问,但现在我需要列出来自匿名连接的 blob。

我正在使用 Windows 管理框架核心 5.0 2014 年 11 月预览版和 Azure PowerShell 模块版本 0.8.12。

这是我用来创建存储帐户、blob 容器并将文件上传到容器的代码。

### Authenticate to Microsoft Azure platform
$Username = 'powershell@trevorsullivan.net';
$AzureCredential = Get-Credential -Message 'Enter your Azure password.' -UserName $Username;
Add-AzureAccount -Credential $AzureCredential;

### Select the appropriate Azure subscription
$SubscriptionName = 'Visual Studio Ultimate with MSDN';
Select-AzureSubscription -SubscriptionName $SubscriptionName;

### Create Azure Storage Account
$StorageAccountName = 'opsgility';
New-AzureStorageAccount -StorageAccountName $StorageAccountName;

### Create Azure Storage Context
$StorageKey = Get-AzureStorageKey -StorageAccountName $StorageAccountName;
$Context = New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageKey.Primary;

### Create a blob storage container with "container" level public access
$ContainerName = 'uploads';
New-AzureStorageContainer -Context $Context -Name $ContainerName -Permission Container;

### Upload a file to the blob container
Set-AzureStorageBlobContent -Context $Context -Container $ContainerName -File c:\windows\notepad.exe;

###
### How do I retrieve a list of Azure storage blobs from the container anonymously?
###

您需要为 New-StorageContext 命令使用 -Anonymous 开关参数,以便针对 Azure blob 存储容器进行匿名身份验证。之后,只需像平常一样使用 Get-AzureStorageBlob 命令,列出指定 blob 容器中的 blob。

$AnonContext = New-AzureStorageContext -StorageAccountName $StorageAccountName -Anonymous;
Get-AzureStorageBlob -Context $AnonContext -Container $ContainerName;