azure - Powershell脚本从blob容器的子文件夹中删除文件
问题描述
我正在尝试从特定文件夹中删除文件,例如从 blob 容器中的 full 或 diff 中删除文件,但无法执行。Container_name,然后有两个文件夹 full 和 diff,我只想从 full 中删除文件。请帮忙。
$context = New-AzureStorageContext -StorageAccountName "storage_name" -StorageAccountKey "key"
$blobs= Get-AzureStorageBlob -Container "container_name" -blob *DIFF*.bak -Context $context
foreach ($blob in $blobs)
{
$modifieddate = $blob.LastModified
Write-Host $modifieddate
if ($modifieddate -ne $null)
{
$howold = ([DateTime]::Now - [DateTime]$modifieddate.LocalDateTime)
if ($howold.TotalDays -ge 5)
{
Remove-AzureStorageBlob -Blob $blob.Name -Container "container_name" -Context $context
Write-Host $blob.Name
}
}
}
解决方案
如果要使用 Azure PowerShell 从一个容器中的一个子文件夹中删除 blob,可以使用以下脚本:
$StorageAccountKey=" "
$StorageAccountName=" "
$ContainerName=" "
$Token = $null
$Total = 0
$MaxCount=5000
$context = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey
do
{
$Blobs = Get-AzStorageBlob -Container $ContainerName -MaxCount $MaxCount -ContinuationToken $Token -Context $context -Prefix "your fodler name"
if($Blobs.Length -le 0) { Break;}
$Token = $Blobs[$blobs.Count -1].ContinuationToken;
foreach($blob in $blobs){
Remove-AzStorageBlob -Blob $blob.Name -Container $ContainerName -Context $context
}
}
While ($Token -ne $null)
更新
推荐阅读
- c# - 无法使用具有 JWT 身份验证的 API 获得授权我正在使用 Xamarin
- nginx - dotnet core - 服务器挂起生产
- scala - 仅当先前创建了它所代表的实体时才实例化参与者的 Akka 模式?
- c++ - C++忘记声明变量类型导致错误
- python - 是否有类似于使用上下文管理器的 Pythonic 方式在后台运行异步任务?
- python - 如果在 python [TCP] 中数据未接收且数据长度未知,如何中断 while 循环
- java - junit4.jar 和测试文件在同一个文件夹,找不到类
- mysql - 规范化 MySQL 中的公司名称
- java - 如何在 Java 中使用具有多个相似参数的 JSON 请求/响应的循环?
- mysql - 生成满足条件的计数器