使用 Powershell 从 Azure 存储子容器中删除所有文件

Posted

技术标签:

【中文标题】使用 Powershell 从 Azure 存储子容器中删除所有文件【英文标题】:Delete all files from Azure Storage subcontainer using Powershell 【发布时间】:2018-11-05 03:29:33 【问题描述】:

我有一个容器名称 A,其中有一个子容器 B。

我希望 PowerShell 脚本删除 B 中的所有 blob。

【问题讨论】:

子容器是什么意思? Azure blob 存储中没有这种东西吗? 我准备了一个脚本来下载 azure storage.. 这可能会让您入门:powershellposse.com/2017/09/03/azure-file-storage-download 【参考方案1】:

对于子容器,你是指容器下的虚拟目录吗?如果是这样,您可以尝试运行以下脚本来删除容器下虚拟目录中的 blob。在运行脚本之前更改容器名称、dirpath。

例如,以下脚本将删除所有 blob:testcontainer/dir1/dir2/,如 testcontainer/dir1/dir2/blob1

$ctx = New-AzureStorageContext -StorageAccountName $accountname -StorageAccountKey $accountKey

$ContainerName = "testcontainer"
$dirpath = "dir1/dir2/"

$MaxReturn = 250
$Total = 0
$Token = $Null
do

    $Blobs = Get-AzureStorageBlob -Container $ContainerName -prefix $dirpath -MaxCount $MaxReturn  -ContinuationToken $Token  -Context $ctx
    $Total += $Blobs.Count

    $Blobs | Remove-AzureStorageBlob

    if($Blobs.Length -le 0)  Break;
    $Token = $Blobs[$Blobs.Count -1].ContinuationToken;

While ($Token -ne $Null)

【讨论】:

【参考方案2】:

Windows Azure 不提供分层容器的概念。实际上只有一层容器。

【讨论】:

以上是关于使用 Powershell 从 Azure 存储子容器中删除所有文件的主要内容,如果未能解决你的问题,请参考以下文章