使用 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 存储子容器中删除所有文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 PowerShell 脚本从 Azure Blob 存储读取 JSON 文件并写回 Blob 存储中的另一个文件

使用 PowerShell 从 Azure 中存储帐户的管理 ACL 列表中删除 ACL 条目

如何使用 PAT 从本地 Azure Artifacts 存储库在 docker 容器中安装 powershell 模块?

使用 powershell 在 Azure 中不同订阅的存储容器之间复制 blob

在没有Azure帐户的情况下安装Powershell for Azure

Powershell:将所有具有“NetworkRuleSet”属性的 Azure 存储帐户列出/导出到 CSV