Powershell脚本从blob容器的子文件夹中删除文件
Posted
技术标签:
【中文标题】Powershell脚本从blob容器的子文件夹中删除文件【英文标题】:Powershell script to delete file from subfolder from blob container 【发布时间】:2020-01-02 20:27:42 【问题描述】:我正在尝试从特定文件夹中删除文件,例如从 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
【问题讨论】:
How to delete a folder within an Azure blob container的可能重复 【参考方案1】:如果您想使用 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)
更新
我使用最新版本的 Azure Az 模块进行测试。
【讨论】:
它不工作。由于无法识别前缀命令而给出错误 根据我的测试,命令“Get-AzStorageBlob”有参数“Prefix”。更多详情请参考docs.microsoft.com/en-us/powershell/module/az.storage/… 用“AzureStorage”替换“AzStorage”后工作正常。以上是关于Powershell脚本从blob容器的子文件夹中删除文件的主要内容,如果未能解决你的问题,请参考以下文章
使用 PowerShell 脚本从 Azure Blob 存储读取 JSON 文件并写回 Blob 存储中的另一个文件
Powershell:创建 Az 副本到 blob 容器日志文件或详细