使用 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