使用Powershell从Azure存储中删除所有* test.zip blob

时间:2014-05-31 07:33:17

标签: powershell azure azure-storage

我想从azure存储容器中删除所有文件,其中文件名包含test.zip

我能够获取所有文件并将它们导出到这样的文件:

$context = New-AzureStorageContext -StorageAccountName ACCOUNTNAME `
                                   -StorageAccountKey ACCOUNTKEY

get-azurestorageblob -Container CONTAINERNAME                    `
                     -blob *test.zip                             `
                     -Context $context | Out-File c:\files\f.txt `
                     -width 500

使用remove-azurestorageblob命令删除所有结果的最简单方法是什么?

2 个答案:

答案 0 :(得分:6)

由于blob存储此时仅支持单个blob删除(即它不支持批量删除),因此您唯一的选择是从输出文件中读取单个blob并逐个删除blob。

根据您的评论,请尝试以下操作:

$context = New-AzureStorageContext -StorageAccountName "account name" -StorageAccountKey "account key"

Get-AzureStorageBlob -Container "containername" -blob *test.zip -Context $context | Remove-AzureStorageBlob

上面的脚本将首先列出匹配的blob,然后逐个删除它们。

答案 1 :(得分:2)

我在Octopus Deploy中使用Powershell为静态网站托管设置Azure 存储帐户时遇到了这个挑战。

这是我修复它的方法

使用 Az module for Azure Powershell 我做了以下事情:

# Define Variables
$RESOURCE_GROUP_NAME = my-resource-group
$STORAGE_ACCOUNT_NAME = myapplication

# Get Storage Account Context
$STORAGE_ACCOUNT = Get-AzStorageAccount -ResourceGroupName $RESOURCE_GROUP_NAME -AccountName $STORAGE_ACCOUNT_NAME
$CONTEXT = $STORAGE_ACCOUNT.Context

# Remove all test.zip Files from the $web Storage Container
Get-AzStorageBlob -Container '$web' -Blob *test.zip -Context $CONTEXT | Remove-AzStorageBlob

# Remove all Files and Folders from the $web Storage Container
Get-AzStorageBlob -Container '$web' -Blob * -Context $CONTEXT | Remove-AzStorageBlob
Write-Host 'Removed all files and folders from the $web Storage Container'

仅此而已。

我希望这会有所帮助